<div dir="ltr">This is really awesome!   One thing I am curious about is what sort of issues testing on 5 machines helped you to find?   Did most issues show up when you tested on 2 machines?   What sort of things were missed?<div><br></div><div>Thanks,</div><div>Justin</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Feb 18, 2025 at 7:22 AM Bernhard M. Wiedemann via rb-general <<a href="mailto:rb-general@lists.reproducible-builds.org">rb-general@lists.reproducible-builds.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello fellow R-B-ings,<br>
<br>
I have some good news to share about my small openSUSE fork project<br>
<a href="https://news.opensuse.org/2025/02/18/rbos-project-hits-milestone/" rel="noreferrer" target="_blank">https://news.opensuse.org/2025/02/18/rbos-project-hits-milestone/</a><br>
that was sponsored by a grant from NLnet.<br>
<br>
Of the packages in ring1 [1] ,<br>
emacs and my VM image ('altimagebuild') probably needed the most effort.<br>
<br>
For some difficult cases, I just used workarounds, e.g. gcc/bash/python3 <br>
build without PGO and a few others build with -j1 to avoid unsolved <br>
race-conditions.<br>
<br>
There is still a chance that some rare issue slipped through all my <br>
tests, but at least I was able to reproduce bit-identical binaries on 5 <br>
different machines.<br>
<br>
<br>
In the process, I noticed that there are two different variants of <br>
reproducible builds that we commonly mix together.<br>
<br>
There is the first variant where you have an official build and with the <br>
help of some buildinfo data, people are able to independently produce <br>
bit-identical binaries.<br>
<br>
And then there is the second variant where all required information is <br>
part of the source, so you can do rebuilds without any official build <br>
happening somewhere.<br>
<br>
<br>
My RBOS is of the second kind. All packages in RBOS were built with the <br>
packages in RBOS, plus an extra bootstrap-snapshot of <br>
openSUSE-Tumbleweed for missing pieces.<br>
In OBS, we normally have auto-incrementing counters for checkin+rebuild <br>
but in this project, they are fixed at 1.1 so that I can produce <br>
identical binaries in OBS and outside (only the rpm sig needs to be <br>
removed with rpm --delsign (some exceptions apply because of an unmerged <br>
patch [2] and pesigning-magic - but here, OBS is not the primary <br>
artifact - the external builds are))<br>
<br>
<br>
Do we have some existing terminology to distinguish these two kinds of r-b?<br>
<br>
Ciao<br>
Bernhard M.<br>
<br>
[1] <br>
<a href="https://build.opensuse.org/project/show/home:bmwiedemann:reproducible:distribution:ring1" rel="noreferrer" target="_blank">https://build.opensuse.org/project/show/home:bmwiedemann:reproducible:distribution:ring1</a><br>
[2] <a href="https://github.com/openSUSE/obs-build/pull/1037" rel="noreferrer" target="_blank">https://github.com/openSUSE/obs-build/pull/1037</a><br>
</blockquote></div>