]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
python3-poetry-core: Fix determinism issue breaking reproducibility
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 23 Dec 2022 11:12:28 +0000 (11:12 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 23 Dec 2022 22:59:00 +0000 (22:59 +0000)
Fix failing builds due to a reproducibility issue by adding a patch to sort
globbing, submitted upstream.

[YCOTO #14993]
[YCOTO #14994]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/python/python3-poetry-core/deterministic.patch [new file with mode: 0644]
meta/recipes-devtools/python/python3-poetry-core_1.4.0.bb

diff --git a/meta/recipes-devtools/python/python3-poetry-core/deterministic.patch b/meta/recipes-devtools/python/python3-poetry-core/deterministic.patch
new file mode 100644 (file)
index 0000000..402ee53
--- /dev/null
@@ -0,0 +1,23 @@
+builders/wheel: Ensure dist-info is written determinisically
+
+glob() returns values in "on disk" order. To make the RECORD file
+deterministic and consistent between builds we need to sort the
+data before adding to the records list.
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Upstream-Status: Submitted [https://github.com/python-poetry/poetry-core/pull/545]
+
+Index: builders/wheel.py
+===================================================================
+--- a/src/poetry/core/masonry/builders/wheel.py
++++ b/src/poetry/core/masonry/builders/wheel.py
+@@ -294,7 +294,7 @@ class WheelBuilder(Builder):
+     def _copy_dist_info(self, wheel: zipfile.ZipFile, source: Path) -> None:
+         dist_info = Path(self.dist_info)
+-        for file in source.glob("**/*"):
++        for file in sorted(source.glob("**/*") ):
+             if not file.is_file():
+                 continue
index 22a6a2a47785b3c1e26ba91caa76cfef317bb5de..8a950220125e7de128e52dcfcb9933d07b4809ba 100644 (file)
@@ -26,6 +26,8 @@ inherit python_poetry_core pypi
 PYPI_ARCHIVE_NAME = "poetry_core-${PV}.${PYPI_PACKAGE_EXT}"
 S = "${WORKDIR}/poetry_core-${PV}"
 
+SRC_URI += "file://deterministic.patch"
+
 RDEPENDS:${PN}:append:class-target = "\
     python3-compression \
     python3-core \