[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