Source: hatchling Version: 0.12.0-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0] we noticed that hatchling could not be built reproducibly. This is because it included the checksums of (unshipped) .pyc files in the 'RECORD' file. A patch is attached that strips them out; this change is analogous to a similar conditional later in the wheel.py file. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/reproducible-build.patch 1969-12-31 16:00:00.000000000 -0800 --- b/debian/patches/reproducible-build.patch 2022-02-15 09:17:59.109693142 -0800 @@ -0,0 +1,16 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2022-02-15 + +--- hatchling-0.12.0.orig/src/hatchling/builders/wheel.py ++++ hatchling-0.12.0/src/hatchling/builders/wheel.py +@@ -228,6 +228,9 @@ class WheelBuilder(BuilderInterface): + metadata_directory = '{}.dist-info'.format(self.project_id) + with WheelArchive(metadata_directory, self.config.reproducible) as archive, closing(StringIO()) as records: + for included_file in self.recurse_project_files(): ++ if included_file.path.endswith('.pyc'): ++ continue ++ + record = archive.add_file(included_file) + records.write(self.format_record(record)) + --- a/debian/patches/series 1969-12-31 16:00:00.000000000 -0800 --- b/debian/patches/series 2022-02-15 09:16:38.209602402 -0800 @@ -0,0 +1 @@ +reproducible-build.patch