Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ceph for openSUSE:Factory checked in 
at 2025-10-08 18:13:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ceph (Old)
 and      /work/SRC/openSUSE:Factory/.ceph.new.11973 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ceph"

Wed Oct  8 18:13:12 2025 rev:104 rq:1309559 version:18.2.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/ceph/ceph.changes        2025-08-25 
20:37:16.730031625 +0200
+++ /work/SRC/openSUSE:Factory/.ceph.new.11973/ceph.changes     2025-10-08 
18:13:55.696910556 +0200
@@ -1,0 +2,5 @@
+Tue Oct  7 08:40:26 UTC 2025 - James Oakley <[email protected]>
+
+- Add cephadm-reproducible.patch for reproducible builds
+
+-------------------------------------------------------------------

New:
----
  cephadm-reproducible.patch

----------(New B)----------
  New:
- Add cephadm-reproducible.patch for reproducible builds
----------(New E)----------

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

Other differences:
------------------
++++++ ceph.spec ++++++
--- /var/tmp/diff_new_pack.VI2mL6/_old  2025-10-08 18:13:57.728995817 +0200
+++ /var/tmp/diff_new_pack.VI2mL6/_new  2025-10-08 18:13:57.728995817 +0200
@@ -222,6 +222,8 @@
 Patch13:        ceph-rocksdb-gcc15.patch
 # PATCH-FIX-UPSTREAM replace CryptoPP calls with GnuTLS [jsc#PED-13011]
 Patch14:        ceph-replace-CryptoPP-calls-with-GnuTLS.patch
+# PATCH-FIX-OPENSUSE cephadm-reproducible.patch -- Ensure cephadm executable 
is reproducible
+Patch15:        cephadm-reproducible.patch
 %if 0%{?suse_version}
 # _insert_obs_source_lines_here
 ExclusiveArch:  x86_64 aarch64 ppc64le s390x riscv64

++++++ cephadm-reproducible.patch ++++++
--- a/src/cephadm/build.py
+++ b/src/cephadm/build.py
@@ -12,7 +12,6 @@ import os
 import pathlib
 import shutil
 import subprocess
-import tempfile
 import sys
 
 HAS_ZIPAPP = False
@@ -57,11 +56,12 @@ def _did_rexec():
 def _build(dest, src, versioning_vars=None):
     """Build the binary."""
     os.chdir(src)
-    tempdir = pathlib.Path(tempfile.mkdtemp(suffix=".cephadm.build"))
-    log.debug("working in %s", tempdir)
+    builddir = pathlib.Path(".cephadm.build")
+    os.mkdir(builddir)
+    log.debug("working in %s", builddir)
     try:
         if os.path.isfile("requirements.txt"):
-            _install_deps(tempdir)
+            _install_deps(builddir)
         log.info("Copying contents")
         # TODO: currently the only file relevant to a compiled cephadm is the
         # cephadm.py file. Once cephadm is broken up into multiple py files
@@ -69,19 +69,19 @@ def _build(dest, src, versioning_vars=No
         # sort organized structure to track what gets copied into the
         # dir to be zipped. For now we just have a simple call to copy
         # (and rename) the one file we care about.
-        shutil.copy("cephadm.py", tempdir / "__main__.py")
+        shutil.copy("cephadm.py", builddir / "__main__.py")
         if versioning_vars:
-            generate_version_file(versioning_vars, tempdir / "_version.py")
-        _compile(dest, tempdir)
+            generate_version_file(versioning_vars, builddir / "_version.py")
+        _compile(dest, builddir)
     finally:
-        shutil.rmtree(tempdir)
+        shutil.rmtree(builddir)
 
 
-def _compile(dest, tempdir):
+def _compile(dest, builddir):
     """Compile the zipapp."""
     log.info("Byte-compiling py to pyc")
     compileall.compile_dir(
-        tempdir,
+        builddir,
         maxlevels=16,
         legacy=True,
         quiet=1,
@@ -91,7 +91,7 @@ def _compile(dest, tempdir):
     log.info("Constructing the zipapp file")
     try:
         zipapp.create_archive(
-            source=tempdir,
+            source=builddir,
             target=dest,
             interpreter=sys.executable,
             compressed=True,
@@ -100,14 +100,14 @@ def _compile(dest, tempdir):
     except TypeError:
         # automatically fall back to uncompressed
         zipapp.create_archive(
-            source=tempdir,
+            source=builddir,
             target=dest,
             interpreter=sys.executable,
         )
         log.info("Zipapp created without compression")
 
 
-def _install_deps(tempdir):
+def _install_deps(builddir):
     """Install dependencies with pip."""
     # TODO we could explicitly pass a python version here
     log.info("Installing dependencies")
@@ -121,7 +121,7 @@ def _install_deps(tempdir):
             "--requirement",
             "requirements.txt",
             "--target",
-            tempdir,
+            builddir,
         ]
     )
 

Reply via email to