[devel] Переходное полиси для для питона
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Окт 26 23:24:31 MSD 2007
On Fri, Oct 26, 2007 at 10:56:13PM +0400, Peter V. Saveliev wrote:
> > В обозримом будущем планируется переход на питон 2.5.
> > В связи с этим дальше лелеять надежны насчёт двух питонов я не вижу
> > смысла.
>
> * а ничего, что некоторые программы работают только с 2.4?
> * в частности, я смогу подгонять свой проект под 2.5 только после его
> появления в Сизифе, по хорошему, т.к. времени, чтобы ставить Debian, просто
> не остаётся
Уже вышел python 2.5.1 (некоторое время назад). Все кому надо за это
время должны были "подтянуться" (из апстримов по крайней мере).
Собственно, в свое время я был против перехода на на python 2.5(.0)
как раз потому, что (наверное) не все были готовы. Но теперь время
будет "играть" в обратную сторону. Есть ведь и обратная проблема:
апстримы уже не будут сохранять совместимость с 2.4.
> Есть объективная причина, которая исключает наличие двух питонов? Или это как
> с biarch, "некошерно, потому что у нас такого нет", а не наоборот?
Если отбросить практическую причину (что программа сборки дополнительных
модулей в двух экземлярах так никгода и не была даже частично
реализована), то всё равно это никак нельзя по-нормальному сделать на
уровне rpm-зависимостей. То есть если /usr/bin/python висит на
альтернативах, то эта альтернатива динамически переключает зависимости
вида pythonX.Y(...) на pythonX.Z(...). Я про это в свое время много спорил.
Можно будет оставить "чисто запасной" python2.4 с отключенным поиском
питоновских зависимостей и без /usr/bin/python (только с
/usr/bin/python2.4). Может кто-нибудь этим займется ввиду суровой
необходимости.
К тому же, схема зависимостей pythonX.Y(...) не дает возможность делать
noarch пакеты, которые не должны зависеть от версии python'а. По идее у
таких пакетов должен быть Provides: python(...). То как тогда ставить
комплементарный Requires: python(...) или pythonX.Y(...) ?
То есть я полагаю что будет сделано так: будет всего один питон;
будет сделан /usr/share/python/site-packages; все зависимости будут
иметь вид python(...); компилированные пакеты будут дополнительно
иметь зависимость на libpythonX.Y.so.M.N. Вопрос с совместимостью
версии байткода в noarch пакетах кажется мне непринципиальным -- если
версия байткода в *.pyc не совпадает, питон просто будет загружать *.py.
Всё это будет не в ближайшее время, наверное в следующем году.
Но кое-что к этому уже готово. Поскольку очень маловероятно,
чтобы кто-то таки начал собирать модули для разных питонов из одного
spec-файла (в чем соль старого полиси), я пока просто предлагаю
постепенно "подчистить" spec-файлы. Когда наступит час X, придётся
меньше переделывать, часть пакетов можно будет просто пересобрать.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20071026/77ee97ef/attachment-0002.bin>
Подробная информация о списке рассылки Devel