ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Evgeny Sinelnikov <sin@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] Собираем Python-2.6
Date: Fri, 17 Jul 2009 03:21:25 +0400
Message-ID: <921f6bb40907161621g505e7cc6ma3832dca368f706d@mail.gmail.com> (raw)
In-Reply-To: <20090716212632.GB24497@wo.int.altlinux.org>

17 июля 2009 г. 1:26 пользователь Dmitry V. Levin (ldv@altlinux.org) написал:
> On Thu, Jul 16, 2009 at 10:09:25PM +0400, Evgeny Sinelnikov wrote:
>> Пересборка всех этих пакетов сразу едва ли возможна. С другой стороны,
>> уже сейчас можно собрать два питона. Один из которых будет
>> python2.5-2.5.4, а другой python-2.6.2. Таким образом, если
>> сформировать задание из этих двух пакетов, girar-builder их пропустит.
>> Но не пропустит их sisyphus_check, исправление для которого я уже
>> высылал. Исправленный вариант планируется?
>
> Исправленный вариант планируется, но одно очень важное обстоятельство меня
> сдерживает.  Допустим, в Сизиф приехало 2 пакета, о которых вы говорите,
> python2.5-2.5.4 и python-2.6.2.  Далее, пользователь выполнил
> dist-upgrade, в результате которого у него в системе оказалось 2 питона,
> причём /ust/bin/python стал новым.  Далее, пользователь запустил любой
> скрипт на питоне, использующий, помимо стандартных модулей из подпакетов
> python, дополнительные модули из пакетов python-module-*.  Новый питон
> версии 2.6, конечно, не найдёт модулей, собранных для питона версии 2.5,
> и на этом скрипт закончит свою работу.  Это ситуация называется
> "разломанный питон".
>
> Я думаю, что во всех скриптах, содержащих #!/usr/bin/python, во время сборки
> нужно автоматически фиксить этот #! на
> /usr/bin/python%{?__python_package_version:%__python_package_version}%{?!__python_package_version:%__python_version}
>

Да, отличный вариант, тольк ему исключения, на всякий случай,
предусмотреть нужно. Что-то вроде такого:
%add_python_script_list

Думаю, что пересборку стоит начинать, имея такую фичу в rpm.

> До тех пор, пока скрипты используют /usr/bin/python, система с двумя
> питонами разных версий будет антидистрибутивна, ибо эти скрипты не смогут
> обеспечить выбор той версии питона, для которой зависимости пакетов
> гарантируют наличие модулей питона нужной версии, требуемых для этих скриптов.

Согласен, я тоже думал про это дело... Нам здорово мог бы помочь
repocop, только я пока не решаюсь на его разбор.
Минимально, нам нужно три штуки уметь проверять:
1) Отсутствие python-dev в BuildRequires
2) Наличие python-devel = %__python_version в BuildRequires
3) Проверку python программ на наличие
#!/usr/bin/python%__python_version
Только в последнем нужно делать предупреждение, а не ошибку. Может
быть это, за исключением третьего, в sisyphus_check стоит продвигать?

PS: Кстати, на идею git.alt task [task-id] rebuild так никто и не
отреагировал... Там  видимо тоже нужен, а эвристику с archivе можно
убрать, ибо из archive всегда можно перенести в личный packages, хотя
это не так удобно и требует траффик гонять, да и подпись придётся свою
ставить, что сводит всю прелесть на нет...

-- 
Sin (Sinelnikov Evgeny)

  parent reply	other threads:[~2009-07-16 23:21 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-16 18:09 Evgeny Sinelnikov
2009-07-16 18:40 ` Evgeny Sinelnikov
2009-07-16 19:47   ` Kirill Maslinsky
2009-07-16 20:35     ` Ivan Fedorov
2009-07-16 21:16       ` Alexey I. Froloff
2009-07-16 21:39         ` Ivan Fedorov
2009-07-16 21:54           ` Alexey I. Froloff
2009-07-16 20:15 ` [devel] rpm-build-python Dmitry V. Levin
2009-07-16 21:26 ` [devel] Собираем Python-2.6 Dmitry V. Levin
2009-07-16 21:41   ` [devel] [JT] " Ivan Fedorov
2009-07-16 23:21   ` Evgeny Sinelnikov [this message]
2009-07-21 20:18     ` [devel] autofixing python scripts during build Dmitry V. Levin
2009-07-21 20:46       ` Alexey I. Froloff
2009-07-21 23:13         ` Ivan Fedorov
2009-07-21 23:21           ` Dmitry V. Levin
2009-07-21 23:58             ` Ivan Fedorov
2009-07-22  9:54               ` Dmitry V. Levin
2009-07-22 14:16                 ` Ivan Fedorov
2009-07-18  7:14 ` [devel] Собираем Python-2.6 Yury Yurevich
2009-07-20  4:23   ` REAL
2009-07-20  5:44     ` Yury Yurevich
2009-07-20  6:02       ` REAL
2009-07-20  7:29         ` Evgeny Sinelnikov
2009-07-20  7:51           ` REAL
2009-07-21 15:03             ` Evgeny Sinelnikov
2009-07-21  5:46       ` REAL
2009-07-21  6:01         ` REAL
2009-07-21  7:22           ` Evgeny Sinelnikov
2009-07-21  8:18             ` REAL
2009-07-21  6:32   ` REAL
2009-07-21 16:56 ` Andrey Rahmatullin
2009-07-21 18:36   ` Evgeny Sinelnikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=921f6bb40907161621g505e7cc6ma3832dca368f706d@mail.gmail.com \
    --to=sin@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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