[devel] Переход на новый python
Alexey I. Froloff
=?iso-8859-1?q?raorn_=CE=C1_immo=2Eru?=
Чт Мар 17 10:17:51 MSK 2005
* Andrey Orlov <cray@> [050316 16:12]:
> Теперь подробно.
[..skip..]
> Если же вам libpython2.3 нужна для чего-то еще, то .... вам
> придется чем-то пожертвовать.
Ну, мы вчера в jabber этот вопрос уже обсуждали...
Если питон один, то почему их три? Зачем нужно держать в
репозитарии три версии питона? (Андрей, если напрягает, пропусти
пять абзацев ;-)
$ locate -r SRPMS/python-\?2
/var/ftp/pub/distributions/ALTLinux/Sisyphus/files/SRPMS/python-2.4.0-alt5.src.rpm
/var/ftp/pub/distributions/ALTLinux/Sisyphus/files/SRPMS/python2.3-2.3.4-alt7.src.rpm
/var/ftp/pub/distributions/ALTLinux/Sisyphus/files/SRPMS/python22-2.2.3-alt8.1.1.src.rpm
Для меня количество питонов определется количеством пакетов,
провайдящих python-devel - количество вариантов сборки чего-либо.
Сейчас выбор варианта делается через зависимость на
python-devel=%_python_version...
После появления python-2.4.0 и переименования python-2.3.x ->
python2.3 все попытки собрать пакеты с python2.3 были об'явлены
противозаконными и нарушающими права человека. Отсюда
получается, что есть смысл держать в репозитарии один
пакет python-devel последней версии.
Едем дальше. Все пакеты, предоставляющие или зависимые от
питоньих модулей имеют версию питона в зависимостях
(pyhtonX.Y(blah)). Отсюда получается, что python2.3 нужен только
на момент перехода на новый питон, чтобы не плодить сто тыщщ
мульёнов unmet'ов.
Андрей, я помню, что есть люди, которые хотят странного. Считаем
вышенаписаное моим занудством.
Далее, зависимость на libpythonX.Y.so.x.y как правило означает
что пакет может использовать какие-то возможности языка python.
Как правило это опционально. См. напр. vim, OOo, xchat,
gnumeric, zapping...
Сейчас libpythonX.Y.so.x.y лежит в python-base, python-base сам
по себе требует python=%__python_version, python-strict
конфликтует с python не своей версии.
Если развернуть зависимости следующим образом:
python-base может быть установлен сам по себе.
python хочет python-base=%__python_version
python-strict по прежнему конфликтует с python не своей версии.
Это решит следующие проблемы:
+ установка пакета, использующего embedded python не приведёт к
установке python-strict/relaxed/whatever если не требуются
дополнительные модули (как правило задействуются они из
вспомогательных скриптов на языке python).
+ можно одновременно поставить две непересекающиеся по файлам
версии python-base если этого требуют межпакетные зависимости и
тем более зависимости на SONAME у исполняемых файлов. Мне
кажется, что на момент перехода можно допустить _частичную_
потерю функциональности у некоторых пакетов. По крайней мере они
не будут унесены из системы во время перехода на новый python...
Вариант, когда у пакета есть зависимости на libpythonX.Y.so.x.y и
одновременно на pythonZ.C(blah) мне представляется маловероятным.
По поводу автоматической пересборки... Да, я помню что некоторые
пакеты не работали при после автоматической пересборки с новым
python (2.2 это был кажется?), но у программ, которые встраивают
в себя питон немного другая ситуация.
Если изменился API программа просто автоматически не
пересоберётся, о чём мантейнер будет уведомлён и уже сам будет с
этим разбираться. Если программа пересобралась, она запустится.
Я не думаю, что Гвидо настолько отмороженый на голову, чтобы
делать какие-то радикальные изменения, незаметные обычному
пользователю libpython (как это недавно случилось с libncurses)...
Поэтому есть смысл натравливать QA робота на все пакеты,
зависящие от libpythonX.Y.so.x.y сразу после появления нового
python в репозитарии. Возможно с поправкой - зависящие от
libpythonX.Y.so.x.y и не зависясище от pythonX.Y(*)...
--
Regards, Sir Raorn.
-------------------
> Помогите решить проблему с проигрыванием midi. KMid и playmidi
...все равно не переиграют TiMidity++? ;-)
-- mike in community@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20050317/7a708264/attachment-0001.bin>
Подробная информация о списке рассылки Devel