Distutils, старые rpm и настраиваемый файл спецификаций

Вчера я, наконец, получил свою программу, упакованную в RPM для Fedora 14, и я подумал, что будет легко собрать ее таким же образом на компьютере с CentOS 4.8. Выяснилось, что старые версии rpm и distutils несколько ограничены, и мне никак не удается обойти это.

Основная проблема заключается в том, что distutils с Python 2.7 поддерживает опцию «--post-install», где я могу указать сценарий. Сценарий включен и запускается, когда я устанавливаю с помощью yum или rpm. Все отлично. Однако в Python 2.3 опция --post-install отсутствует (на самом деле она недоступна в RPM). Как бы то ни было, я могу просто добавить его в раздел «% install» в моем файле .spec. Итак, я начинаю процесс сборки RPM с

python setup.py bdist_rpm --spec-only

который создает мой .spec. Я редактирую его и вставляю свой скрипт в .spec. Затем я перехожу к сборке исходного кода с помощью

python setup.py bdist_rpm --source-only

Вот тут-то и начинаются проблемы. distutils создает следующие подкаталоги ./build/bdist.linux-i686/rpm/. Внутри находится папка SPECS/netinfo.spec (моя программа называется netinfo). Однако он не использует пользовательский .spec, который я только что создал. Это странно, поскольку он должен использовать сгенерированный .spec. Если я попытаюсь выполнить сборку с .spec по умолчанию, то вполне предсказуемо мой скрипт не будет включен в RPM. Если я перезапишу это своим собственным .spec, это все равно не сработает. Это похоже на то, что он воссоздает .spec для каждой команды.

Существуют различные команды, которые есть у bdist_rpm, и их можно перечислить с помощью

python setup.py bdist_rpm --help

Я ожидал найти вариант, где можно указать файл .spec для использования. Тем не менее, в Python 2.3 и 2.7 такой возможности нет.

Должен быть какой-то простой способ заставить distutils использовать мой пользовательский файл .spec. Кто-нибудь знает, как это указать?

Спасибо,


person fandingo    schedule 22.12.2010    source источник
comment
Связано: fedoraproject.org/wiki/Упаковка:Python   -  person Ignacio Vazquez-Abrams    schedule 22.12.2010


Ответы (1)


Нет. Создайте SRPM с помощью rpmbuild -bs, а затем используйте Mock для сборки пакета для EL4.

person Ignacio Vazquez-Abrams    schedule 22.12.2010