File cephadm-reproducible.patch of Package ceph

--- 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,
         ]
     )
 
openSUSE Build Service is sponsored by