Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package Rivet for openSUSE:Factory checked 
in at 2026-08-30 19:08:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Rivet (Old)
 and      /work/SRC/openSUSE:Factory/.Rivet.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Rivet"

Sun Aug 30 19:08:16 2026 rev:33 rq:1374665 version:4.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/Rivet/Rivet.changes      2025-11-24 
14:13:32.324247849 +0100
+++ /work/SRC/openSUSE:Factory/.Rivet.new.1265/Rivet.changes    2026-08-30 
19:08:26.375510745 +0200
@@ -1,0 +2,7 @@
+Wed Aug 19 10:11:14 UTC 2026 - Bernhard M. Wiedemann <[email protected]>
+
+- Add Rivet-reproducible-plugin-build.patch to make plugin
+  libraries build reproducibly independent of CPU count
+  and temp file names (boo#1102408)
+
+-------------------------------------------------------------------

New:
----
  Rivet-reproducible-plugin-build.patch

----------(New B)----------
  New:
- Add Rivet-reproducible-plugin-build.patch to make plugin
  libraries build reproducibly independent of CPU count
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Rivet.spec ++++++
--- /var/tmp/diff_new_pack.xk8GeO/_old  2026-08-30 19:08:27.296542612 +0200
+++ /var/tmp/diff_new_pack.xk8GeO/_new  2026-08-30 19:08:27.298542681 +0200
@@ -27,6 +27,8 @@
 Patch0:         sover.diff
 # PATCH-FEATURE-OPENSUSE Rivet-disable-testCmdLine.patch [email protected] 
-- Disable an outdated and failing test
 Patch1:         Rivet-disable-testCmdLine.patch
+# PATCH-FIX-UPSTREAM Rivet-reproducible-plugin-build.patch [email protected] 
-- Make plugin .so builds independent of CPU count and tmp file names
+Patch2:         Rivet-reproducible-plugin-build.patch
 BuildRequires:  HepMC-devel >= 3.2
 BuildRequires:  YODA-devel >= 2.0
 BuildRequires:  bash-completion

++++++ Rivet-reproducible-plugin-build.patch ++++++
From: Bernhard M. Wiedemann <[email protected]>
Date: 2026-08-19
Subject: Make rivet-build output independent of the build machine

Split plugin sources into a fixed number of buckets
instead of one bucket per CPU core,
so that the code compiled into each plugin .so
does not vary with the core count of the build machine.
Parallelism is unaffected, because it comes from make -j.

Also give the concatenated temporary .cc files deterministic names,
because these names end up in generated symbol names
(e.g. _GLOBAL__sub_I_tmp.EbeVPlcG.cc.cold) and in debug info.

This patch was done while working on reproducible builds for openSUSE.

--- a/bin/rivet-build.in        2026-08-19 12:10:07.135116702 +0200
+++ b/bin/rivet-build.in        2026-08-19 12:10:25.434788951 +0200
@@ -75,7 +75,9 @@
 ## Remove options
 shift $((OPTIND-1))
 
-if [[ -n "$RIVET_BUILD_ALLCAT" ]]; then num_jobs=1; fi
+## Fixed bucket count, so the built library does not depend on the core count
+let max_buckets=16
+if [[ -n "$RIVET_BUILD_ALLCAT" ]]; then num_jobs=1; max_buckets=1; fi
 
 ## Check num_jobs is a number
 if [[ ! $num_jobs -eq $num_jobs ]]; then
@@ -228,7 +230,7 @@
 ##################
 ## Assemble and run build machinery
 
-## Split sources into buckets, one for each core
+## Split sources into buckets
 let idx=1
 sources=""
 for src in "$@"
@@ -239,7 +241,7 @@
         if [[ -n $RIVET_BUILD_NOCAT ]]; then
                    let idx=idx+1
         else
-            let idx=(idx%$num_jobs)+1
+            let idx=(idx%$max_buckets)+1
         fi
        else
                if [[ ${src:0:1} == "-" ]]; then
@@ -262,10 +264,9 @@
 ## Loop over buckets
 for idx in $(seq 1 $num_buckets); do
 
-       ## DO NOT SIMPLIFY, the OS X mktemp can't deal with suffixes directly
-       tmpfile="$(mktemp tmp.XXXXXXXX)"
-       mv "$tmpfile" "$tmpfile.cc"
-       tmpfile="$tmpfile.cc"
+       ## Deterministic name, so generated symbol names are reproducible
+       tmpfile="tmp.$(basename "$libname" .so).$idx.cc"
+       : > "$tmpfile"
 
     ## Concatenate the analysis codes into a single .cc, with separator lines 
to fool the preprocessor!
        for i in $(echo ${buckets[$idx]}); do #< find the real way to do this!

Reply via email to