[devel] python package vs python policy
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Мар 18 17:30:50 MSK 2007
On Thu, Mar 15, 2007 at 05:43:13PM +0800, Ivan Fedorov wrote:
> > python-strict в свою очередь слишком жирный.
> Нет. python-strict вытягивает все пакеты базовой поставки. Этот пакет
> вообще сделан только из-за того, что многим лень было аккуратно
> поставить несколько пакетов.
В /usr/share/doc/rpm-build-python-0.29/policy/2-Python_RPM.txt сказано:
15 Я медленно, но верно, пилю питон на части. Новый пакет будет состоять
16 примерно из следующих частей :
17
18 python, python-base -- минимальная установка питона, достаточная
19 для его работы, практически не содержит модулей;
Тем не менее, пакет python на деле вытягивает весь python,
т.е. фактически приводит к установке python-strict:
$ hsh --init ~tmp/build
$ hsh-install ~tmp/build python=2.4
Preparing packages for installation...
ca-certificates-2007.02.06-alt1
libssl6-0.9.8d-alt2
libgdbm-1.8.3-alt3
python-modules-email-2.4.4-alt8
python-modules-compiler-2.4.4-alt8
python-modules-logging-2.4.4-alt8
python-modules-2.4.4-alt8
python-modules-bsddb-2.4.4-alt8
python-modules-curses-2.4.4-alt8
python-modules-encodings-2.4.4-alt8
python-modules-hotshot-2.4.4-alt8
python-modules-xml-2.4.4-alt8
$ hsh-run ~tmp/build -- rpm -q python-strict
python-strict-2.4.4-alt7
$
Таким образом, python-strict -- это не просто пакет для ленивых, которым
нужно поставить стандартную поставку питона. Сама попытка установить
пакет "python", который, согласно policy, должен давать минимальную
установку питона, непосредственно выводит на python-strict.
К сожалению, из полиси не понятно, что значит "медленно, но верно":
кто и когда это написал, и в каком объеме пакет python на данный момент
удовлетворяет своему собственному policy.
Почему я считаю это несоответствие важным?
В policy/3-Python_MODULE.txt говорится:
11 3. Модуль должен содержать явно указанную зависимость на версию питона,
12 использованного при его сборке, такая зависимость вводится указанием
13 кляуз вида :
14
15 python = %__python_version
16
17 python-devel = %__python_version
Фактически это означает, что ЛЮБОЙ питоновский модуль, собранный в
соответствии с policy, будет вытягивать за собой ВСЮ стандартную
поставку питона. Это немало: пакет python-base в развернутом виде
занимает чуть больше 2M, a один только python-modules -- уже 9M.
Мне не кажется это правильным положением вещей.
Кроме того, в policy/5-Python_FAQ.txt говорится:
260 5. Можно попробовать "собирать как раньше".
261
262 Это плохой, неправильный, противоречащий полиси, но очень
263 быстрый способ решить проблему "временно": отключить поиск
264 зависимостей:
265
266 AutoReqProv: yes, nopython
267
268 Requires: python-strict
269
270 По зависимости python-strict вытянется "стандартная установка
271 python", а поиск зависимостей будет отключен. Помните, что в
272 этом случае предполагается что все необходимые зависимости вы
273 проставите сами [...]
Это единственное место, где обсуждается использование python-strict
в зависимостях. Другими словами, из полиси получается следующие два
варианта сборки питоновских модулей: 1) автоматический поиск
зависимостей, полная поставка питона в Requires не нужна; 2) отключаем
автоматический поиск зависимостей, ставим зависимость на полную поставку
питона.
Но ведь сейчас, получается, мы ищем зависимости И дополнительно
проставляем зависимость на полную поставку питона.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20070318/f156b628/attachment-0001.bin>
Подробная информация о списке рассылки Devel