From: "Vladimir D. Seleznev" <vseleznv@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: [devel] Воспроизводимая сборка пакетов (Was: detect macro mismatches between old built packages and new ones? Re: hsh --query-repackage Re: ACL request for perl update to 5.30)
Date: Fri, 6 Dec 2019 22:27:02 +0300
Message-ID: <20191206192702.GA545296@portlab> (raw)
In-Reply-To: <alpine.LFD.2.20.1912052258540.28829@imap.altlinux.org>
On Thu, Dec 05, 2019 at 11:10:02PM +0300, Ivan Zakharyaschev wrote:
> On Thu, 5 Dec 2019, Dmitry V. Levin wrote:
>
> > On Thu, Dec 05, 2019 at 05:57:17PM +0300, Sergey Bolshakov wrote:
> > > >>>>> "Ivan" == Ivan Zakharyaschev <imz-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org> writes:
> > > [skipped]
> > >
> > > >> Есть и другое мнение, которое сводится примерно к тому, что
> > > >> опубликованное на ftp.a.o было бы хорошо содержать в виде, пригодном
> > > >> для простого hsh path/to/src.rpm
> > >
> > > > Мнение, конечно, разумное. Но можно предлагать использовать просто:
> > >
> > > > hsh --query-repackage path/to/src.rpm
> > > > Можно считать это способом по умолчанию. (Более вычислительно нагруженный,
> > > > зато так, как теперь в girar по умолчанию.)
> > >
> > > Дело не в ключах вызова hsh, по большому счёту.
> > > Сейчас в опубликованных src.rpm написано: собрано быть не может, simple as.
> > > Впору спросить себя -- зачем мы их вообще выкладываем.
> >
> > Хороший вопрос. Вероятно, для тестовой пересборки, она их использует.
> >
> > Кстати, в сборочнице используется hsh-rebuild --query-repackage.
> > Иначе бы тот пакет, о котором идёт речь, даже не собрался бы.
>
> Как тут в этом обсуждении говорили, как я понял, при пересборке этого
> пакета в нынешней среде Sisyphus получается какой-то не очень разумный
> результат. (Поправьте, если я неправильно понял.) Т.е. претензия даже не в
> том, что результат другой, но и что плохой. Стал плохим после того, как
> значение макроса изменилось.
>
> И вообще, это, конечно, не очень хорошая ситуация (даже если результат
> другой, а не плохой). Потому что получается что на текущем состоянии
> репозитория мы не можем (не важно с какой опцией hsh) воспроизвести сборку
> некоторых пакетов, которые там лежат. Т.е. например, в дистрибутив попали
> они в старом виде, а если нас просят для сертификации воспроизвести сборку
> и доказать, что получается такой результат, это сделать не получается.
О воспроизводимости сборки имеет смысл говорить только в том же
сборочном окружении, в котором собирался пакет. Т.к. мы журналируем
метаинформацию о сборочных заданиях в индексах исходных пакетов [1], из
которых мы можем вытащить информацию о том, в какой сборочном окружении
мы собирали пакет, и мы сохраняем состояния репозиториев для всех
собранных тасков [2], то мы можем легко воспроизвести сборочное
окружение и воспроизвести сборку. Другое дело, что сейчас не для всех
пакетов сборочный результат получается идентичным. У меня пока нет
статистики, но я думаю, что не вредно будет собирать такую статистику.
Т.е., организовать регулярную ассинхронную проверку, что результат
пересборки пакета в том же сборочном окружении, при котором он попал в
репозиторий, совпадает с тем, что лежит в репозитории.
Что касается сертифицикации, то, возможно, самым простым решением будет
сразу после бранчевания делать пересборку всех тех пакетов, что пойдут
на сертификацию, и после этого доказать (статистически)
воспроизводимость уже этой сборки.
Про воспроизводимость сборки можно почитать тут [3].
> Можно было бы добавить механизм автоматического отслеживания значений
> макросов, использованных при сборке пакета, так чтобы в случае изменения
> значения возникало нечто аналогичное unmets сейчас. Т.е. пакет, меняющий
> значение макроса, использованного для сборки других пакетов, нельзя
> закоммитить, не пересобрав все пакеты, на которые он может повлиять.
>
> (Я такие механизмы уже некоторое время назад обдумывал.)
>
> С одной стороны, больше труда при сборке пакетов с макросами, с другой
> стороны, мы приобретаем лучшую готовность к пересборке пакетов на текущем
> состоянии репозитория (по тем или иным причнам: пресборка ради
> сертификации; пересборка с патчем -- плохо, если неожиданно сборка с
> патчем начнёт приводить совсем не к тому виду пакета, к которому
> привыкли).
Ссылки:
[1] http://ftp.altlinux.org/pub/distributions/archive/sisyphus/index/src/
[2] http://ftp.altlinux.org/pub/distributions/archive/sisyphus/task/archive/
[3] https://reproducible-builds.org/
--
С уважением,
Владимир Селезнев
next prev parent reply other threads:[~2019-12-06 19:27 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-04 18:15 [devel] ACL request for perl update to 5.30 Igor Vlasenko
2019-12-04 21:45 ` Dmitry V. Levin
2019-12-05 6:39 ` Sergey Bolshakov
2019-12-05 11:23 ` Igor Vlasenko
2019-12-05 12:12 ` Sergey Bolshakov
2019-12-05 13:01 ` Igor Vlasenko
2019-12-05 13:39 ` Sergey Bolshakov
2019-12-05 13:49 ` Igor Vlasenko
2019-12-05 13:58 ` Sergey Bolshakov
2019-12-05 14:18 ` Igor Vlasenko
2019-12-05 14:33 ` Sergey Bolshakov
2019-12-05 14:48 ` [devel] hsh --query-repackage " Ivan Zakharyaschev
2019-12-05 14:57 ` Sergey Bolshakov
2019-12-05 15:08 ` Michael Shigorin
2019-12-05 15:20 ` Sergey Bolshakov
2019-12-05 15:34 ` Michael Shigorin
2019-12-05 15:44 ` Anton Farygin
2019-12-05 15:58 ` Igor Vlasenko
2019-12-05 18:45 ` Sergey Bolshakov
2019-12-05 15:39 ` Ivan Zakharyaschev
2019-12-05 18:46 ` Dmitry V. Levin
2019-12-05 20:10 ` [devel] detect macro mismatches between old built packages and new ones? " Ivan Zakharyaschev
2019-12-05 20:17 ` Anton Farygin
2019-12-05 20:23 ` Ivan Zakharyaschev
2019-12-05 20:26 ` Anton Farygin
2019-12-05 20:39 ` Ivan Zakharyaschev
2019-12-06 0:58 ` Dmitry V. Levin
2019-12-06 19:27 ` Vladimir D. Seleznev [this message]
2019-12-06 20:45 ` [devel] Воспроизводимая сборка пакетов (Was: detect macro mismatches between old built packages and new ones? Re: hsh --query-repackage Re: ACL request for perl update to 5.30) Ivan Zakharyaschev
2019-12-07 4:11 ` [devel] (Полу)Автоматическая Пересборка пакетов Anton Farygin
2019-12-05 14:10 ` [devel] ACL request for perl update to 5.30 Sergey V Turchin
2019-12-05 14:12 ` Sergey Bolshakov
2019-12-05 14:27 ` Sergey V Turchin
2019-12-05 14:23 ` Igor Vlasenko
2019-12-05 14:51 ` Sergey Bolshakov
2019-12-06 5:27 ` Sergey Afonin
2019-12-06 10:05 ` Dmitry V. Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191206192702.GA545296@portlab \
--to=vseleznv@altlinux.org \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git