From: Anton Farygin <rider@altlinux.com>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Как сделать репозиторий в git
Date: Wed, 26 Apr 2006 22:46:06 +0400
Message-ID: <444FBFEE.2040709@altlinux.com> (raw)
In-Reply-To: <20060425224736.GA12850@nomad.office.altlinux.org>
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-й типы (довольно схожие, кстати) соответствуют пакетам,
> разработка которых сконцентрирована у мантейнера.
>
> Продолжение следует. Комментарии приветствуются.
>
Интересно было бы взглянуть на:
1) формат buildspec
2) типовой набор команд для того, что бы с этим работать
- если я правильно понял, то предполагается каждый пакет держать в
отдельном GIT репозитарии. Вопрос собственно простой: каким образом 1)
скачать все пакеты
2) добавлять пакеты в центральный репозитарий
3) удалять пакеты из центрального репозитария
4) обновлять весь центральный репозитарий (можно конечно сделать for i
in *;do... done, то на мой взгляд в этом случае мы не отследим
добавление/удаление пакетов.
Rgds,
Rider
next prev parent reply other threads:[~2006-04-26 18:46 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-25 22:47 Dmitry V. Levin
2006-04-25 23:02 ` Alexey Tourbin
2006-04-25 23:10 ` Dmitry V. Levin
2006-04-25 23:18 ` Alexey Tourbin
2006-04-25 23:34 ` Dmitry V. Levin
2006-04-26 8:36 ` Michael Shigorin
2006-04-26 8:45 ` Alexey Tourbin
2006-04-26 9:21 ` Michael Shigorin
2006-04-26 10:30 ` Dmitry V. Levin
2006-04-26 12:27 ` Michael Shigorin
2006-04-26 13:42 ` Alexey Tourbin
2006-04-26 13:53 ` Michael Shigorin
2006-04-26 18:49 ` Anton Farygin
2006-04-26 18:58 ` Michael Shigorin
2006-04-26 19:26 ` Anton Farygin
2006-04-26 20:40 ` Dmitry V. Levin
2006-04-27 5:45 ` Anton Farygin
2006-04-25 23:46 ` Alexey Tourbin
2006-04-25 23:56 ` Dmitry V. Levin
2006-04-26 0:06 ` Alexey Tourbin
2006-04-26 0:21 ` Dmitry V. Levin
2006-04-26 8:56 ` [devel] BuildRequires(pre) Michael Shigorin
2006-04-26 10:31 ` Dmitry V. Levin
2006-04-28 9:35 ` [devel] Как сделать репозиторий в git Sergey Bolshakov
2006-04-28 9:53 ` Alexey I. Froloff
2006-04-28 9:55 ` Sergey Bolshakov
2006-04-29 23:30 ` Dmitry V. Levin
2006-04-29 23:39 ` Alexey Tourbin
2006-04-30 13:15 ` Dmitry V. Levin
2006-04-26 5:11 ` Alexey I. Froloff
2006-04-26 10:33 ` Dmitry V. Levin
2006-04-26 23:34 ` Dmitry V. Levin
2006-04-28 8:22 ` Alexey I. Froloff
2006-04-28 12:06 ` Dmitry V. Levin
2006-04-28 12:23 ` Alexey I. Froloff
2006-04-28 12:35 ` Dmitry V. Levin
2006-04-28 12:47 ` Alexey I. Froloff
2006-04-29 9:20 ` Kirill A. Shutemov
2006-04-30 23:07 ` Dmitry V. Levin
2006-05-01 9:43 ` Alexey I. Froloff
2006-04-26 7:13 ` Vital Khilko
2006-04-26 10:35 ` Dmitry V. Levin
2006-04-26 11:21 ` Kirill A. Shutemov
2006-04-26 18:46 ` Anton Farygin [this message]
2006-04-26 21:36 ` Dmitry V. Levin
2006-04-26 21:58 ` Alexey I. Froloff
2006-04-26 22:16 ` Dmitry V. Levin
2006-04-27 5:51 ` Alexey I. Froloff
2006-04-27 12:33 ` Dmitry V. Levin
2006-04-27 13:01 ` Alexey I. Froloff
2006-04-27 23:55 ` Dmitry V. Levin
2006-04-28 7:04 ` Anton Farygin
2006-04-28 12:08 ` Dmitry V. Levin
2006-04-27 6:15 ` Anton Farygin
2006-04-27 12:47 ` Dmitry V. Levin
2006-04-27 13:25 ` Sergey Vlasov
2006-04-27 13:30 ` Dmitry V. Levin
2006-04-27 13:48 ` Anton Farygin
2006-04-27 14:18 ` Michael Shigorin
2006-04-27 14:00 ` Kirill A. Shutemov
2006-04-27 14:14 ` Alexey I. Froloff
2006-04-27 14:44 ` Dmitry V. Levin
2006-04-27 22:26 ` [devel] Как назвать утилиту Dmitry V. Levin
2006-04-27 16:53 ` Kirill Maslinsky
2006-04-28 7:07 ` Anton Farygin
2006-04-27 7:19 ` [devel] Как сделать репозиторий в git Stanislav Ievlev
2006-04-27 12:56 ` Dmitry V. Levin
2006-04-27 13:03 ` Alexey I. Froloff
2006-04-27 13:08 ` Dmitry V. Levin
2006-04-27 13:32 ` Sviatoslav Sviridov
2006-04-27 13:57 ` Anton Farygin
2006-04-27 14:24 ` Michael Shigorin
2006-04-27 22:06 ` [devel] Как назвать файл с правилами Dmitry V. Levin
2006-04-27 22:32 ` Sviatoslav Sviridov
2006-04-27 16:54 ` Kirill Maslinsky
2006-04-28 12:38 ` Dmitry V. Levin
2006-04-28 11:05 ` [devel] [JT] " Michael Shigorin
2006-04-28 11:09 ` Led
2006-04-28 11:15 ` Michael Shigorin
2006-04-28 11:27 ` Led
2006-04-28 10:56 ` [devel] Как сделать репозиторий в git Anton Farygin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=444FBFEE.2040709@altlinux.com \
--to=rider@altlinux.com \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git