[devel] Обновление numpy и matplotlib
Ivan Zakharyaschev
imz на altlinux.org
Вс Апр 16 19:46:19 MSK 2017
On Sun, 16 Apr 2017, Антон Мидюков wrote:
> 16.04.2017 15:43, Ivan Zakharyaschev пишет:
>> On Sun, 16 Apr 2017, Антон Мидюков wrote:
>>
>> > Я не нашёл, какие пакеты зависят от этих провайдесов, потому собрал без
>> > них сегодня. И эти модули к тому же не импортируются никак, по крайней
>> > мере в
>>
>> В новой сборке благодаря Вашим улучшениям список Provides, не проходящих
>> проверку, значительно сократился!
>>
>> $ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test
>> 181544 rpm-build-python3 python3-module-matplotlib
>> $ hsh-shell --mount=/proc,/dev/pts
>>
>> [builder на localhost .in]$ /usr/lib/rpm/check-python3-provs-importable.sh
>> python3-module-matplotlib; echo $?
>> matplotlib.backends.backend_cairo
>> matplotlib.pylab
>> matplotlib.pyplot
>> pylab
>> 123
>>
> Причины нашёл.
> Для matplotlib.pylab, matplotlib.pyplot и pylab ситуация аналогичная. Им
> нужна провайдес typelib(Gtk), которую предоставляют два пакета libgtk+3-gir и
> libgtk+2-gir. Но здесь уже косяк rpm-build-gir, который определяет
> зависимость без указания версии. Эту тему я с месяц назад пытался поднять, но
> никто не откликнулся.
>
> Итак, что лучше исправить всё в спеке пострадавшего пакета или в косячных
> пакетах, из-за которых он пострадал, и вероятно страдают и будут страдать
> другие пакеты?
Лучше, конечно, в косячных пакетов, если удалось с этим разобраться.
> Для matplotlib.backends.backend_cairo требуется пакет python3-module-pycairo,
> а зависимость у него на провайдес libcairo.so.2
> Но этот же провайдес предоставляет python-module-pycairo Из-за этого в чистом
> хэшере ставится python-module-pycairo для удовлетворения зависимости пакета
> python3-module-matplotlib Получается, что это косяк пакета
> python-module-pycairo
По-моему, там проще. python3-module-matplotlib содержит модуль
matplotlib.backends.backend_cairo, для работы которого нужна какая-то
реализация работы с cairo. Но никакого формального Requires на cairo и
питоньий cairo-модуль у пакета matplotlib.backends.backend_cairo нет.
У меня в хешере поставилось только это:
[imz на basalt ~]$ hsh-shell --mount=/proc,/dev/pts
[builder на localhost .in]$ rpm -qa '*cairo*'
libcairo-gobject-1.14.4-alt1.x86_64
libcairo-1.14.4-alt1.x86_64
[builder на localhost .in]$ rpm -e libcairo
error: Failed dependencies:
libcairo.so.2()(64bit) >=
set:mftjiSDpqFHAVc36cHM5cYYiadA6gsOohUuyDdcHca4Lr183bLNevUeaZ1VjZkuLKx4jWY9X5HMvSz2EkppmVxDyLeycKEaMYIs6bdclqVgCDjycEXZgTHQYGP1JOJhSQawzEqigwWlvTy3A0gSLs0B5V0GcbbOofFRxluXxoVoljmrUDOY1uxZLIJjtKcZEBrzq2y9OEq3O34np87
is needed by (installed) libpango-1.40.5-alt1.x86_64
libcairo.so.2()(64bit) >=
set:metjiSz8j4Eq2wswsKE1ysyq1cMMjiOpfWWvr2eVLkZsW6XMCDx01ffxtQol75Pq1M1FROohj5xtZgDVyuIYcU89uGCGEgl4scNlK93Mu2DPJdsBTOxTb2sFSgvPzF8EHwGByAZnQL5ZFC7T0X7ZGeZafpUB06KDnpl2MpAe7YU1aqfg2F8IQ3leriMcTx7mw7neGNdFjyv0t68lmMr1wxFDnwsguIpqdOOczt4y9X5vGaENc5AzdYR2Z9WWfyMd9ljogW6p9h290yZ14OB3MUUY67fyeM82W9Z3FIijp15GYWxsREevgXmE3ZtgLynFOZEvGHYiAlE55cW8GhPN5YAkVjM5pw6nQVwX4WGv2cX0
is needed by (installed) libgtk+4-3.90.0-alt1.x86_64
libcairo.so.2()(64bit) >= set:mjQZ8JL9Iqnj3IVExlKJyDe is needed by
(installed) python3-module-pygobject3-3.24.1-alt1.x86_64
libcairo = 1:1.14.4-alt1 is needed by (installed)
libcairo-gobject-1:1.14.4-alt1.x86_64
[builder на localhost .in]$
т.е. версия про то, что вытягивается не тот python*-module-pycairo не
проходит, потому что ни одного такого вообще не вытянулось. А у них с
зависимостями вроде всё более-менее в порядке, ошибок нет:
$ rpm -qp /ALT/Sisyphus/x86_64/RPMS.classic/python3-module-pycairo-1.10.1-alt3.git20121222.1.1.x86_64.rpm --requires
/usr/lib64/python3/site-packages
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libcairo.so.2()(64bit) >=
set:mekW4hu5c38Fq0pNZjg0jZ1dgA3wFYQFV0RP9DVv59KiEs9gPMldUdmHhxNlaf312upFNGeOebZvoe8mQkNJOGA8T75CbWNO3mEK7ZhU8V9lZFOrzDGFaak517jsB7Wcvb0wVe9IQ3t1PZyaksXgeiBYltDlZtHgqsliuZkalWZl1lb599aR5qTpG9moZEV7vahOu0C44MttXxWZ9uA7xOyIpYPD4cLCPw1j9fMzEe7YU1aqfgA4OhreriMcTxDKKQwZFlUkYcKskDPIQglmOkCT3r6Sfwe3AaTenJn0EuKPNmhm6kaxkBAJ2wP3i7RqtNo7xoOuNDG2qCO3ToXTnSMnbQDaIvrO8wFCE5ZaQrABApIqIhpfFkt0YU0dIlMV0abGxv5WkDTUUhQNI0DjbOH6NrIAABf0EDIMZmRf2jp15GYWxsRA9MnQJMkPOUr85cOZEvG8HRRlE55rqDc6f5REVUjWdoxriGY9UOjWOJNBYZixkvrgqCmfWXRjwp7
rpmlib(SetVersions)
python3.5-ABI(64bit)
rtld(GNU_HASH)
rpmlib(PayloadIsLzma)
$
Кажется, можно просто дописать
%py3_requires cairo
если нет потребности отпиливать эту зависимость в отдельный подпакет.
(Если есть альтернативные провайдеры, можно было бы при желании отпилить
два подпакета, каждый со своим Requires :) )
--
Best regards,
Ivan
Подробная информация о списке рассылки Devel