[devel] Re: Q: Python packaging howto

Mikhail Zabaluev =?iso-8859-1?q?mhz_=CE=C1_altlinux=2Eorg?=
Пн Фев 23 01:05:37 MSK 2004


Hello Alexey,

On Sun, Feb 22, 2004 at 06:05:00AM +0600, Alexey Morozov wrote:
>
> > Есть ещё такая радикальная идея: бинарный пакет может именоваться и
> > по-человечески, именем tarball'а, но предоставлять также имя,
> > привязанное к версии ABI python. При этом могут использоваться
> > скобочные схемы, например:
> > python-abi(%modulename) = %__python_version
> > 
> > После этого корректное прописывание зависимостей между пакетами
> > модулей останется предметом policy.
> Хочется не только решить проблему с зависимостями, но и решить проблему
> с неединовременным перетеканием всего питоньего хозяйства из одной версии
> в другую.

Эта проблема решается другими, нетехническими, средствами.
Правильно прописанные зависимости лишь позволят избежать иллюзии,
что у вас есть необходимый вашему приложению модуль, когда
под используемую версию python его нет.

> > Достаточно определить макрос для уровня оптимизации, %python_optlevel,
> > и использовать его в опции --optimize (с разумным fallback'ом).
> Не только. Нужно еще понять, выделять ли в отдельный пакет (автоматически,
> разумеется) .py.

Этого делать не нужно.

> > Точно так же, нет смысла в общем имени каталога /usr/lib/python
> Есть. Для исходников (.py). Они НЕ БУДУТ использоваться напрямую,
> а просто для "напосмотреть".

А отладчик их там найдёт, если байт-код грузится из /usr/lib/python2.3?

> > > %build
> > > mkdir -p buildroot
> > > 
> > > # Unfortunately build and install steps should be done at once
> > > # because otherwise .pyo files won't get into INSTALLED_FILES
> > > # record
> > > 
> > > CFLAGS="%optflags" %__python setup.py \
> > > 	install --optimize=2 \
> > > 		--root=`pwd`/buildroot \
> > > 		--record=INSTALLED_FILES
> > > %install
> > > 
> > > cp -pr buildroot %buildroot/
> > Не увидел проблем при использовании обычной схемы:
> Ну, это место я еще не оптимизировал. К тому же, я игрался на 2.2, там,
> помнится, что-то странное происходило в этом месте. Ну и, я пока не понял,
> как отнести управляемую байт-компиляцию в %build stage.

Надо перепроверить. Байт-компиляция происходит в %install стадии, по
команде install, и разработчики distutils не имеют ничего против:
фактически, это действительно подготовка установленного модуля к
работе с полной оптимизацией. В %build собираются лишь бинарные
расширения.

-- 
Stay tuned,
  MhZ                                     JID: mhz на altlinux.org
___________
Getting the job done is no excuse for not following the rules.

Corollary:
	Following the rules will not get the job done.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20040223/394b6831/attachment-0002.bin>


Подробная информация о списке рассылки Devel