Python3: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «категория:devel Категория:Packaging == Python3 в Sisyphus == Python3 собран в Sisyphus параллельно с Python2 и буд...»)
 
Нет описания правки
Строка 6: Строка 6:


== Упаковка модулей Python3 ==
== Упаковка модулей Python3 ==
=== Примеры упаковки ===
Пример упаковки модуля Python3 из того же исходника, из которого пакуется модуль Python2 можно посмотреть тут: 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 из того же исходника, из которого пакуется модуль Python2 можно посмотреть тут: 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.
Макросы для сборки модулей python3 содержатся в пакете rpm-build-python3 и аналогичны тем, что используются у нас для python.


Специфика:
=== Специфика ===
#При сборке модуля python3 из того же исходника, из которого собирается модуль python требуется оборачивать такую сборку в %if_with python3
#При сборке модуля python3 из того же исходника, из которого собирается модуль python требуется оборачивать такую сборку в %if_with python3
#Группа пакетов - Development/Python3
#Группа пакетов - Development/Python3
Строка 19: Строка 21:
При смене версии python3 потребуется полная пересборка. Если для сборки вам требуется бутстрап - оставляйте, пожалуйста соответствующие ручки вида %def_with, это сильно упрощает формирование задания на обновление. Для этих же целей, наверное, стоит автоматически навешивать какую-нибудь группу вида @python3 на все пакеты, из которых собралось что-то, требующее python3.*(*).
При смене версии python3 потребуется полная пересборка. Если для сборки вам требуется бутстрап - оставляйте, пожалуйста соответствующие ручки вида %def_with, это сильно упрощает формирование задания на обновление. Для этих же целей, наверное, стоит автоматически навешивать какую-нибудь группу вида @python3 на все пакеты, из которых собралось что-то, требующее python3.*(*).


== Ошибки и пожелания ==
Ошибки и пожелания принимаются в багзиллу на пакеты python3/rpm-build-python3 или в личную почту vitty@
Ошибки и пожелания принимаются в багзиллу на пакеты python3/rpm-build-python3 или в личную почту vitty@

Версия от 10:08, 27 января 2012


Python3 в Sisyphus

Python3 собран в Sisyphus параллельно с Python2 и будет так существовать достаточно длительное время (по полного исчезновения Python2, которое в обозримом будущем вряд ли случиться). Языки Python3 и Python2 отличаются синтаксисом, список различий доступен на http://docs.python.org/py3k/whatsnew/3.0.html

Упаковка модулей Python3

Примеры упаковки

Пример упаковки модуля Python3 из того же исходника, из которого пакуется модуль Python2 можно посмотреть тут: 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.*(*).

Ошибки и пожелания

Ошибки и пожелания принимаются в багзиллу на пакеты python3/rpm-build-python3 или в личную почту vitty@