[devel] bootstrap транзакции

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Ноя 8 22:23:11 MSK 2007


On Thu, Nov 08, 2007 at 10:03:28PM +0300, Alexey Tourbin wrote:
> On Thu, Nov 08, 2007 at 08:42:25PM +0300, Dmitry V. Levin wrote:
> > Сборка транзакции (A) происходит следующим образом:
> > - создаётся репозиторий - снапшот текущего опубликованного Сизифа (Ra);
> >   использование ссылок делает эту операцию дешевой;
> > - на этом снапшоте выполняется сборка --with-stuff исходных пакетов
> >   транзакции; если хотя бы один не собрался, то транзакция отменяется
> >   (в первой реализации сборочной системы не вижу смысла оптимизировать
> >   эту часть);
> 
> Здесь есть тонкость: сборка --with-stuff второго и последующего пакетов
> транзакции идёт со СТАРЫМИ contents_index_bin и contents_index_all.
> То есть практика сборки --with-stuff потенциально может давать
> неправильныме зависимости -- сразу же после фиксации транзакции
> второый и последующие пакеты при тестовой пересборке могут получить
> отличающиеся зависимости.  Так что здесь есть несколько подходов:
> 0) забить; 0a) пока забить; 1) делать в хешере локальный
> contents_index_bin/all; 2) формировать временный сизиф после каждого
> пакета транзакции и вести сборку уже на нём.  Это всё равно не до конца
> решает вопрос, если зависимостями между пакетами в транзакции
> топологически не упорядочены (то есть напр. при сборке первого пакета в
> транзакции используется старая сборка одного из последующих пакетов).

То есть транзакции является таковой лишь внешне.  Внутри же никакой
"атомарности" нет, и как бы существует проблема "bootstrap'а"
транзакии.  Если транзакция не является "слишком паталогической"
(не содержит "атаки"), то bootstrap транзакции можно решить двойной
пересборкой.  1) Сначала всё собрать в том порядке в каком есть;
2) упорядочить собранные пакеты топологически; 3) переупорядочить
соответствующим образом src.rpm пакеты; 4) собрать src.rpm пакеты
в новом порядке ещё раз.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20071108/4fa4695e/attachment-0002.bin>


Подробная информация о списке рассылки Devel