[Git][reproducible-builds/reproducible-presentations][master] minidebconf hamburg 2025: wip, but almost there

Holger Levsen (@holger) gitlab at salsa.debian.org
Sat May 3 13:57:28 UTC 2025



Holger Levsen pushed to branch master at Reproducible Builds / reproducible-presentations


Commits:
4071ab77 by Holger Levsen at 2025-05-03T15:57:16+02:00
minidebconf hamburg 2025: wip, but almost there

Signed-off-by: Holger Levsen <holger at layer-acht.org>

- - - - -


12 changed files:

- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/all_rdn.png
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/amd64_rdn.png
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/arm64_rdn.png
- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armel_rdn.png
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armhf_rdn.png
- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/forky-toy-story-4.rhorizontal.w700.jpg
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/i386_rdn.png
- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/minidebconfhh2025-logo.png
- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/ppc64el_rdn.png
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/riscv64_rdn.png
- + 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/trixie.png
- 2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/index.html


Changes:

=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/all_rdn.png
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/all_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/amd64_rdn.png
=====================================
Binary files a/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/amd64_rdn.png and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/amd64_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/arm64_rdn.png
=====================================
Binary files a/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/arm64_rdn.png and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/arm64_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armel_rdn.png
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armel_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armhf_rdn.png
=====================================
Binary files a/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armhf_rdn.png and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/armhf_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/forky-toy-story-4.rhorizontal.w700.jpg
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/forky-toy-story-4.rhorizontal.w700.jpg differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/i386_rdn.png
=====================================
Binary files a/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/i386_rdn.png and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/i386_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/minidebconfhh2025-logo.png
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/minidebconfhh2025-logo.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/ppc64el_rdn.png
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/ppc64el_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/riscv64_rdn.png
=====================================
Binary files a/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/riscv64_rdn.png and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/riscv64_rdn.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/trixie.png
=====================================
Binary files /dev/null and b/2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/images/trixie.png differ


=====================================
2025-05-03-reproduce.debian.net-rebuilding-what-is-distributed-from-ftp.debian.org/index.html
=====================================
@@ -184,6 +184,7 @@
         <ul>
           <li class="fragment">explain reproduce.debian.net
           <li class="fragment">current status and outlook
+          <li class="fragment">(nothing outside Debian though there have been huge progresses too)
       </ul>
       </section>
 
@@ -194,6 +195,7 @@
         <ol>
           <li>Holger Levsen / h01ger. Debian user since 1995. Working on Reproducible Builds since 2014.</li>
 	  <li class="fragment">Aiming to make all ❤️  Free Software reproducible.</li>
+	  <li class="fragment">(...)</li>
      </ol>
       </section>
 
@@ -384,12 +386,12 @@
 	  </section>
 
      <section data-transition="none">
-        <h2>Yesterday, 11 years ago...</h2>
+        <h2>FOSDEM, 11 years ago...</h2>
         <img src="images/Screenshot_FOSDEM_2014.webm.png" width="80%">
       </section>
 
      <section data-transition="none">
-        <h1>Yesterday, 10 years ago</h1>
+        <h1>FOSDEM, 10 years ago</h1>
         <img src="images/Screenshot_FOSDEM_2015.mp4.png" width="100%">
       </section>
  
@@ -499,9 +501,6 @@ Alpine Linux, Apache Maven, Arch Linux, Baserock, Bitcoin Core, BitShares, Build
         <img src="images/fosdem2014-6.png" width="100%">
       </section>
 
-      <section data-background-color="white">
-        <img src="images/fosdem2014-1.png" width="100%">
-      </section>
 
 
       <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
@@ -621,48 +620,6 @@ Warpforge.
      <section data-transition="none">
         <img src="images/groupphoto_rws4_paris_2018_small.png" width="100%">
       </section>
- <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h2>about <em>rebuilderd</em></h2>
-	<ul>
-        <li class="fragment">support for rebuilding Arch, Debian and Tails</li>
-        <li class="fragment">rebuilderd, rebuilderd-worker, rebuilderctl</li>
-        <li class="fragment">development started in 2019 during Marrakech summit</li>
-        <li class="fragment">several instances for Arch exist (about 5)</li>
-        <li class="fragment">written in Rust by kpcyrd</li>
-        <li class="fragment">available at https://github.com/kpcyrd/rebuilderd</li>
-        <li class="fragment">installation with pacman -S, apk add, sudo make install, soon with sudo apt install (the worker already is in trixie)</li>
-	</ul>
-      </section>
-
- <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h2>about <em>rebuilderd</em></h2>
-	<ul>
-        <pre>
-{
-  <span style="color:orange">"name"</span>: <span style="color:red">"rust-spytrap-adb"</span>,
-  <span style="color:orange">"version"</span>: <span style="color:red">"0.3.3-2"</span>,
-  <span style="color:orange">"distro"</span>: <span style="color:red">"debian"</span>,
-  <span style="color:orange">"suite"</span>: <span style="color:red">"main"</span>,
-  <span style="color:orange">"architecture"</span>: <span style="color:red">"amd64"</span>,
-  <span style="color:orange">"input_url"</span>: <span style="color:red">"https://buildinfos.debian.net/buildinfo-pool/r/
-        rust-spytrap-adb/rust-spytrap-adb_0.3.3-2_amd64.buildinfo"</span>,
-  <span style="color:orange">"artifacts"</span>: [
-    {
-      <span style="color:orange">"name"</span>: <span style="color:red">"librust-spytrap-adb-dev"</span>,
-      <span style="color:orange">"version"</span>: <span style="color:red">"0.3.3-2"</span>,
-      <span style="color:orange">"url"</span>: <span style="color:red">"http://deb.debian.org/debian/pool/main/r/
-            rust-spytrap-adb/librust-spytrap-adb-dev_0.3.3-2_amd64.deb"</span>
-    },
-    {
-      <span style="color:orange">"name"</span>: <span style="color:red">"spytrap-adb"</span>,
-      <span style="color:orange">"version"</span>: <span style="color:red">"0.3.3-2"</span>,
-      <span style="color:orange">"url"</span>: <span style="color:red">"http://deb.debian.org/debian/pool/main/r/
-            rust-spytrap-adb/spytrap-adb_0.3.3-2_amd64.deb"</span>
-    }
-  ]
-},
-</pre>
-      </section>
 
       <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h3>Short summary of Reproducible Debian</h3>
@@ -677,6 +634,15 @@ Warpforge.
 	</ul> 
       </section>
 
+      <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+       	<h1>We are sorry to interrupt this talk for an important announcement<h1>
+      </section>
+
+      <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+       	<h1>https://osuosl.org/blog/osl-future/<h1>
+       	<p>(show tab)</p>
+      </section>
+
       <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
 	<h2>CI builders from 2015 until today and beyond</h2>
 	</section>
@@ -700,54 +666,84 @@ Warpforge.
       </section>
 
 
-      <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h2>Debian <em>testing</em> migration, soon we'll be getting real!</h2>
-	<ul style="font-size: 94%">
-	<li>2023: CI reproducible-builds results included in excuses output for Debian testing migration, but there is no penalty nor bonus yet.</li>
-    	<li class="fragment">July 2024: <code>snapshot.debian.org</code> got fixed and we can now do <b>rebuilds where the build is compared against what Debian distributes on ftp.debian.org</b> instead of CI builds.</li>
-    	<li class="fragment">September 2024: <code>debootsnap</code> and <code>debrebuild</code> (both from <code>devscripts</code>) fixed for good.</li>
-    	<li class="fragment">October 2024: work on https://reproduce.debian.net began.</li>
+
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h2><code>https://reproduce.debian.net</code></h2>
+	<ul>
+    	<li class="fragment">a <code>rebuilderd</code> instance, running since Q3 2024</li>
+    	<li class="fragment">rebuilding and comparing against what Debian distributes on <code>ftp.debian.org</code>.</li>
+    	<!-- li class="fragment">actually it's eight instances atm, one for each arch...</li>
+    	<li class="fragment">(thankfully <code>kpcyrd</code> fixed issue#163 yesterday, so we can have several suites on one instance.... more on this later) -->
 	</ul>
       </section>
 
-  <!-- section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3>How to use debrebuild from src:devscripts in trixie</h3>                                                 
-	<ul><code>
-		<li class="fragment">wget https://buildinfos.debian.net/ftp-master.debian.org/buildinfo/2024/01/16/crun_1.13-1_amd64.buildinfo</li> 
-		<li class="fragment">debrebuild --builder=sbuild+unshare libaacs_0.11.1-3_amd64-source.buildinfo</li></code>                                
-		<li class="fragment">voila!</li>
+ <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h2>about <em>rebuilderd</em></h2>
+	<ul>
+        <li class="fragment">support for rebuilding Arch, Fedora, Debian and Tails</li>
+        <li class="fragment">rebuilderd, rebuilderd-worker, rebuilderctl</li>
+        <li class="fragment">development started in 2019 during Marrakech summit</li>
+        <li class="fragment">several instances for Arch exist (about 5)</li>
+        <li class="fragment">one instance for Fedora exists</li>
+        <li class="fragment">written in Rust by kpcyrd</li>
+        <li class="fragment">available at https://github.com/kpcyrd/rebuilderd</li>
+        <li class="fragment">installation with apt, pacman -S, apk add, sudo make install, soon with dnf too</li>
 	</ul>
-      </section -->                                                                                                                             
-
+      </section>
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h2><code>https://reproduce.debian.net</code></h2>
 	<ul>
-    	<li class="fragment">a <code>rebuilderd</code> instance, running since Q3 2024</li>
-    	<li class="fragment">rebuilding and comparing against what Debian distributes on <code>ftp.debian.org</code>.</li>
+	<li>Attempts to bit-for-bit identically rebuild each Debian binary package found in the distribution archive, using the .buildinfo file produced when the buildd originally built the package.</li>
+	<li class="fragment">For each distributed package, rebuilderd calls debrebuild that calls debootsnap, mmdebstrap and finally sbuild to build that package within a user namespace.</li>
 	</ul>
       </section>
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3><code>https://amd64.reproduce.debian.net</code></h3>
-        <img src="images/amd64_rdn.png">
+        <h2><code>reproduce.debian.net vs tests.r-b.o/debian</code></h2>
+	<ul>
+    	<li class="fragment">The goal of reproduce.debian.net is to replicate the same build process that is used by Debian during package publication -- not to seek out additional sources of variance.</li>
+    	<li class="fragment">Variance testing, used to find factors that can prevent packages from rebuilding reproducibly, will continue at https://tests.reproducible-builds.org/debian/reproducible.html.</li>
+	</ul>
       </section>
 
+
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3><code>https://i386.reproduce.debian.net</code></h3>
-        <img src="images/i386_rdn.png">
+        <h3><code>https://all.reproduce.debian.net</code></h3>
+        <img src="images/all_rdn.png">
       </section>
 
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3><code>https://amd64.reproduce.debian.net</code></h3>
+        <img src="images/amd64_rdn.png">
+      </section>
+
+
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h3><code>https://arm64.reproduce.debian.net</code></h3>
         <img src="images/arm64_rdn.png">
       </section>
 
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3><code>https://armel.reproduce.debian.net</code></h3>
+        <img src="images/armel_rdn.png">
+      </section>
+
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h3><code>https://armhf.reproduce.debian.net</code></h3>
         <img src="images/armhf_rdn.png">
       </section>
 
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3><code>https://i386.reproduce.debian.net</code></h3>
+        <img src="images/i386_rdn.png">
+      </section>
+
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3><code>https://ppc64el.reproduce.debian.net</code></h3>
+        <img src="images/ppc64el_rdn.png">
+      </section>
+
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h4><code>https://riscv64.reproduce.debian.net</code></h4>
         <img src="images/riscv64_rdn.png">
@@ -755,10 +751,16 @@ Warpforge.
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h2>missing</h2>
-        <h4><code>https://armel.reproduce.debian.net</code></h4>
-        <h4><code>https://ppc64el.reproduce.debian.net</code></h4>
-        <h4><code>https://mips64el.reproduce.debian.net</code></h4>
         <h4><code>https://s390x.reproduce.debian.net</code></h4>
+        <h4><code>https://mips64el.reproduce.debian.net</code></h4>
+        <h4 class="fragment"><code>unstable</code></h4>
+        <h4 class="fragment"><code>experimental</code></h4>
+        <h4 class="fragment"><code>-security</code></h4>
+      </section>
+
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h2>reproduce.debian.net<br/> is <code>trixie</code> only atm</h2>
+        <img src="images/trixie.png" class="fragment">
       </section>
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
@@ -773,22 +775,34 @@ Warpforge.
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h2><code>https://reproduce.debian.net</code></h2>
 	<h1>more help much welcome!</h1>
+	<p class="fragment">There's a workshop explaining how to setup rebuilderd instances tomorrow.<p>
+	<p class="fragment">Because do you really want to put all your trust in me???<p>
+
 	</section>
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h2>The diff between theory and practice?</code></h2>
-	<h1>10% <div class="fragment"><small>at the moment!</div></small></h1>
+	<h1 class="fragment">We soon will be more reproducible in practice than in theory ;p</h1>
 	</section>
 
  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3>The diff between theory and practice?</code></h3>
+        <h3>The diff between theory and practice today?</code></h3>
 	<h2>96.6% in CI</h2>
 	<h3>vs</h3>
-	<h2>86.0% on reproduce.d.n</h2>
-	<p class="fragment">but we've only been doing this for 3 months...</p>
+	<h2>96.54% on amd64.reproduce.d.n</h2>
+	<p class="fragment">but we've only been doing this for 8 months...</p>
 	</section>
 
-      <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+ <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3>switch tab</h2>
+	<ul>
+        <li>Show numbers on r.d.n....</li>
+        <li class="fragment">Show reasons on r.d.n....</li>
+        <li class="fragment">continue presentation</li>
+	</ul>
+    	</section>
+
+  <section data-background="images/debian_logo.png" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <h2>How to reach 100% in practice</h2>
      	<ul>
         <li class="fragment">100% reproducible is a political decision and nothing technical.</h3>
@@ -856,24 +870,32 @@ Warpforge.
 
 
       <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3>Summary: theory vs practice</h3>
+        <h3>and then came the MiniDebConf Hamburg...</h3>
 	<ul>
-	<li>In theory, we are done. In practice, we have shown that Reproducible Builds can be done in theory.</li>
-	<li class="fragment">Now we need to close the gap between theory and practice.</li>
-	<li class="fragment">And those missing 4-5% in CI are also crucial however, or at least 1% of them. For Debian, 1% means 370 source packages...</li>
+	<li>...and Paul (elbrus) and me talked about <code>forky</code>.
+        <img src="images/forky-toy-story-4.rhorizontal.w700.jpg" class="fragment">
 	</ul>
 	</section>
 
+      <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
+        <h3>for forky...</h3>
+	<ul>
+	<li>britney might be configured to not let unreproducible packages migrate to testing.
+	<li class="fragment">full stop. applause!
+	<li class="fragment">with allowlists for <b>some</b> unreproducible packages...
+	</ul>
+	</section>
 
       <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
-        <h3>Summary, looking forward</h3>
+        <h3>What you can do on trixie today:</h3>
 	<ul>
-   	<li>Many projects support or aim for Reproducible Builds today. This is a <b>huge</b> success. <span class="fragment">We wanted to change the (software) world, and we did.</span></li>
-	<li class="fragment">Next: finish those last 1-5% upstream. (And there are some dragons too, eg PGO.)</li>
-	<li class="fragment">Next: create rebuilderd infrastructure(s), processes, tools.</li>
-	<li class="fragment">Also crucial: project-level consensus and commitment to Reproducible Builds in practice.</li>
+	<li><code>sudo apt install debian-repro-status</code>
+	<li class="fragment"><code>debian-repro-status > /dev/null</code>
+	<li class="fragment"><code> INFO  debian-repro-status > 60/2268 packages are not reproducible.</br>
+ INFO  debian-repro-status > Your system is 97.35% reproducible.</code></li>
+	<li class="fragment">That is better in practice than in theory. :-D
 	</ul>
-     </section>
+	</section>
 
       <section data-background="images/rb-logo.svg" data-background-size="10%" data-background-position="93% 9%" data-transition="none">
         <img src="images/ccc2014-13.png">



View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-presentations/-/commit/4071ab77b012760b8616a8d9b06571a0b86529dd

-- 
View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-presentations/-/commit/4071ab77b012760b8616a8d9b06571a0b86529dd
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20250503/9a0ff167/attachment.htm>


More information about the rb-commits mailing list