[devel] giter-factory: pkg_build_status

Alexey Tourbin at на altlinux.ru
Чт Авг 30 19:43:56 MSD 2007


On Thu, Aug 30, 2007 at 04:07:20PM +0400, Alexey Tourbin wrote:
> On Thu, Aug 30, 2007 at 03:06:41PM +0400, Alexey Tourbin wrote:
> > Хорошо.  Будем исходить из отказа от src.rpm и большой неопределенности
> > на стадии запроса собрать пакет из gear.  КТО-ТО попросил собрать
> > КАКОЙ-ТО gear-репозитарий.  Применять ACL на данном этапе глупо,
> > gear-репозитарий может называться как угодно, и мы НЕ ЗНАЕМ, что
> > же из него в конечном счёт может собраться.  Единственный способ
> > это выяснить -- собрать gear-репозитарий.
> 
> Кстати, я не понял, как вы (ldv и legion) собираетесь реализовать
> проверку наследования коммитов.  Проверка наследования коммитов
> подразумевает, что есть публичный репозитарий с точно таким же
> именем, в котором хедом является предыдущая (текущяя) сборка.
> Но имя репозитария это по сути имя каталога, оно ничем не
> ограничено, и нет никаких ограничений на соответствие между
> именем репозитария и rpm-пакетами, которые из него собираются.
> 
> Допустим, я опубликовал perl2.git в котором нет наследования
> от perl.git.  Публичного репозитария perl2.git ещё нету, поэтому
> проверка наследования "для нового пакета" отключается, а собранные
> пакеты perl-* просто пройдут в сизиф?

Вот решение проблемы: требовать, чтобы имя gear-репозитария в точности
совпадало с именем src.rpm пакета, который получился при сборке.

--- pkg_build_status.txt-	2007-08-30 15:30:38 +0000
+++ pkg_build_status.txt	2007-08-30 15:34:17 +0000
@@ -24,6 +24,10 @@
 check_build_status :: build_arch_status+ -> pkg_build_status | reject
 	all primary arches must build (hasher_exit_status = 0 for primary_arches)
 	all srpm_NSVR must be the same (map this.srpm_NSVR build_arch_status+ |sort -u |wc -l => 1)
+	require that $(basename gear-request.gear-repo .git) exactly matches srpm_NSVR.name
+	if has public gear-request.gear-repo; then
+		check commit ancestry $(public gear-repo) gear-request.commit-id
+	fi
 	if at least one RPMS.hasher/*.rpm is noarch; then
 		# noarch packages must build essentially the same on all arches
 		# otherwise we DO NOT KNOW how to move them to sisyphus

В этом случае мы уже убедились, что пакет собрался на всех основных
архитектурах, и что на всех архитектурах srpm_NSVR совпадает.  Значит,
теперь мы точно знаем "базовое имя пакета" (имя src.rpm пакета), даже
с некоторой защитой от фальсификации имени.

Тут получается вот какая особенность: проверить наследование коммитов
можно ТОЛЬКО ПОСЛЕ ТОГО, КАК ПАКЕТ УЖЕ СОБРАЛСЯ (причем, на всех
основных архитектурах).  Это противоречит нашему интуитивному
представлению о том, что наследование коммитов нужно проверять
до того, как собирать пакет.

Ну противоречит и ладно.  Не вижу в этом большой проблемы.
Квантовая механика тоже противоречит инуитивным представлениям,
причем неким похожим образом -- "нельзя узнать раньше времени,
пока оно таки не случится".
http://en.wikipedia.org/wiki/Wavefunction_collapse
http://en.wikipedia.org/wiki/Double-slit_experiment
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20070830/cf1de9c7/attachment.bin 


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