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) отключаем автоматический поиск зависимостей, ставим зависимость на полную поставку питона. Но ведь сейчас, получается, мы ищем зависимости И дополнительно проставляем зависимость на полную поставку питона.