ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)
@ 2009-09-29 18:28 Evgeny Sinelnikov
  2009-09-30  2:07 ` REAL
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Evgeny Sinelnikov @ 2009-09-29 18:28 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Здравствуйте,

28 сентября 2009 г. 23:04 пользователь Dmitry V. Levin
<ldv@altlinux.org> написал:
> On Mon, Sep 28, 2009 at 09:35:27PM +0300, Slava Dubrovskiy wrote:
> [...]
>> Ну тест репокопа ругается
>> http://sisyphus.ru/ru/srpm/Sisyphus/newt52/repocop : -
>> altlinux-python-obsolete-requires-python-version      Requires: python =
>> %__python_version is deprecated according to Python Policy
>> (http://www.altlinux.org/Python_Policy).
>>
>> И тут написано:
>>
>> 3.  Указание зависимостей
>>         3.1.    Пакет ДОЛЖЕН содержать явно указанную зависимость на
>> версию питона,
>>             использованного при его сборке. Такая зависимость вводится
>> указанием
>>             следующих операторов::
>>
>>                 Requires: python = %__python_version
>>
>>                 BuildPreReq: python-devel = %__python_version
>>
>>
>> А что-то не так понял?
>
> Мне кажется, что вы цитируете сборник атавизмов.

Как бы не смешно это было, но это правда...

> Попробуйте объяснить мне, зачем "Пакет ДОЛЖЕН содержать явно указанную
> зависимость на версию питона, использованного при его сборке"?

Даже не буду пробовать :)
Но это всё равно нужно проверить...

Действительно в старом python policy слишком много старых, не актуальных идей...

Прежде, чем я изложу рассмотренные за последнее время вопросы по
сборке питона на wiki, хочу обсудить следующие вопросы.

1. Есть ли возражения относительно подхода, когда в все пакеты с
питоновскими модулями будут именоваться pythonX.Y-module-%{name}? Я
предлагаю отказаться от "чистых" имён в пользу удобства именования и
однозначности при переездах на новые питоны.

2. Кто будет осуществлять поддержку python policy на уровне rpm?
Python Team? Если да, то прошу помочь реализовать средство подстановки
точной версии питона в shabang для скриптов. Сейчас я не совсем
понимаю куда это лучше встроить и как это должно работать. Для меня
это одно из основных препятствий для тестирования двух питонов.


-- 
Sin (Sinelnikov Evgeny)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)
  2009-09-29 18:28 [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Evgeny Sinelnikov
@ 2009-09-30  2:07 ` REAL
  2009-09-30  3:25 ` Alexey Morozov
  2009-09-30 12:42 ` [devel] Python Policy: autofixing shebang in python scripts Dmitry V. Levin
  2 siblings, 0 replies; 12+ messages in thread
From: REAL @ 2009-09-30  2:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Evgeny Sinelnikov пишет:
> 1. Есть ли возражения относительно подхода, когда в все пакеты с
> питоновскими модулями будут именоваться pythonX.Y-module-%{name}? Я
> предлагаю отказаться от "чистых" имён в пользу удобства именования и
> однозначности при переездах на новые питоны.

Лично у меня возражений нет, ибо никогда такими именами не 
пользовался. Чем это лучше pythonX.Y(name)?

А вот насчёт имён python-module-%name в сборочных зависимостях - в 
случаях двух питонов что будет выбираться при сборке? Если будет две 
версии в сизифе, какая будет выбираться по умолчанию? Вариант 
переделывать ВСЕ спеки - очень нежелательный: пакетов очень много.

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)
  2009-09-29 18:28 [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Evgeny Sinelnikov
  2009-09-30  2:07 ` REAL
@ 2009-09-30  3:25 ` Alexey Morozov
  2009-09-30  3:50   ` [devel] Python Policy REAL
  2009-09-30  3:56   ` [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Andrey Rahmatullin
  2009-09-30 12:42 ` [devel] Python Policy: autofixing shebang in python scripts Dmitry V. Levin
  2 siblings, 2 replies; 12+ messages in thread
From: Alexey Morozov @ 2009-09-30  3:25 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Здравствуйте.

В сообщении от Среда 30 сентября 2009 01:28:49 автор Evgeny Sinelnikov 
написал:
> 1. Есть ли возражения относительно подхода, когда в все пакеты с
> питоновскими модулями будут именоваться pythonX.Y-module-%{name}? Я
> предлагаю отказаться от "чистых" имён в пользу удобства именования и
> однозначности при переездах на новые питоны.
Если интересно, заметная часть питон-модулей (включая .pyc/.pyo!) преспокойно 
переезжает из pythonX.Y в pythonX.<Y+1> . Исключения составляют те, кто 
завязан на libpython.so и другие ELF-библиотеки. Поэтому, как мне кажется, 
было бы разумнее, если бы бОльшая часть питон-модулей лежала где-нибудь в 
/usr/share/pythonX. Ну и остаётся некоторый риск того, что в каком-то из 
минорных апдейтов (слегка) сломают совместимость по байткоду.

Альтернативный подход применён в Debian Python Policy. У них предкомпиляция 
байткода осуществлялась, если я правильно помню, на машине конечного 
пользователя (на этапе dpkg-configure), в каталогах, специфичных для данной 
версии питона.

Посмотрите, кстати, может, и велосипед не надо изобретать :)

> 2. Кто будет осуществлять поддержку python policy на уровне rpm?
> Python Team? Если да, то прошу помочь реализовать средство подстановки
> точной версии питона в shabang для скриптов. Сейчас я не совсем
> понимаю куда это лучше встроить и как это должно работать. Для меня
> это одно из основных препятствий для тестирования двух питонов.
Вообще говоря, это осуществляется стандартными питоновскими distutils & Co.
Достаточно просто запускать не /usr/bin/python, а /usr/bin/pythonX.Y.

Собственно говоря, и зависимость на точную версию python пробивалась именно 
поэтому - во всех скриптах, которые зависели от установленных в 
/usr/lib/python/X.Y модулей, в хэшбэнге был именно pythonX.Y. 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  3:25 ` Alexey Morozov
@ 2009-09-30  3:50   ` REAL
  2009-09-30  4:22     ` Alexey Morozov
  2009-09-30  3:56   ` [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Andrey Rahmatullin
  1 sibling, 1 reply; 12+ messages in thread
From: REAL @ 2009-09-30  3:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Alexey Morozov пишет:
> Если интересно, заметная часть питон-модулей (включая .pyc/.pyo!) преспокойно 
> переезжает из pythonX.Y в pythonX.<Y+1> . Исключения составляют те, кто 
> завязан на libpython.so и другие ELF-библиотеки. Поэтому, как мне кажется, 
> было бы разумнее, если бы бОльшая часть питон-модулей лежала где-нибудь в 
> /usr/share/pythonX. Ну и остаётся некоторый риск того, что в каком-то из 
> минорных апдейтов (слегка) сломают совместимость по байткоду.

Тут есть одна большая грабля: некоторые .py файлы различаются в разных 
версиях (где-то прописаны пути до каталога с модулем, где-то разные 
названия, в частности в python 2.6 недопустимо использовать в качестве 
имён as и with).

>> 2. Кто будет осуществлять поддержку python policy на уровне rpm?
>> Python Team? Если да, то прошу помочь реализовать средство подстановки
>> точной версии питона в shabang для скриптов. Сейчас я не совсем
>> понимаю куда это лучше встроить и как это должно работать. Для меня
>> это одно из основных препятствий для тестирования двух питонов.
> Вообще говоря, это осуществляется стандартными питоновскими distutils & Co.
> Достаточно просто запускать не /usr/bin/python, а /usr/bin/pythonX.Y.

А как будут исправляться шебанги в %_bindir и %_docdir? Особенно если 
не используется distutils.


-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)
  2009-09-30  3:25 ` Alexey Morozov
  2009-09-30  3:50   ` [devel] Python Policy REAL
@ 2009-09-30  3:56   ` Andrey Rahmatullin
  2009-09-30  4:27     ` Alexey Morozov
  1 sibling, 1 reply; 12+ messages in thread
From: Andrey Rahmatullin @ 2009-09-30  3:56 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

On Wed, Sep 30, 2009 at 10:25:04AM +0700, Alexey Morozov wrote:
> Альтернативный подход применён в Debian Python Policy.
Туда посмотреть предлагали раза два, толку-то.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

В [husky-]current API и ABI могут меняться по 2-3 раза в день... и это
нормально!..
		-- ns in community@

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  3:50   ` [devel] Python Policy REAL
@ 2009-09-30  4:22     ` Alexey Morozov
  2009-09-30  5:28       ` REAL
  0 siblings, 1 reply; 12+ messages in thread
From: Alexey Morozov @ 2009-09-30  4:22 UTC (permalink / raw)
  To: devel

В сообщении от Среда 30 сентября 2009 10:50:51 автор REAL написал:
> Тут есть одна большая грабля: некоторые .py файлы различаются в разных
> версиях (где-то прописаны пути до каталога с модулем, где-то разные
> названия, в частности в python 2.6 недопустимо использовать в качестве
> имён as и with).
Ну, да, вероятно. Вопрос только в том, какова вероятность встретить подобный 
модуль. Мне кажется, невелика. Я могу ошибаться.

> > Вообще говоря, это осуществляется стандартными питоновскими distutils &
> > Co. Достаточно просто запускать не /usr/bin/python, а /usr/bin/pythonX.Y.
> 
> А как будут исправляться шебанги в %_bindir и %_docdir?
Вот в %_bindir они и исправляются стандартными distutils'ами. _%docdir стоит 
особняком, и там, видимо, надо руками. Вообще, класть что-то исполняемое в 
%_docdir, по-моему, моветон.

> Особенно если не используется distutils.
Ну, смотрите документацию на то, что используется вместо distutils. Можно, 
конечно, и sed-скрипт написать и в конце сборки всех "принуждать к миру".


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)
  2009-09-30  3:56   ` [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Andrey Rahmatullin
@ 2009-09-30  4:27     ` Alexey Morozov
  0 siblings, 0 replies; 12+ messages in thread
From: Alexey Morozov @ 2009-09-30  4:27 UTC (permalink / raw)
  To: devel

В сообщении от Среда 30 сентября 2009 10:56:00 автор Andrey Rahmatullin 
написал:
> On Wed, Sep 30, 2009 at 10:25:04AM +0700, Alexey Morozov wrote:
> > Альтернативный подход применён в Debian Python Policy.
> Туда посмотреть предлагали раза два, толку-то.
Ну, там тоже не всё здорово. По крайней мере, года два назад, я, используя 
только apt-get, умудрялся сломать работоспособность питоновского хозяйства на 
своём дебиановском десктопе. Впрочем, я его (Debian) традиционно не люблю, он 
отвечает мне взаимностью и гадит при каждом удобном случае, так что, я - не 
показатель :)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  5:28       ` REAL
@ 2009-09-30  5:18         ` Andrey Rahmatullin
  2009-09-30  6:45         ` Alexey Morozov
  1 sibling, 0 replies; 12+ messages in thread
From: Andrey Rahmatullin @ 2009-09-30  5:18 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1253 bytes --]

On Wed, Sep 30, 2009 at 01:28:09PM +0800, REAL wrote:
> > Ну, да, вероятно. Вопрос только в том, какова вероятность встретить подобный 
> > модуль. Мне кажется, невелика. Я могу ошибаться.
> Вероятность = 1, потому что лично знаю такие модули :)
Такие модули фиксятся под последнюю версию питона. Почему бы модулю
работать под последнюю версию и не работать под предпоследнюю (не считая
ситуации, когда он специально написан под новые фичи) я не знаю. Ситуация,
когда модуль явно не поддерживает старую версию, решается несборкой модуля
под старую версию, как это, насколько я вижу, сделано в D**ian.

> > Вот в %_bindir они и исправляются стандартными distutils'ами. _%docdir стоит 
> > особняком, и там, видимо, надо руками. Вообще, класть что-то исполняемое в 
> > %_docdir, по-моему, моветон.
> Оно может не быть исполняемым, но стать таковым по желанию 
> пользователя (одно дело - скопировать себе и сделать chmod +x, совсем 
> другое - ещё и внутри править что-то неочевидное).
Ну будет работать под дефолтным питоном, ничего страшного.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

<thresh> с другой стороны, мышка microsoft будет хорошо смотреться рядом с
         маком на котором запущен linux

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  4:22     ` Alexey Morozov
@ 2009-09-30  5:28       ` REAL
  2009-09-30  5:18         ` Andrey Rahmatullin
  2009-09-30  6:45         ` Alexey Morozov
  0 siblings, 2 replies; 12+ messages in thread
From: REAL @ 2009-09-30  5:28 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Alexey Morozov пишет:
> Ну, да, вероятно. Вопрос только в том, какова вероятность встретить подобный 
> модуль. Мне кажется, невелика. Я могу ошибаться.

Вероятность = 1, потому что лично знаю такие модули :)

> Вот в %_bindir они и исправляются стандартными distutils'ами. _%docdir стоит 
> особняком, и там, видимо, надо руками. Вообще, класть что-то исполняемое в 
> %_docdir, по-моему, моветон.

Оно может не быть исполняемым, но стать таковым по желанию 
пользователя (одно дело - скопировать себе и сделать chmod +x, совсем 
другое - ещё и внутри править что-то неочевидное).

>> Особенно если не используется distutils.
> Ну, смотрите документацию на то, что используется вместо distutils. Можно, 
> конечно, и sed-скрипт написать и в конце сборки всех "принуждать к миру".

Думаю, нужно не мейнтейнерам куда-то смотреть (ибо зачем тогда вообще 
это всё, раз другим будет лишний геморрой), а сделать автоматику при 
сборке. О чём речь изначально и велась.

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  5:28       ` REAL
  2009-09-30  5:18         ` Andrey Rahmatullin
@ 2009-09-30  6:45         ` Alexey Morozov
  2009-09-30  8:10           ` REAL
  1 sibling, 1 reply; 12+ messages in thread
From: Alexey Morozov @ 2009-09-30  6:45 UTC (permalink / raw)
  To: devel

В сообщении от Среда 30 сентября 2009 12:28:09 автор REAL написал:
> Alexey Morozov пишет:
> > Ну, да, вероятно. Вопрос только в том, какова вероятность встретить
> > подобный модуль. Мне кажется, невелика. Я могу ошибаться.
> Вероятность = 1, потому что лично знаю такие модули :)
Да, вероятность - плохое слово. Переформулирую: сколько в штуках таких 
модулей?

> Думаю, нужно не мейнтейнерам куда-то смотреть (ибо зачем тогда вообще
> это всё, раз другим будет лишний геморрой),
Потому что смотреть в документацию по используемой в данном модуле сборочной 
системе всё равно придётся. Хотя бы для того, чтобы модули легли в 
соответствии с желаемым расположением. Вероятно, часть общеупотребительных 
вещей можно унести и в макросы, отчего нет :)

> а сделать автоматику при сборке. О чём речь изначально и велась.
Пожелание - не переусердствуйте с автоматикой.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy
  2009-09-30  6:45         ` Alexey Morozov
@ 2009-09-30  8:10           ` REAL
  0 siblings, 0 replies; 12+ messages in thread
From: REAL @ 2009-09-30  8:10 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Alexey Morozov пишет:
>>> Ну, да, вероятно. Вопрос только в том, какова вероятность встретить
>>> подобный модуль. Мне кажется, невелика. Я могу ошибаться.
>> Вероятность = 1, потому что лично знаю такие модули :)
> Да, вероятность - плохое слово. Переформулирую: сколько в штуках таких 
> модулей?

Не считал. Но сам несколько таких модулей правил. Включая и свои 
собственные, но не только. Из совсем недавнего - python2.x(Gnuplot).

-- 

REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [devel] Python Policy: autofixing shebang in python scripts
  2009-09-29 18:28 [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Evgeny Sinelnikov
  2009-09-30  2:07 ` REAL
  2009-09-30  3:25 ` Alexey Morozov
@ 2009-09-30 12:42 ` Dmitry V. Levin
  2 siblings, 0 replies; 12+ messages in thread
From: Dmitry V. Levin @ 2009-09-30 12:42 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 814 bytes --]

On Tue, Sep 29, 2009 at 10:28:49PM +0400, Evgeny Sinelnikov wrote:
> 28 сентября 2009 г. 23:04 пользователь Dmitry V. Levin написал:
> > On Mon, Sep 28, 2009 at 09:35:27PM +0300, Slava Dubrovskiy wrote:
[...]
> 2. Кто будет осуществлять поддержку python policy на уровне rpm?
> Python Team? Если да, то прошу помочь реализовать средство подстановки
> точной версии питона в shabang для скриптов. Сейчас я не совсем
> понимаю куда это лучше встроить и как это должно работать. Для меня
> это одно из основных препятствий для тестирования двух питонов.

В качестве быстрого хака, чтобы вы могли продолжить работу, могу
предложить внедриться в /usr/lib/rpm/shebang.req; он, конечно,
предназначен для вычисления зависимостей, и не должен менять файлы,
но в качестве быстрого хака подойдёт.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2009-09-30 12:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-29 18:28 [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Evgeny Sinelnikov
2009-09-30  2:07 ` REAL
2009-09-30  3:25 ` Alexey Morozov
2009-09-30  3:50   ` [devel] Python Policy REAL
2009-09-30  4:22     ` Alexey Morozov
2009-09-30  5:28       ` REAL
2009-09-30  5:18         ` Andrey Rahmatullin
2009-09-30  6:45         ` Alexey Morozov
2009-09-30  8:10           ` REAL
2009-09-30  3:56   ` [devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus) Andrey Rahmatullin
2009-09-30  4:27     ` Alexey Morozov
2009-09-30 12:42 ` [devel] Python Policy: autofixing shebang in python scripts Dmitry V. Levin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git