[devel] Как сделать репозиторий в git
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Апр 26 03:56:10 MSD 2006
On Wed, Apr 26, 2006 at 03:46:02AM +0400, Alexey Tourbin wrote:
> On Wed, Apr 26, 2006 at 02:47:36AM +0400, Dmitry V. Levin wrote:
> > Предпосылка та же, что была при создании hasher'а: я предполагаю, что
> > система предназначена не только для того, чтобы мантейнер собирал свои
> > пакеты, но и для того, чтобы собирать чужие пакеты "не глядя".
> >
> > В этом случае содержимое репозитория следует рассматривать как untrusted
> > input. В такой ситуации нельзя использовать простые методы, эквивалентные
> > запуску произвольного кода, извлекаемого из репозитория. К этим простым
> > методам относятся:
> > - запускаемые скрипты;
> > - включаемые makefile'ы;
> > - specfile'ы, обрабатываемые rpmbuild'ом.
> >
> > Значит, чтобы собирать пакеты из репозитория, нужно либо иметь просто
> > устроенные specfile'ы, либо завести служебный файл, примитивный внутри и
> > достаточный для сборки пакета в типичных случаях устройства репозитория.
>
> Здесь не понял ход мыслей. "Сборка specfile'ов небезопасна. Значит,
> нужно упростить specfile'ы, чтобы сборка стала безопасной." Так?
> Что имелось в виду под упрощением?
Думаю что упрощение specfile'ов до состояния, когда их можно будет
парсить без помощи rpmbuild, является недостижимой задачей.
> > Упростить 5.5 тысяч specfile'ов в обозримом будущем нереально, поэтому я
> > предлагаю завести служебный файл. Имя его не столь важно, хотя значение
> > по умолчанию должно быть достаточно редким. Во время тестирования я
> > использовал имя ".buildspec".
>
> Чем занимается этот служебный файл?
Он определяет, какие файлы из репозитория должны попасть во временный
srpm-пакет, а также простые преобразования, которые при этом следует
сделать (например, свернуть дерево в тарболл или сжать тарболл bzip'ом).
Примеры .buildspec'ов:
1-й тип (service):
tar: .
2-й тип (hasher):
spec: hasher/hasher.spec
tar: hasher
3-й тип (strace):
copy: *.patch
bzip2: *.tar
> Проблема в том, что из спека на самом деле нетривиально получить src.rpm
> для последующей сборки.
Нетривиально, но с помощью hasher'а можно. У меня есть мысли (и код) на
эту тему. А что, интересно?
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060426/4e023aeb/attachment-0001.bin>
Подробная информация о списке рассылки Devel