On Fri, Apr 28, 2006 at 01:35:58PM +0400, Sergey Bolshakov wrote: > >>>>> "Dmitry" == Dmitry V Levin writes: > > On Wed, Apr 26, 2006 at 04:06:36AM +0400, Alexey Tourbin wrote: > >> On Wed, Apr 26, 2006 at 03:56:10AM +0400, Dmitry V. Levin wrote: > > [...] > >> > > Проблема в том, что из спека на самом деле нетривиально получить src.rpm > >> > > для последующей сборки. > >> > > >> > Нетривиально, но с помощью hasher'а можно. У меня есть мысли (и код) на > >> > эту тему. А что, интересно? > >> > >> Интересно. > > > 1. С помощью очень простого описания (примеры .buildspec'ов были приведены > > ранее) можно сформировать файловое содержимое srpm'а, в виде тарболла. У > > меня уже есть скрипт, который это делает. > > > 2. В базовой сборочной среде (hsh --initroot) можно распаковать этот > > тарболл, и с помощью команды вроде > > sed '/^BuildRequires(pre):[[:space:]]*/!d;s///;q' > > извлечь из specfile'а сборочные зависимости, которые необходимо > > удовлетворить для того, чтобы можно было выполнить команду вроде > > rpmbuild -bs --nodeps > > и получить srpm, который уже можно собирать обычным образом. > > В этом месте предлагается устроить двухпроходное нечто, > бишь, после первого sed и доустановки пакета(ов), выполнять > второй вида rpmbuild -bE |sed '/^BuildRequires:[[:space:]]*/!d;s///;q' > доустановить обнаруженное и закончить rpmbuild -bs. Если уж делать, то не двухпроходное, а до тех пор, пока либо процесс не сойдётся, либо установка пакета не пройдёт. Но первый sed нужен всё равно, ибо есть такие spec-файлы, которых без недостающих макросов даже rpmbuild -bE не принимает. > Да, на всякий случай: тэги в rpm Case-InSensitivE :) Ну это все помнят. Вот только стоит ли делать icase для BuildRequires(pre)? Раз против BuildRequires(pre) никто не возразил, предлагаю начинать добавлять их там где надо. -- ldv