summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2024-07-23 09:28:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-07-23 12:45:22 +0100
commit09efffa6a967b9b99203afc8b6a43a95068d0c7d (patch)
treef8406ba39b374b22c7b2b0f3fa6984f83f4652b7 /meta/recipes-devtools
parenta22bdf729a2bdf6ea327540356763811758eea66 (diff)
downloadpoky-09efffa6a967b9b99203afc8b6a43a95068d0c7d.tar.gz
Revert "python3: drop deterministic_imports.patch"
There are still issues with importlib.metadata and empty directories, which surface when doing builds with existing build trees. I've raised this on the upstream ticket that Alex Kanavin has already filed[1] so hopefully we can have a resolution soon. This reverts commit 058c3a6e2b30103202f3995930825fc2f366274f. [1] https://github.com/python/importlib_metadata/issues/489 (From OE-Core rev: 020c9438fa4d90824dcf7068ccf3722b3b7b8ccf) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/python/python3/deterministic_imports.patch40
-rw-r--r--meta/recipes-devtools/python/python3_3.12.4.bb1
2 files changed, 41 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3/deterministic_imports.patch b/meta/recipes-devtools/python/python3/deterministic_imports.patch
new file mode 100644
index 0000000000..2de6ae2e98
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/deterministic_imports.patch
@@ -0,0 +1,40 @@
1From 039d5e652796b55f1132afa568c7432b6ed89afd Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Fri, 27 May 2022 17:05:44 +0100
4Subject: [PATCH] python3: Ensure stale empty python module directories don't
5
6There are two issues here. Firstly, the modules are accessed in on disk order. This
7means behaviour seen on one system might not reproduce on another and is a real headache.
8
9Secondly, empty directories left behind by previous modules might be looked at. This
10has caused a long string of different issues for us.
11
12As a result, patch this to a behaviour which works for us.
13
14Upstream-Status: Submitted [https://github.com/python/cpython/issues/120492; need to first talk to upstream to see if they'll take one or both fixes]
15Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
16
17---
18 Lib/importlib/metadata/__init__.py | 9 ++++++++-
19 1 file changed, 8 insertions(+), 1 deletion(-)
20
21diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py
22index 82e0ce1..969cac4 100644
23--- a/Lib/importlib/metadata/__init__.py
24+++ b/Lib/importlib/metadata/__init__.py
25@@ -710,7 +710,14 @@ class Lookup:
26 self.infos = FreezableDefaultDict(list)
27 self.eggs = FreezableDefaultDict(list)
28
29- for child in path.children():
30+ for child in sorted(path.children()):
31+ childpath = pathlib.Path(path.root, child)
32+ try:
33+ if childpath.is_dir() and not any(childpath.iterdir()):
34+ # Empty directories aren't interesting
35+ continue
36+ except PermissionError:
37+ continue
38 low = child.lower()
39 if low.endswith((".dist-info", ".egg-info")):
40 # rpartition is faster than splitext and suitable for this purpose.
diff --git a/meta/recipes-devtools/python/python3_3.12.4.bb b/meta/recipes-devtools/python/python3_3.12.4.bb
index 743ba0b1f1..119fe10ca9 100644
--- a/meta/recipes-devtools/python/python3_3.12.4.bb
+++ b/meta/recipes-devtools/python/python3_3.12.4.bb
@@ -24,6 +24,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
24 file://makerace.patch \ 24 file://makerace.patch \
25 file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ 25 file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \
26 file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ 26 file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \
27 file://deterministic_imports.patch \
27 file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ 28 file://0001-Avoid-shebang-overflow-on-python-config.py.patch \
28 file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ 29 file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \
29 file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ 30 file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \