[devel] При сборке пакета не находятся предоставляемые модули Python

Grigory Ustinov grenka на altlinux.org
Вт Ноя 28 15:40:46 MSK 2023


28.11.2023 15:29, Ivan A. Melnikov пишет:
> On Tue, Nov 28, 2023 at 03:19:17PM +0300, Paul Wolneykien wrote:
>>    Всем привет. Прошу помощи зала со сборкой gpgme.
>>
>>    Пробую собрать новую версию, но на выходе пакет с питоновскими
>> модулями не предоставляет ожидаемых python(...):
>>
>> https://git.altlinux.org/tasks/334991/logs/events.2.1.log
>>
>> $ rpm -q --provides -p python3-module-gpg-1.23.1-alt1.x86_64.rpm
>> python3-module-gpg = 1.23.1-alt1
>>
>>    Для сравнения, предыдущая сборка предоставляла около 30 таких
>> зависимостей:
>>
>> $ rpm -q --provides -p python3-module-gpg-1.22.0-alt2.x86_64.rpm | head
>> python3(gpg)
>> python3(gpg._gpgme)
>> python3(gpg.callbacks)
>> python3(gpg.constants)
>> python3(gpg.constants.create)
>> ...
>>
>>    Что-то изменилось в Сизифе, потому что при пересборке 1.22.0-alt2
>> (текущей версии) также получается пакет без provides.
>>
>>    При сборке py3prov пишет только:
>>
>> py3prov: detected potential module:gpg-1.23.1-py3.11-linux-x86_64.egg
>> py3prov: detected potential module:gpg-1.23.1-py3.11-linux-x86_64.egg
>>
>>    Я попробовал вручную запускать py3prov и в таком режиме он, похоже,
>> находит модули:
>>
>> $ py3prov --verbose tmp/gpgme-buildroot/usr/lib64/python3/site-packages/gpg-1.23.1-py3.11-linux-x86_64.egg
>> Path /usr/lib64/python311.zip does not exist, skip it
>> Detected .pth file:/usr/lib64/python3/site-packages/distutils-precedence.pth
>> tmp/gpgme-buildroot/usr/lib64/python3/site-packages/gpg-1.23.1-py3.11-linux-x86_64.egg:['policy', 'tofu.policy', 'constants.tofu.policy', 'gpg.constants.tofu.policy', '__init__', 'tofu.__init__', 'constants.tofu.__init__', 'gpg.constants.tofu.__init__', 'tofu', 'constants.tofu', 'gpg.constants.tofu', 'notation', 'sig.notation', 'constants.sig.notation', 'gpg.constants.sig.notation', 'mode', 'sig.mode', 'constants.sig.mode', 'gpg.constants.sig.mode', '__init__', 'sig.__init__', 'constants.sig.__init__', 'gpg.constants.sig.__init__', 'sig', 'constants.sig', 'gpg.constants.sig', 'mode', 'keylist.mode', 'constants.keylist.mode', 'gpg.constants.keylist.mode', '__init__', 'keylist.__init__', 'constants.keylist.__init__', 'gpg.constants.keylist.__init__', 'keylist', 'constants.keylist', 'gpg.constants.keylist', 'encoding', 'data.encoding', 'constants.data.encoding', 'gpg.constants.data.encoding', '__init__', 'data.__init__', 'constants.data.__init__', 'gpg.constants.data.__init__', 'data', 'constants.data', 'gpg.constants.data', 'validity', 'constants.validity', 'gpg.constants.validity', 'status', 'constants.status', 'gpg.constants.status', 'sigsum', 'constants.sigsum', 'gpg.constants.sigsum', 'protocol', 'constants.protocol', 'gpg.constants.protocol', 'pk', 'constants.pk', 'gpg.constants.pk', 'md', 'constants.md', 'gpg.constants.md', 'keysign', 'constants.keysign', 'gpg.constants.keysign', 'import_type', 'constants.import_type', 'gpg.constants.import_type', 'event', 'constants.event', 'gpg.constants.event', 'create', 'constants.create', 'gpg.constants.create', '__init__', 'constants.__init__', 'gpg.constants.__init__', 'constants', 'gpg.constants', 'version', 'gpg.version', 'util', 'gpg.util', 'results', 'gpg.results', 'gpgme', 'gpg.gpgme', 'errors', 'gpg.errors', 'core', 'gpg.core', 'callbacks', 'gpg.callbacks', '_gpgme', 'gpg._gpgme', '_gpgme', 'gpg._gpgme', '__init__', 'gpg.__init__', 'gpg']
>
> Файлы стали устанавливаться в другое место. Из задачи:
>
> $ rpm -qpl python3-module-gpg-1.23.1-alt1.x86_64.rpm | grep 'gpg$'
> /usr/lib64/python3/site-packages/gpg-1.23.1-py3.11-linux-x86_64.egg/gpg
>
> Из Сизифа:
>
> $ rpm -qpl /ALT/Sisyphus/files/x86_64/RPMS/python3-module-gpg-1.22.0-alt2.x86_64.rpm | grep 'gpg$'
> /usr/lib64/python3/site-packages/gpg
>
> Интересно, почему это происходит.

FYI: https://bugzilla.altlinux.org/48228

2 решения аналогичной проблемы тут. На будущее, рекомендую более 
аккуратно оформлять секцию %files. gpg* это слишком общее определение, 
под которым может скрываться много сюрпризов.



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