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