[devel] Когда пакеты появляются в Сизифе?

Epiphanov Sergei =?iso-8859-1?q?serpiph_=CE=C1_nikiet=2Eru?=
Пт Июл 14 11:09:42 MSD 2006


В сообщении от Thursday 13 July 2006 19:50 Igor Zubkov написал(a):
> А для поддержки транзакций, можно сделать в /i/S/ какой-нибуть каталог в
> который будут ложить маинтейнеры пакеты на сборку. Мне это представляется
> как "transaction", в котором будут находится каталоги для каждого
> маинтейнера (возможно там ещё будут ещё подпапки, вдруг маинтейнеру
> захочется сделать несколько транзакций). Дальше, маинтейнер ложит пакеты в
> эту папку на сборку. После уже полной закачки всех пакетов, говорит touch
> .commit и заливает этот файл в эту же папку, подтвержая то, что транзакцию
> можно начать.

А если такой вариант: создать файл, например, с суффиксом .trans, куда по 
одной на строке запихнуть названия всех пакетов, которые бы надо было 
обработать в одной транзакции. Робот не начинает обработку перечисленных в 
этом файле пакетов до тех пор, пока или в incoming, или в Сизифе не появятся 
все указанные пакеты. Конечно, если пакеты уже в Сизифе, то не надо ничего 
пересобирать. Причём если из Сизифа можно потребовать наличие любого пакета, 
то в incoming должны попасть в транзакцию только свои пакеты. Если в 
incoming лежит требуемый пакет, но чужой, то задержать транзакцию до 
попадания чужого пакета в Сизиф. Что это даёт:

Есть 2 мантейнера: один работает с библиотекой libfoo, другой с программами 
bar1 на основе библиотеки libfoo и bar2 на основе bar1. Оба заливают, но 
второй в своей транзакции указывает, что ему нужен для сборки определённый 
пакет, дабы не было сборки программы с предыдущей версией. Тогда второй 
создаёт сначала в incoming файл пусть info1.trans, куда вписывает:

bar1-1.2.3.src.rpm
bar2-1.1.0.src.rpm
libfoo-2.0.2.src.rpm (ну или libfoo-2.0.2.i586.rpm)

Так как библиотека не его, то система должна начать сборку только тогда, 
когда libfoo соберётся и окажется в Сизифе. Можно придумать не полные имена, 
а частичные, например, вида

libfoo-2.0.0-*.rpm

После успешной транзакции файл транзакции удалить.

Выглядит несколько громоздко, но позволяет при необходимости определить 
очерёдность транзакций и не требует кучи каталогов. Просто у нас почему-то 
иногда проходит сборка со старыми библиотеками.

-- 
С уважением, Епифанов Сергей




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