[devel] Q: time to wave rpm-build-python off

Dmitry V. Levin ldv на altlinux.org
Чт Апр 29 18:55:05 MSK 2021


On Thu, Apr 29, 2021 at 03:04:24PM +0300, Dmitry V. Levin wrote:
> On Thu, Apr 29, 2021 at 10:49:39AM +0300, Aleksei Nikiforov wrote:
> > 29.04.2021 05:35, Dmitry V. Levin пишет:
> > > On Mon, Mar 01, 2021 at 04:11:28PM +0300, Dmitry V. Levin wrote:
> > >> Hi,
> > >>
> > >> В связи с тем, что пользователи python2 в Сизифе наконец-то массово
> > >> переходят на python3, возникает вопрос, не пора ли нам уже распрощаться
> > >> с пакетом rpm-build-python в составе базовой сборочной среды?
> > >>
> > >> Просьба тем, кто занимается массовой миграцией пакетов с python2
> > >> на python3, подготовить ответ на этот вопрос.
> > > 
> > > Никто не ответил?  Ну что же, тогда уберём rpm-build-python и узнаем.
> > 
> > Здравствуйте.
> > 
> > После этого изменения вылезла вот такая ошибка:
> > 
> > http://git.altlinux.org/tasks/270927/logs/events.1.1.log
> > 
> > [x86_64] find-requires: running scripts 
> > (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,shebang,shell,static,symlinks,systemd-services)
> > [x86_64] /usr/lib/rpm/python.req: line 2: /usr/bin/python2.7: No such 
> > file or directory
> > [x86_64] find-requires: ERROR: /usr/lib/rpm/python.req failed
> > [x86_64] error: /bin/sh failed
> > [x86_64] error: Failed to find Requires
> > [x86_64] RPM build errors:
> 
> Идея была в том, что если в пакете есть что-то на python2, но пакет
> rpm-build-python не установлен, то сборка упадёт с такой диагностикой.
> Однако ...
> 
> > В пакете нет ни python-2, ни python-3.
> 
> ... где-то что-то зачем-то вызвало /usr/lib/rpm/python.req с пустым
> списком аргументов.  Вставил объезд в python.req и python.prov, чтобы
> "skip python invocation when invoked without arguments".
> 
> [#270943] DONE rpm-build-python.git=0.40.1-alt1

Это было поспешное изменение, я его откатил.
Cписок файлов для обработки поступают к python.req и python.prov
через stdin.

По какой-то причине /usr/lib/rpm/python.req.files считает нужным все ELF
shared objects по шаблону /usr/lib*/*/*.so отправлять python.req'у на
обработку.  В пакете cepstral-pitchtracker таким файлом оказался
/usr/lib64/vamp/cepstral-pitchtracker.so, очевидно, к питону он отношения
не имеет.

Почему /usr/lib/rpm/python.req.files скармливает ELF shared objects
python.req'у, пусть лучше расскажут те, кто это придумали.

Пока что я просто выключил это скармливание в случае, когда скармливать
некуда.

Кроме того, в 
[#270972] DONE rpm-build-python.git=0.42.1-alt1
была добавлена диагностика того, какие именно файлы не удалось обработать
из-за отсутствия пакета rpm-build-python.


-- 
ldv


Подробная информация о списке рассылки Devel