[devel] Оптимизируем hasher для работы с фиксированным репозиторием. II.

Igor Vlasenko vlasenko на imath.kiev.ua
Вт Сен 8 14:30:30 MSK 2020


On Tue, Sep 08, 2020 at 01:03:10PM +0300, Andrey Savchenko wrote:
> Однако, хочу отметить, что репозиторий внутри таска тоже может
> меняться: например, в таске есть пакеты A и B, A собирается перед B
> и A находится в сборочных зависимостях B. Тогда после сборки A
> репозиторий внутри таска изменится и B будет собираться уже в другом
> окружении. Поэтому просто так на сборочнице включать эту опцию
> нельзя.

Это не является изменением внешнего репозитория. Это просто --with-stuff
сборка hasher'ом. Перевыпуск нового сизифа сборчница делает после всего 
таска, а не после пакета А.

Можно привести такой пример.
Я скачал зеркало Сизифа и собрал в hasher --with-stuff пакеты A и B.
A собирается перед B и A находится в сборочных зависимостях B. 
Тогда после сборки A репозиторий RPMS.hasher изменится и B
будет собираться уже в другом окружении. 

_НО_! мое зеркало Сизифа ведь никак не изменится?
hasher/aptbox/var/lib/apt/lists/ не изменится.
hasher/cache/chroot/chroot.cpio не изменится (если мы не собирали
ограниченный список пакетов из basesystem).

Поэтому и для опции --with-stuff оптимизация --same-repository
имеет смысл. Раз по сути и --with-stuff в hasher/cache/ 
почти ничего не поменяется, то опять достаточно только 2 операции:
1) распаковать chroot.cpio, как и с --without-stuff,
и 
2) переиндексировать hasher/repo/*/RPMS.hasher: обновить
hasher/cache/contents/parts/_tmp_.private_*_hasher_repo_x86_64_RPMS.hasher_
hasher/cache/contents/contents_index_bin

Поэтому оптимизация --same-repository применима и с --with-stuff,
и в частности в сборчнице, если в таске нет пакетов из chroot.cpio.


-- 

I V


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