Сборочная среда ABF: сборка пакета с учётом его обратных зависимостей
Одной из особенностей ABF является возможность пересборки пакета вместе с его обратными зависимостями - в случае успешной сборки самого пакета, запускается пересборка всех пакетов, зависящих от него. Такой подход позволяет гарантировать, что репозиторий может в любой момент быть пересобран сам на себе. Например, автоматическая пересборка позволяет отследить влияние изменений в библиотеках на зависящие от них пакеты. Без пересборки, программы, собранные на старой версии библиотек, могут не работать либо работать неправильно с новыми версиями. При построении контейнера вычисляется дерево обратных зависимостей. Например, при сборке пакета «А» вычисляется, кому он нужен для сборки, например пакетам «Б» и «С», далее вычисляется кому нужны эти пакеты для сборки и тд.
Дерево строится уровнями
- gcc
- tar,kernel
- mc,firefox,mesa
Сборочный сервер собирает пакеты по уровням в несколько потоков, т.е сначала собирает 1 уровень, если сборка прошла успешно, то приступает к сборке 2 уровня и тд.
Если во время построения дерева были “петли” (пакету “А” нужен для сборки пакет “Б” , а пакету “Б” нужен “А”) то сборка будет происходить в 2 этапа: сначала соберутся все пакеты на все уровнях, далее они пересобирутся 2й раз, но с подключением результатов предыдущей сборки: