On Wed, Apr 26, 2006 at 02:47:36AM +0400, Dmitry V. Levin wrote: > Предпосылка та же, что была при создании hasher'а: я предполагаю, что > система предназначена не только для того, чтобы мантейнер собирал свои > пакеты, но и для того, чтобы собирать чужие пакеты "не глядя". > > В этом случае содержимое репозитория следует рассматривать как untrusted > input. В такой ситуации нельзя использовать простые методы, эквивалентные > запуску произвольного кода, извлекаемого из репозитория. К этим простым > методам относятся: > - запускаемые скрипты; > - включаемые makefile'ы; > - specfile'ы, обрабатываемые rpmbuild'ом. > > Значит, чтобы собирать пакеты из репозитория, нужно либо иметь просто > устроенные specfile'ы, либо завести служебный файл, примитивный внутри и > достаточный для сборки пакета в типичных случаях устройства репозитория. Здесь не понял ход мыслей. "Сборка specfile'ов небезопасна. Значит, нужно упростить specfile'ы, чтобы сборка стала безопасной." Так? Что имелось в виду под упрощением? > Упростить 5.5 тысяч specfile'ов в обозримом будущем нереально, поэтому я > предлагаю завести служебный файл. Имя его не столь важно, хотя значение > по умолчанию должно быть достаточно редким. Во время тестирования я > использовал имя ".buildspec". Чем занимается этот служебный файл? Проблема в том, что из спека на самом деле нетривиально получить src.rpm для последующей сборки. %if_with gnome BuildRequires: gnome %else BuildRequires: kde %endif Если только запихнуть этот спек в чрут и сделать там rpm -q --requires --specfile *.spec но тогда опять же макросы могут не раскрыться.