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