[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