[devel] Re: Q: package repository
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_fandra=2Eorg?=
Чт Ноя 2 02:09:33 MSK 2000
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.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20001102/b6a84a08/attachment-0001.bin>
Подробная информация о списке рассылки Devel