Summary: | Не даёт паковать %__python3_dynlibdir/*.so | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> |
Component: | sisyphus_check | Assignee: | Dmitry V. Levin <ldv> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | at, glebfm, imz, ldv, legion, placeholder, sin |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
URL: | http://git.altlinux.org/tasks/234201/ |
Description
Sergey V Turchin
2019-07-10 10:08:50 MSK
В %__python3_dynlibdir/ лежат только библиотеки из дистрибутива питона. Остальные пакеты кладут свои *.so просто в свою директорию в site-packages. (In reply to comment #0) > У меня в http://git.altlinux.org/tasks/234201/ в питоньем модуле написано > from _getfem import * Обычно кладут _*.so рядом с таким модулем и импортируют так: [imz@team ~]$ rpm -q python-module-rpm -l /usr/lib64/python2.7/site-packages/rpm /usr/lib64/python2.7/site-packages/rpm/__init__.py /usr/lib64/python2.7/site-packages/rpm/__init__.pyc /usr/lib64/python2.7/site-packages/rpm/__init__.pyo /usr/lib64/python2.7/site-packages/rpm/_rpm.so /usr/lib64/python2.7/site-packages/rpm/_rpmb.so /usr/lib64/python2.7/site-packages/rpm/_rpms.so /usr/lib64/python2.7/site-packages/rpm/transaction.py /usr/lib64/python2.7/site-packages/rpm/transaction.pyc /usr/lib64/python2.7/site-packages/rpm/transaction.pyo /usr/lib64/python2.7/site-packages/rpm_python-4.13.0.1-py2.7.egg-info [imz@team ~]$ fgrep import -r /usr/lib64/python2.7/site-packages/rpm Binary file /usr/lib64/python2.7/site-packages/rpm/_rpm.so matches Binary file /usr/lib64/python2.7/site-packages/rpm/__init__.pyc matches Binary file /usr/lib64/python2.7/site-packages/rpm/__init__.pyo matches /usr/lib64/python2.7/site-packages/rpm/__init__.py: import rpm /usr/lib64/python2.7/site-packages/rpm/__init__.py:import warnings /usr/lib64/python2.7/site-packages/rpm/__init__.py:from rpm._rpm import * /usr/lib64/python2.7/site-packages/rpm/__init__.py:from rpm.transaction import * /usr/lib64/python2.7/site-packages/rpm/__init__.py:import rpm._rpm as _rpm /usr/lib64/python2.7/site-packages/rpm/__init__.py:# try to import build bits but dont require it /usr/lib64/python2.7/site-packages/rpm/__init__.py: from rpm._rpmb import * /usr/lib64/python2.7/site-packages/rpm/__init__.py:# try to import signing bits but dont require it /usr/lib64/python2.7/site-packages/rpm/__init__.py: from rpm._rpms import * /usr/lib64/python2.7/site-packages/rpm/transaction.py:import sys /usr/lib64/python2.7/site-packages/rpm/transaction.py:import rpm /usr/lib64/python2.7/site-packages/rpm/transaction.py:from rpm._rpm import ts as TransactionSetCore /usr/lib64/python2.7/site-packages/rpm/transaction.py: import rpm._rpmb т.е. с полным ("абсолютным") именем модуля. Но я нашёл примеры, когда без полного пути: $ egrep 'from _[^_].* import ' -r /usr/lib64/python3/site-packages/ /usr/lib64/python3/site-packages/cffi/commontypes.py: from _cffi_backend import _get_common_types /usr/lib64/python3/site-packages/cffi/lock.py: from _thread import allocate_lock /usr/lib64/python3/site-packages/cffi/lock.py: from _dummy_thread import allocate_lock /usr/lib64/python3/site-packages/yaml/cyaml.py:from _yaml import CParser, CEmitter Ну тут они на самом деле просто их на уровень выше кладут, в site-packages сразу: $ rpm -qf /usr/lib64/python3/site-packages/cffi/commontypes.py -l | fgrep _cff /usr/lib64/python3/site-packages/_cffi_backend.cpython-36m.so /usr/lib64/python3/site-packages/cffi/_cffi_include.h $ rpm -qf /usr/lib64/python3/site-packages/yaml/cyaml.py -l | fgrep _ya /usr/lib64/python3/site-packages/_yaml.cpython-36m.so $ sisyphus_check прав: python files inside %python_libdir can be placed only in %python_sitelibdir В Сизифе сотни примеров упаковки, допустимой с точки зрения sisyphus_check: $ grep -c '^/usr/lib64/python3/site-packages/[^[:space:]]*/[^[:space:]]*\.cpython-37m\.so[[:space:]]' Sisyphus/x86_64/base/contents_index 789 Спасибо! Я по content_index не догадался погрепать. На своей системе смотрел. |