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

Reply via email to