[devel] Сборка модулей python на x86_64
Ivan A. Melnikov
=?iso-8859-1?q?iv_=CE=C1_altlinux=2Eorg?=
Ср Дек 17 15:29:14 MSK 2008
On Tuesday 16 December 2008 23:52:18 Dmitry V. Levin wrote:
> On Tue, Dec 16, 2008 at 11:46:16PM +0300, Vitaly Lipatov wrote:
[...]
>
> > Речь о том, что site-packages прибит гвоздями к /lib/
> > /usr/lib64/python2.5/distutils/command/install.py
> > 'purelib': '$base/lib/python$py_version_short/site-packages',
> >
> > Может кто-нибудь прокомментировать это или мне выложить
> > python-dev с патчем?
>
> Вопрос, какая связь у purelib с libdir?
> В частности, как должен выглядеть purelib на noarch?
Судя по комментариям в том же файле, purelib означает "installation directory
for pure Python module distributions". Видимо, его имеет смысл держать
где-нибудь в %_datadir (/usr/share/pythonX.Y/...), и соответсвующие пакеты
собирать как noarch.
Насколько мне известно, на данный момент единственной причиной зависимости от
архитектуры многих модулей питона является именно то, что они находятся
внутри %_libdir.
Пропатчить python в этом направлении несложно. Потребуются также
дополнительный макрос в rpm-build-python, аналагичный %python_sitelibdir,
например %python_sitescriptdir.
Но торопиться с этим имхо не стоит.
Ещё один момент. Не совсем ясна связь между этим самым purelib и
distutils.sysconfig.get_python_lib(plat_specific=0).
Ещё один момент. /usr/lib/python2.5/site-packages находится в sys.path, так
что пакеты, кладущие файлы в lib даже вполне себе работают. Правда, это
нарушает policy и ведет к ряду дополнительных проблем.
Например, пока писал это письмо, нашел баг в rpm-build-python-0.33-alt1.1:
в этом пакете есть файл /usr/lib/python2.5/distutils/command/bdist_altrpm.py.
Естественно, import distutils.command.bdist_altrpm не проходит, поскольку
модуль distutils находится в /usr/lib64/... и там такого файлика нет.
Вот через пару часов наверное уже придёт sin@ и начнёт всё чинить.
--
Best regards,
Ivan A. Melnikov <iv на altlinux.org>
Подробная информация о списке рассылки Devel