ALT Linux Team development discussions
 help / color / mirror / Atom feed
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/

-- 
   С уважением,
   Владимир Селезнев


  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