вопрос про rpmbuild & python

Ответить
termim
Сообщения: 8
Зарегистрирован: 25 ноя 2016, 02:01
Operating system: SuSE, Rosa

вопрос про rpmbuild & python

Сообщение termim » 05 авг 2018, 02:53

Столкнулся с такой проблемой - строю RPM для пакета https://abf.io/import/eric:

Код: Выделить всё

rpmbuild -ba eric.spec
На Росе R10 это занимает ~59 мин (на ABF - столько же), а в OpenSuse Leap 15 - 1 мин. 25 сек. - это в 40 раз медленнее!
SystemMonitor показывает, что rpmbuild постоянно запускает pythoneggs.py - 12644 раза для этого пакета, примерно в два раза больше чем число файлов (один раз с ключом --provides и один раз с ключом --requires на каждый файл).

Вопрос: эта разница из-за RPM4 vs RPM5 и можно ли как нибудь вразумить RPM5?

Survolog
Сообщения: 130
Зарегистрирован: 30 авг 2016, 22:30
Operating system: ROSA Fresh

вопрос про rpmbuild & python

Сообщение Survolog » 17 авг 2018, 12:08

На всякий случай вот:

Код: Выделить всё

user@user-desktop ~ $ rpm --showrc |grep pythoneggs
-14: __python_provides	%{_rpmhome}/pythoneggs.py --provides
-14: __python_requires	%{_rpmhome}/pythoneggs.py --requires
Попробуйте глянуть по логу сборки (ключ -v), на какой строке из подобных

Код: Выделить всё

+ '[' -n '' ']'
+ /usr/share/spec-helper/relink_symlinks

+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_perl

+ '[' -n '' ']'
+ /usr/share/spec-helper/lib_symlinks

+ '[' -n '' ']'
+ /usr/share/spec-helper/gprintify

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_mo

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_xdg

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_file_permissions

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_pamd

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_pkgconfig

+ '[' -n '' ']'
+ /usr/share/spec-helper/remove_info_dir

+ '[' -n '' ']'
+ /usr/share/spec-helper/remove_libtool_files

+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_eol

+ '[' -n '' ']'
+ /usr/share/spec-helper/check_elf_files

+ '[' -n '' ']'
+ /usr/share/spec-helper/remove_rpath
больше всего висит, и почитать внутри, каким ключом оно отключается. После чего применить что-то типа

Код: Выделить всё

%define dont_fix_eol 1
или

Код: Выделить всё

%install
export DONT_RELINK=1
Хотя можно и не читать, а сразу вписать

Код: Выделить всё

%define dont_висящее 1
Скорее всего сработает.

Но этим, насколько знаю, стоит пользоваться, когда без этого не собирается, а с этим собранное работает.

termim
Сообщения: 8
Зарегистрирован: 25 ноя 2016, 02:01
Operating system: SuSE, Rosa

вопрос про rpmbuild & python

Сообщение termim » 26 сен 2018, 17:31

Это, конечно, хак, но вот это помогло:

Код: Выделить всё

%define    _use_internal_dependency_generator 0

Ответить