Source: python-prov
Version: 2.5.3+ds-2
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: randomness
X-Debbugs-Cc: [email protected]

Hi,

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

This is because the automatically-generated documentation includes a
reference to a PROV_RECORD_ATTRIBUTES constant, which is generated at
module import time in a nondeterminstic manner/

Patch attached.

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


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [email protected] / chris-lamb.co.uk
       `-
--- a/debian/patches/3000_reproducible_build.patch      1969-12-31 
16:00:00.000000000 -0800
--- b/debian/patches/3000_reproducible_build.patch      2026-09-21 
08:59:00.100580852 -0700
@@ -0,0 +1,15 @@
+Description: Make the build reproducible
+Author: Chris Lamb <[email protected]>
+Last-Update: 2026-09-21
+
+--- python-prov-2.5.3+ds.orig/src/prov/constants.py
++++ python-prov-2.5.3+ds/src/prov/constants.py
+@@ -185,7 +185,7 @@ PROV_ATTRIBUTE_LITERALS = {PROV_ATTR_TIM
+ # Set of formal attributes of PROV records
+ PROV_ATTRIBUTES = PROV_ATTRIBUTE_QNAMES | PROV_ATTRIBUTE_LITERALS
+ """All formal attributes of PROV records, QualifiedName- and 
literal-valued."""
+-PROV_RECORD_ATTRIBUTES = [(attr, str(attr)) for attr in PROV_ATTRIBUTES]
++PROV_RECORD_ATTRIBUTES = [(attr, str(attr)) for attr in 
sorted(PROV_ATTRIBUTES, key=lambda x: str(x))]
+ """``(QualifiedName, str)`` pairs for every entry in 
:data:`PROV_ATTRIBUTES`."""
+ 
+ PROV_RECORD_IDS_MAP = {
--- a/debian/patches/series     2026-09-21 08:33:59.438570474 -0700
--- b/debian/patches/series     2026-09-21 08:56:46.074360812 -0700
@@ -1 +1,2 @@
 2001_no_privacy_breach.patch
+3000_reproducible_build.patch

Reply via email to