diff mbox series

[1/5] python3-installer: add a patch to ensure RECORD file reproducibility

Message ID 20241016193606.3459951-1-alex.kanavin@gmail.com
State New
Headers show
Series [1/5] python3-installer: add a patch to ensure RECORD file reproducibility | expand

Commit Message

Alexander Kanavin Oct. 16, 2024, 7:36 p.m. UTC
From: Alexander Kanavin <alex@linutronix.de>

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 ...ils.py-sort-entries-before-writing-o.patch | 27 +++++++++++++++++++
 .../python/python3-installer_0.7.0.bb         |  3 ++-
 2 files changed, 29 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch b/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch
new file mode 100644
index 00000000000..a6715ed457d
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-installer/0001-src-installer-utils.py-sort-entries-before-writing-o.patch
@@ -0,0 +1,27 @@ 
+From 760ddf50ce559abd67bbdd31797267d00bcddfb3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Tue, 1 Oct 2024 19:22:11 +0200
+Subject: [PATCH] src/installer/utils.py: sort entries before writing out
+ RECORD file
+
+This helps build reproducibility.
+
+Upstream-Status: Submitted [https://github.com/pypa/installer/pull/245]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/installer/utils.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/installer/utils.py b/src/installer/utils.py
+index 3e601d6..073297c 100644
+--- a/src/installer/utils.py
++++ b/src/installer/utils.py
+@@ -207,7 +207,7 @@ def construct_record_file(
+         io.BytesIO(), encoding="utf-8", write_through=True, newline=""
+     )
+     writer = csv.writer(stream, delimiter=",", quotechar='"', lineterminator="\n")
+-    for scheme, record in records:
++    for scheme, record in sorted(records, key=lambda x: x[1].path):
+         writer.writerow(record.to_row(prefix_for_scheme(scheme)))
+     stream.seek(0)
+     return stream.detach()
diff --git a/meta/recipes-devtools/python/python3-installer_0.7.0.bb b/meta/recipes-devtools/python/python3-installer_0.7.0.bb
index 9429705b1f8..6aaf1b3a379 100644
--- a/meta/recipes-devtools/python/python3-installer_0.7.0.bb
+++ b/meta/recipes-devtools/python/python3-installer_0.7.0.bb
@@ -6,7 +6,8 @@  BUGTRACKER = "https://github.com/pypa/installer/issues"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5038641aec7a77451e31da828ebfae00"
 
-SRC_URI += "file://interpreter.patch"
+SRC_URI += "file://interpreter.patch \
+            file://0001-src-installer-utils.py-sort-entries-before-writing-o.patch"
 
 SRC_URI[sha256sum] = "a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"