On Wed, Sep 16, 2009 at 12:28:51PM +0400, Vladislav Zavjalov wrote: > > В общем мне это не нравится, я бо так не стал делать. Сейчас все > > транзакции прозрачны: результат сборки каждого пакета зависит от пакетов > > в репозитарии и дополнительно от пакетов с меньшими номерами, которые > > однако жо гарантированно попадают в репозиторий. Прозрачность как бы > > означает, что имея начальный репозитарий A0 и конечный репозитарий A1, > > мы имеем все данные, чтобы заново проиграть транзакцию на репозитории > > A0 и получить в результате идентичный репозитарий A1. А с бутстрапом > > такой прозрачности нет: имея на руках A0 и A1, мы не знаем, как > > на основе A0 воспроизвести A1 повтрно. > > Я правильно понимаю, что сейчас пакет из А1 может быть собран с некоторым > пакетом из А0 или из А1 - в зависимости от порядка пакетов в задании? > И только по А1 и А2 этого не поймешь. > > В чем тогда заключается эта "прозрачность" и чем ее ухудшает бутстрап? > Там тоже будет зависимость сборочной среды пакета от задания (правда, > уже не только от порядка пакетов в задании)... "Прозрачность" конечно плохое слово. Лучше сказать, что задание обладает абстрактным свойством CHLEN, если конечное состояние репозитария (A1) содержит полную информацию о том, каким образом оно было получено из начального состояния репозитария (A0) и исходников. Это значит что мы можем взять исходники из A1, откатиться на A0, собрать исходники и снова получить A1. А с бутстрапом есть промежуточные пакеты которые в репозитарий не попадают. Поэтому такие транзакции не обладают свойством CHLEN. > Если смущает то, что при бутстрапе пакет может быть собран с пакетом из > А0, из А1 и с какой-то третьей версией, то, может, подойдет такая схема? > > - идем по заданию, собираем пакет n в окружении А0 + пакеты 0..n-1 > - если n вышибает какой-то предыдущий пакет m, то возвращаемся к > пакету m+1 не обнуляя наше окружение и собираем дальше подряд. > > так пакет m не окажется в сборочном окружении ни у кого.