From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4451F4C2.3000705@altlinux.com> Date: Fri, 28 Apr 2006 14:56:02 +0400 From: Anton Farygin Organization: ALT Linux Ltd. User-Agent: Thunderbird 1.5 (X11/20060328) MIME-Version: 1.0 To: devel@altlinux.ru References: <20060425224736.GA12850@nomad.office.altlinux.org> In-Reply-To: <20060425224736.GA12850@nomad.office.altlinux.org> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?koi8-r?b?68HLINPExczB1Ngg0sXQz9rJ1M/Sycog1yBnaXQ=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.7 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Apr 2006 10:50:38 -0000 Archived-At: List-Archive: List-Post: Dmitry V. Levin wrote: > On Tue, Apr 25, 2006 at 04:32:13PM +0400, Dmitry V. Levin wrote: >> On Tue, Apr 25, 2006 at 09:53:28AM +0400, Anton Farygin wrote: > [...] >>> Хм. расскажи плз, как это сделать ? >> Расскажу обязательно, вот закончу тестировать и расскажу. > > Начну понемногу рассказывать, как я это вижу. > > Предпосылка та же, что была при создании hasher'а: я предполагаю, что > система предназначена не только для того, чтобы мантейнер собирал свои > пакеты, но и для того, чтобы собирать чужие пакеты "не глядя". > > В этом случае содержимое репозитория следует рассматривать как untrusted > input. В такой ситуации нельзя использовать простые методы, эквивалентные > запуску произвольного кода, извлекаемого из репозитория. К этим простым > методам относятся: > - запускаемые скрипты; > - включаемые makefile'ы; > - specfile'ы, обрабатываемые rpmbuild'ом. > > Значит, чтобы собирать пакеты из репозитория, нужно либо иметь просто > устроенные specfile'ы, либо завести служебный файл, примитивный внутри и > достаточный для сборки пакета в типичных случаях устройства репозитория. > > Упростить 5.5 тысяч specfile'ов в обозримом будущем нереально, поэтому я > предлагаю завести служебный файл. Имя его не столь важно, хотя значение > по умолчанию должно быть достаточно редким. Во время тестирования я > использовал имя ".buildspec". > > Я прикинул, как обычно бывает устроен репозиторий пакета, и насчитал три > образующих типа, и ещё один смешанный: > > 1. Однородный, развёрнутый: Дерево файлов пакета находится в репозитории > в развёрнутом виде, specfile и .buildspec размещены в корневом каталоге > репозитория. Пример: > $ ls -Alog service/ > total 40 > -rw-r--r-- 1 7 Apr 24 17:44 .buildspec > drwxr-xr-x 8 4096 Apr 25 02:35 .git > -rw-r--r-- 1 340 Apr 10 21:24 post_service > -rw-r--r-- 1 352 Apr 10 21:24 preun_service > drwxr-xr-x 3 4096 Apr 10 21:24 rc.d > -rwxr-xr-x 1 407 Apr 10 21:26 run-parts > -rw-r--r-- 1 1186 Apr 10 21:26 service > -rw-r--r-- 1 6756 Apr 10 21:26 service.spec > drwxr-xr-x 2 4096 Apr 12 16:11 src > Для сборки пакета из этого репозитория нужно получить srpm, состоящий из > service.spec и service-0.5.9.tar[.bz2] (который содержит всё дерево, включая > service.spec и .buildspec; разумеется, .git в него не входит) > > 2. Разнородный, развёрнутый: Дерево файлов пакета находится в репозитории > в развёрнутом виде в отдельном подкаталоге, а .buildspec (и, возможно, > specfile) размещён в корневом каталоге репозитория. Пример: > $ ls -Alog hasher/ > total 12 > -rw-r--r-- 1 37 Apr 25 03:30 .buildspec > drwxr-xr-x 8 4096 Apr 25 03:35 .git > drwxr-xr-x 2 4096 Apr 25 04:52 hasher > Для сборки пакета из этого репозитория нужно получить srpm, состоящий из > hasher.spec и hasher-1.0.29.tar[.bz2] > > 3. Однородный, свёрнутый: Файлы пакета находится в корневом каталоге > репозитория. Пример: > $ ls -Alog strace/ > total 3016 > -rw-r--r-- 1 20 Apr 25 18:37 .buildspec > drwxr-xr-x 8 4096 Apr 25 18:37 .git > -rw-r--r-- 1 3569 Jan 17 17:40 strace-4.5.14-alt-keep_status.patch > -rw-r--r-- 1 25616 Jan 17 18:05 strace-4.5.14-alt-quotactl.patch > -rw-r--r-- 1 3649 Mar 29 04:56 strace-4.5.14-alt-tcb.patch > -rw-r--r-- 1 349 Apr 21 22:24 strace-4.5.14-owl-x86_64.patch > -rw-r--r-- 1 3020800 Jan 17 09:29 strace-4.5.14.tar > -rw-r--r-- 1 10321 Apr 25 04:03 strace.spec > Для сборки пакета из этого репозитория нужно получить srpm, состоящий из > всех вышеперечисленных файлов, за исключением быть может .buildspec (.git > в рассмотрение не входит). > > 4. Смешанный: комбинация 2-го и 3-го типов, одна часть файлов пакета > находится в корневом каталоге репозитория, другая часть развёрнута в > подкаталогах. > > Очевидно, 3-й тип наиболее характерен для пакетов в Сизифе. > 1-й и 2-й типы (довольно схожие, кстати) соответствуют пакетам, > разработка которых сконцентрирована у мантейнера. > > Продолжение следует. Комментарии приветствуются. Возник ещё один весьма интересный вопрос: - массовая расстановка тегов и массовое создание branch'ей. Например - нам нужно как-то сделать бранчи для всех пакетов, которые вошли в Master 3.1. Как это предполагается реализовать ? (это вопрос к размышлению). Rgds, Rider