ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Dmitry V. Levin" <ldv@fandra.org>
To: devel@linux.iplabs.ru
Subject: [devel] Re: Q: package repository
Date: Thu, 2 Nov 2000 02:09:33 +0300
Message-ID: <20001102020933.A31994@LDV.fandra.org> (raw)
In-Reply-To: <20001024163817.A27782@LDV.fandra.org>; from ldv@LDV.fandra.org on Tue, Oct 24, 2000 at 04:38:17PM +0400

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

Greetings!

On Tue, Oct 24, 2000 at 05:33:14PM +0300, Alexander Bokovoy wrote:
> Предлагаю как вариант следующую систему:
> 1. Репозитарий разбивается на две части -- оригинальные исходные тексты и наши патчи.
> Первые хранятся в виде отдельных каталогов с оригинальными tar.bz2 (tar.gz) и
> обновляются при обновлении версии продукта. Вторые находятся в CVS, где каждый модуль
> совпадает по имени с каталогом в первой части.

On Tue, Oct 24, 2000 at 11:08:11PM +0400, Mikhail Zabaluev wrote:
> Присоединяюсь к мнению Александра: для sources - архивы вне revision
> control, все остальное отслеживать в виде файлов. Дополнение: добавленные
> бинарные файлы (иконки и т.п.) заливать минуя revision control, видимо, в
> ту же иерархию, где будут лежать исходники.

On Tue, Oct 24, 2000 at 05:33:14PM +0300, Alexander Bokovoy wrote:
> 2. Каждый приходящий патч при commit проверяется на наличие в имени наиболее
> распространенных окончаний сжатых файлов (.gz, .bz2, .tar.они-же, другие варианты),
> раскручивается и выполняется diff с последней версией в репозитарии (которая тоже
> раскручивается перед сравнением). Таким образом, фактически, подменяется способ
> хранения пакетов в CVS: CVS ведет diff-ы между патчами для бинарных исправлений и
> ведет историю обычных файлов (например, SPECS) как обычно.
> 
> 3. Вторая часть репозитария представляет собой фактически содержимое nosrc.rpm.

On Tue, Oct 24, 2000 at 11:08:11PM +0400, Mikhail Zabaluev wrote:
> Если будет выбран CVS, неплохо было бы автоматизировать changelog в spec
> - записывать туда комментарии, введенные при commit'e.
> 
> > + Возможность сопряжения с подсистемами автоматической сборки и
> >   автоматического обновления "pristine sources" (этих подсистем пока нет).
> 
> Опять же, по commit или rtag можно запускать сборку и отправлять
> доклад разработчику (адрес берется из тэга Packager в spec). Исходники
> можно требовать указывать в виде URL и для сборки, если локальной копии
> нет, забирать wget'ом или аналогичным софтом, предусмотрев подстраховку,
> например: указан .bz2 -> не найден -> пробуем .gz -> есть -> выкачиваем
> -> переупаковываем.

Мне кажется более удобной следующая схема:

1. Содержимое каждого пакета разбивается на 3 категории:
   spec, sources, patches:
 + В категорию sources попадают файлы, именуемые "pristine sources",
   которые закачиваются в хранилище минуя packager'а. Для этих файлов
   стоит реализовать автоматический поиск и закачку новых версий.
 + В категорию spec попадает один единственный файл. В отличие от двух
   других категорий, эта категория содержит ровно один файл для каждого
   пакета. Выделение этого файла в отдельную категорию обусловлено
   особенностями пост-обработки при commit'e и rtag'e, как верно заметил
   Михаил.
 + В категорию patches попадают все остальные файлы.

2. Имеет смысл хранить большое число версий файлов из категории spec и
   patches; по этой причине разумный способ хранения - CVS, текстовые файлы
   при этом хранятся обычным образом, а бинарные - с опцией "-kb".

3. Как правило, нет смысла хранить много версий pristine sources, однако
   желательно все же иметь 2-3 версии; специфика файлов этой категории -
   смена имени файла вместе с номером версии (в большинстве случаев), что
   затрудняет использование CVS; Однако, есть потребность в возможности
   делать checkout по всем файлам пакета за определенную дату либо по
   определенному тагу. Не ясно, как это можно реализовать без CVS.
   Вопрос остается открытым.

4. К сожалению, в процессе пост-обработки операций с файлами из repository
   нельзя рассчитывать на возможность воспользоваться данными из
   соответствующих spec-файлов. Это связано с несовпадением версий rpm,
   используемых на серверах хранения и сборки. Например, rpm <= 3.0.6-ipl4mdk
   не сможет извлечь информацию из kernel-2.2.17.spec. Следовательно,
   необходимо предусмотреть какой-то другой способ хранения/извлечения
   метаинформации о пакетах, тем более, что наверняка понадобится
   использовать какую-то информацию, которую нельзя поместить в spec-файл.
   Как один из вариантов хранения такой информации можно использовать базу
   данных на сервере.
   Вопрос остается открытым.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@fandra.org
Software Engineer   PGP pubkey http://www.fandra.org/users/ldv/pgpkeys.html
IPLabs Linux Team   http://linux.iplabs.ru
Fandra Project      http://www.fandra.org
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who it's friends are.

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

      parent reply	other threads:[~2000-11-01 23:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-24 12:38 [devel] " Dmitry V. Levin
2000-10-24 14:33 ` Alexander Bokovoy
2000-10-24 19:08 ` Mikhail Zabaluev
2000-11-01 23:09 ` Dmitry V. Levin [this message]

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=20001102020933.A31994@LDV.fandra.org \
    --to=ldv@fandra.org \
    --cc=devel@linux.iplabs.ru \
    /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