[devel] unmets policy
Vladislav Zavjalov
slazav at altlinux.org
Wed Sep 16 08:28:51 UTC 2009
> Я не знаю как поддержать такие транзакции. Точнее знаю.
> Пусть пакеты в задании пронумерованы 1..n. Предикат
> пересечения x(i,j), i=1..n, j=1..n, i<j, означает что
> в пределах задания пакет с большим номером j пересекается
> с пакетом с меньшим номером i (по имени исходного пакета и/или
> по имени одного из бинарных пакетов). Тогда по смыслу пакет i
> нужно выбросить из плана задания, потому что он был нужен
> для бутстрапа пакета j. Пакет j в свою очередь может быть
> вытеснен пакетом с ещё большим номером.
>
> Пересечение проверяется для всех пар (i,j). Доказать что
> окончательный план транзакции не зависит от порядка, в котором
> проверяются пары (i,j).
>
> В общем мне это не нравится, я бо так не стал делать. Сейчас все
> транзакции прозрачны: результат сборки каждого пакета зависит от пакетов
> в репозитарии и дополнительно от пакетов с меньшими номерами, которые
> однако жо гарантированно попадают в репозиторий. Прозрачность как бы
> означает, что имея начальный репозитарий A0 и конечный репозитарий A1,
> мы имеем все данные, чтобы заново проиграть транзакцию на репозитории
> A0 и получить в результате идентичный репозитарий A1. А с бутстрапом
> такой прозрачности нет: имея на руках A0 и A1, мы не знаем, как
> на основе A0 воспроизвести A1 повтрно.
Я правильно понимаю, что сейчас пакет из А1 может быть собран с некоторым
пакетом из А0 или из А1 - в зависимости от порядка пакетов в задании?
И только по А1 и А2 этого не поймешь.
В чем тогда заключается эта "прозрачность" и чем ее ухудшает бутстрап?
Там тоже будет зависимость сборочной среды пакета от задания (правда,
уже не только от порядка пакетов в задании)...
Если смущает то, что при бутстрапе пакет может быть собран с пакетом из
А0, из А1 и с какой-то третьей версией, то, может, подойдет такая схема?
- идем по заданию, собираем пакет n в окружении А0 + пакеты 0..n-1
- если n вышибает какой-то предыдущий пакет m, то возвращаемся к
пакету m+1 не обнуляя наше окружение и собираем дальше подряд.
так пакет m не окажется в сборочном окружении ни у кого.
Слава
More information about the Devel
mailing list