[devel] giter-factory: pkg_build_status
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Авг 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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070830/cf1de9c7/attachment-0001.bin>
Подробная информация о списке рассылки Devel