[devel] sandman на cvs.altlinux.org
Ivan Zakharyaschev
=?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Ср Авг 13 21:05:35 MSD 2003
Hello!
On Tue, 5 Aug 2003, Alexander Bokovoy wrote:
> On Mon, Aug 04, 2003 at 12:50:35PM +0300, Alexander Bokovoy
> wrote:
> Итак, опус прикладывается:
> ===============================================================
> ==============
....
> Предлагаемое решение для ALT Linux Sisyphus.
>
> Sandman может быть использован для организации
> версионированного
> хранилища для ALT Linux Sisyphus следующим образом:
>
> 1) Любой пакет, приходящий в ALT Linux Sisyphus, после
> пересборки
> автоматически помещается в sandman:
>
> rpmcpio foo-1.2.3-alt1.src.rpm | sandcl addsources foo
>
> commitlog=$(rpmquery --lastchange -p
> foo-1.2.3-alt1.src.rpm)
>
>
> cvs commit -m "$commitlog" foo
>
> где foo в последней строке -- spec-файл пакета foo.
Возможное усовершенствование: вместо --lastchange использовать
--changes-since <S:V-R последнего релиза в этой ветке>.
Зачем:
Номера официально регистрируемых в Sandman релизов могут по
каким-то причинам идти не непосредственно друг за другом.
Например, некоторые промежуточные релизы могут быть сделаны
только для внутреннего тестирования разработчиком. Или другой
пример: в истории моих пакетов, которую я до сих пор храню сам
как умею, часть релизов утеряно, и если я её захочу перенести в
Sandman, то log-и будут выглядет более осмысленно, если они
действительно будут отражать все изменения между commit-ами.
Может, это будет полезно и для пакетов в ветках updates к
дистрибутивам: там в chnagelog-е может быть много записей между
выпущенными как updates релизами.
--changes-since требует большей строгости в формате chnagelog-а
(нужно чтобы у каждой записи были хотя бы Version-Release).
>
> Sandman принципиально требует того, чтобы в SCM имя
> spec-файла
> пакета совпадало с именем пакета -- это тот минимум,
> который
> требуется для обеспечения непротиворечивости хранилища.
>
> Согласитесь, что, например, иметь пакет openldap и
> spec-файл для
> него под именем openldap-2.1.21.spec несколько неосмысленно
> -- как
> должен будет называться spec-файл в случае увеличения
> версии
> пакета?
>
> Отбрасывание расширения .spec также необходимо для
> упрощения логики
> реализации хранилища.
>
> 2)
....
> 4) Каждый выпущенный дистрибутив помещается в хранилище с
> использованием возможностей sandman по ведению
> множественных
> репозитариев, при этом spec-файлы соответствующих пакетов
> помещаются в тот же модуль, но в ветку с именем
> дистрибутива и его
> версией, например, master_2_2.
>
> 5) Все обновления в безопасности для уже выпущенных
> дистрибутивов
> автоматически помещаются в sandman в соответствующий
> репозитарий-ветку. Таким образом, для выпущенных
> дистрибутивов
> имеется всегда актуальное состояние репозитария и
> сохраняется
> история изменений. В частности, это позволит несколько
> ослабить
> требование несобирания новых версий в updates, поскольку
> контроль
> как зависимостей, так и версий будет значительно проще.
>
> При появлении отдельного сборочного сервера можно будет
> дополнительно
> разрешить использование сборочных функций Sandman для всех
> поддерживаемых репозитариев.
--
С наилучшими пожеланиями,
Иван Захарьящев, Москва
::
JabberID: imz at altlinux.org
Подробная информация о списке рассылки Devel