[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