On Tue, Jan 13, 2004 at 07:02:37PM +0600, Alexey Morozov wrote: > Проблема: > > Имеется некоторый пакет (python-doc-tools), который, по сути своей, > набор макросов, скриптов итп. Среди макросов встречаются .py. > > Установка этого пакета предельно проста: тарболл разворачивается, по > сути, в некоторое место в [%buildroot]/usr/share. > > Соответственно, никаких вызовов питона или чего-нить подобного нету. > Более того, хотелось бы _НЕ_ компилировать питон в байткод, потому что > там, в общем, ничего серьезного или постоянно загружаемого нет. Временем > загрузки тех скриптов можно пренебречь с хорошей долей уверенности. > > Однако /usr/lib/rpm/brp-alt БЕЗ ВАРИАНТОВ запускает > /usr/lib/rpm/brp-bytecompile-python, что приводит к двум нежелательным > последствиям: > > 1. Появляются .pyo. Как меня уверяли (кто-то из команды, занимающийся > сборкой питона & Co), байткод от разных версий питона непереносим, хуже > того, совместимости даже взад никто не обещал. Как следствие, происходит > неявная привязка к версии питона, которая стояла в момент загрузки. Это > ПЛОХО. > > 2. Т.к. rpm-build НЕ ТРЕБУЕТ python'а, хотя и пользуется им вне зависимости > от желаний сборщика, сборка в хэшере обламывается, хотя, в общем, пакет > совсем не должен отвечать ни за что, что лежит за пределами его .spec и > прочих его сорцов. > > С этим НАДО ЧТО-ТО ДЕЛАТЬ :-)). Есть набор workaround'ов: 1. %undefine __python: выключает всю логику поддержки python, в т.ч. и /usr/lib/rpm/brp-bytecompile-python 2. unset RPM_PYTHON в конце %install выключает /usr/lib/rpm/brp-bytecompile-python 3. "buildreq -bi" умеет обнаруживать сборочные зависимости на python. -- ldv