[devel] Python3 modules

Vitaly Kuznetsov vitty на altlinux.ru
Пт Янв 27 10:48:36 MSK 2012


Hi,

в Сизиф можно пробовать собирать модули Python3. Пример добавления 
сборки модуля python3 можно посмотреть тут:
http://git.altlinux.org/people/vitty/packages/?p=python-module-pyinotify.git;a=blobdiff;f=python-inotify.spec;h=ae430437fd845b5b2f6e4bdfee1cd0fec2433efd;hp=e7ce7248c80122ca2a5d6d0caff4eb9addf0bb08;hb=d718aa362381a13aca7aaa30c491ac87a4e62181;hpb=03ef7c31960e761d7b2865c66f6b93265d42ad95

Макросы для сборки модулей python3 содержатся в пакете 
rpm-build-python3 и аналогичны тем, что используются у нас для python.

Специфика:
1) При сборке модуля python3 из того же исходника, из которого 
собирается модуль python требуется оборачивать такую сборку в %if_with 
python3
2) Группа пакетов - Development/Python3
3) Python3/rpm-build-python3 - не базовая система, для использования 
макросов нужно писать BuildRequires(pre): rpm-build-python3
4) Автоматический поиск Requires/Provides работает только для 
%python3_sitelibdir{-noarch}. Возможно, стоит добавить механизм для 
явного указания других путей (с исключением поиска там зависимостей с 
помощью python2), я подумаю. В отличие от python зависимости на 
python3-base генерируются явно (к примеру, "python3.2(os)").
5) Скомпилированные .pyo/.pyc у python3 кладутся в специальный каталог 
__pycache__ в директории с исходником. Не забывайте их паковать.

При смене версии python3 потребуется полная пересборка. Если для сборки 
вам требуется бутстрап - оставляйте, пожалуйста соответствующие ручки 
вида %def_with, это сильно упрощает формирование задания на обновление. 
Для этих же целей, наверное, стоит автоматически навешивать какую-нибудь 
группу вида @python3 на все пакеты, из которых собралось что-то, 
требующее python3.*(*).

Ошибки/пожелания приветствуются, передавайте их мне любым удобным для 
вас способом.



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