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

