[devel] Как сделать репозиторий в git
Dmitry V. Levin
ldv на altlinux.org
Ср Апр 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
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 191 байтов
Описание: отсутствует
Url : http://lists.altlinux.org/pipermail/devel/attachments/20060426/4e023aeb/attachment.bin
Подробная информация о списке рассылки Devel