[devel] check-python3-provs-importable.sh
Ivan Zakharyaschev
imz на altlinux.org
Пт Окт 6 15:56:46 MSK 2017
Hello!
On Fri, 6 Oct 2017, Vitaly Lipatov wrote:
> (В ответ на комментарий №5)
>> Действительно, было плохо, теперь проходит проверку (которую я, пользуясь
>> моментом, ещё раз порекламирую):
>>
>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf add 190330
>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test ''
>> python3-module-sip python3-module-PyQt5 && { hsh-run
>> --mount=/proc,/dev/pts
>> /usr/lib/rpm/check-python3-provs-importable.sh python3-module-PyQt5; echo
>> $?; }
>> ...
>> 0
>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test ''
>> python3-module-PyQt4 && { hsh-run --mount=/proc,/dev/pts
>> /usr/lib/rpm/check-python3-provs-importable.sh python3-module-PyQt4; echo
>> $?; }
>> ...
>> PyQt4.uic.pyuic
>> 123
>> $ hsh-shell --mount=/proc,/dev/pts
>> [builder на localhost .in]$ python3 -c 'import PyQt4.uic.pyuic'
>> Error: one input ui-file must be specified
>> [builder на localhost .in]$
>>
>> А это какой-то странный модуль попал в Provides. (И зависимости на
>> python3-module-sip не хватило почему-то.)
>>
>> Возвращаясь к исходной проблеме. Интересно будет узнать, оно когда-то
>> работало,
>> а потом стало падать, или сразу было собрано в нерабочем виде.
>
> Какая-то сложная штука, я не понял, как применить. Проблема была в том, если
> если обновить sip, то ломаются PyQt{4,5}. Это было всегда, но мантейнеры
> ничего не указали в пакете, чтобы этого избежать.
>
> Я так понимаю, при сборке python-module-sip такая проверка ничего бы не дала,
> если не проверять всех, кто использует его непосредственно:
Да, по-моему, ты всё понял и рассказал. Спасибо, что разобрался и
рассказал про причину падения!
В этой штуке нет ничего сложного. Скрипт просто читатет список Provides
указанного пакета и пробует каждый из них по очереди импортировать. Если
случается ошибка, печатает название модуля. Пока что я просто предлагал
вручную так проверять пакеты. Лучше в минимальном окружении в hasher,
чтобы выловить больше проблем. (Потом можно будет сочинить службу
проверки, работающую в режиме repocop. И потом, возможно, автоматизировать
проверку при сборке пакета, что не очевидно, что полезно. В частности,
этот случай -- это пример, почему.)
Действительно, если дело в смене версии sip, то эта проверка при сборке
пакетов с модулями ничего бы не дала. (А автоматизировать в сборочнице
проверку всего, что имеет пересобираемый пакет в каестве зависимости --
пока такого механизма нет.)
> $ epm whatdepends python-module-sip | grep -v sip
> $ apt-cache whatdepends python-module-sip
> qgis-python-2.18.13-alt1
> python-module-kde4-4.14.3-alt1
> python-module-qt-3.18.2-alt1.29855a84d8b6.4
> python-module-PyQt4-4.11.4-alt2.1.1
> kf5-kdelibs4support-devel-5.38.0-alt1.S1
> calibre-3.8.0-alt1
> python-module-projex_xqt-2.0.2-alt1.git20150111.1.1
> python-module-TraitsBackendQt-3.6.1-alt1.svn20110127.1
> puddletag-1.2.0-alt1
> ninja-ide-2.3-alt2
> luma-3.0.7-alt1
> hgview-1.9.0-alt1
> python-module-veusz-1.25.1-alt1
> python-module-qbzr-0.23.1-alt1
> kde4games-kajongg-15.4.3-alt1
> kde4-kate-4.14.7-alt2
> eric4-4.5.23-alt1
>
>
> --
> С уважением,
> Виталий Липатов,
> Etersoft
>
>
Подробная информация о списке рассылки Devel