Source: pycorrfit
Version: 1.3.1+nopack-3
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: filesystem
X-Debbugs-Cc: [email protected]

Hi,

Whilst working on the Reproducible Builds effort [0], we noticed that
pycorrfit could not be built reproducibly.

This is because it uses its own code to generate a simple gallery,
and this code calls glob.glob(..) without applying a sort afterwards.
This means that the output depends on the naive filesystem ordering.

A patch is attached that adds a sorted(...) in the right place.

 [0] https://reproducible-builds.org/


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [email protected] / chris-lamb.co.uk
       `-
--- a/debian/patches/reproducible-build.patch   1969-12-31 16:00:00.000000000 
-0800
--- b/debian/patches/reproducible-build.patch   2026-05-11 09:40:31.436520220 
-0700
@@ -0,0 +1,15 @@
+Description: Make the build reproducible
+Author: Chris Lamb <[email protected]>
+Last-Update: 2026-05-11
+
+--- pycorrfit-1.3.1+nopack.orig/docs/extensions/simple_gallery.py
++++ pycorrfit-1.3.1+nopack/docs/extensions/simple_gallery.py
+@@ -33,7 +33,7 @@ class SimpleGalleryDirective(Directive):
+         root = pathlib.Path(__file__).parent.parent
+         gpath = root / self.options["dir"]
+         files = []
+-        for ff in gpath.glob("*"):
++        for ff in sorted(gpath.glob("*")):
+             if ff.suffix in [".png", "*.jpg"]:
+                 files.append(ff.relative_to(root))
+         return files
--- a/debian/patches/series     2026-05-11 09:32:07.377412432 -0700
--- b/debian/patches/series     2026-05-11 09:40:30.635629014 -0700
@@ -1,2 +1,3 @@
 skip-test_fit_single_parameter-on-mips.patch
 use-local-inventory-references-for-intersphinx.patch
+reproducible-build.patch

Reply via email to