[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