ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] Как сделать репозиторий в git
@ 2006-04-25 22:47 Dmitry V. Levin
  2006-04-25 23:02 ` Alexey Tourbin
                   ` (6 more replies)
  0 siblings, 7 replies; 81+ messages in thread
From: Dmitry V. Levin @ 2006-04-25 22:47 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 3853 bytes --]

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-й типы (довольно схожие, кстати) соответствуют пакетам,
разработка которых сконцентрирована у мантейнера.

Продолжение следует.  Комментарии приветствуются.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

^ permalink raw reply	[flat|nested] 81+ messages in thread

end of thread, other threads:[~2006-05-01  9:43 UTC | newest]

Thread overview: 81+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-25 22:47 [devel] Как сделать репозиторий в git 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
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

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