Message ID | 20240628150116.3799311-1-alex.kanavin@gmail.com |
---|---|
State | New |
Headers | show |
Series | python3: drop deterministic_imports.patch | expand |
On Fri, Jun 28, 2024 at 8:01 AM Alexander Kanavin via lists.openembedded.org <alex.kanavin=gmail.com@lists.openembedded.org> wrote: > From: Alexander Kanavin <alex@linutronix.de> > > https://github.com/python/importlib_metadata/issues/489 > Interesting read. Dropping the patch is clearly the correct thing to do. Thank you for following through with upstream. > > Upstream discussion revealed that: > > - the issue was happening due to a bug in setuptools > > - the bug was fixed in setuptools 63 (I confirmed this: empty dist-info > directories no longer seem to trigger any issues if the patch is dropped) > > - the patch would obscure any further issues of this kind instead of > exposing them > for easy fixing, so they suggest we drop it and report if anything else > pops up Like you, I suspect we won’t see issues until something else “breaks” in the future. > > Signed-off-by: Alexander Kanavin <alex@linutronix.de> Reviewed-by: Tim Orling <tim.orling@konsulko.com> > > --- > .../python3/deterministic_imports.patch | 40 ------------------- > .../recipes-devtools/python/python3_3.12.4.bb | 1 - > 2 files changed, 41 deletions(-) > delete mode 100644 > meta/recipes-devtools/python/python3/deterministic_imports.patch > > diff --git > a/meta/recipes-devtools/python/python3/deterministic_imports.patch > b/meta/recipes-devtools/python/python3/deterministic_imports.patch > deleted file mode 100644 > index 2de6ae2e981..00000000000 > --- a/meta/recipes-devtools/python/python3/deterministic_imports.patch > +++ /dev/null > @@ -1,40 +0,0 @@ > -From 039d5e652796b55f1132afa568c7432b6ed89afd Mon Sep 17 00:00:00 2001 > -From: Richard Purdie <richard.purdie@linuxfoundation.org> > -Date: Fri, 27 May 2022 17:05:44 +0100 > -Subject: [PATCH] python3: Ensure stale empty python module directories > don't > - > -There are two issues here. Firstly, the modules are accessed in on disk > order. This > -means behaviour seen on one system might not reproduce on another and is > a real headache. > - > -Secondly, empty directories left behind by previous modules might be > looked at. This > -has caused a long string of different issues for us. > - > -As a result, patch this to a behaviour which works for us. > - > -Upstream-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] > -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> > - > ---- > - Lib/importlib/metadata/__init__.py | 9 ++++++++- > - 1 file changed, 8 insertions(+), 1 deletion(-) > - > -diff --git a/Lib/importlib/metadata/__init__.py > b/Lib/importlib/metadata/__init__.py > -index 82e0ce1..969cac4 100644 > ---- a/Lib/importlib/metadata/__init__.py > -+++ b/Lib/importlib/metadata/__init__.py > -@@ -710,7 +710,14 @@ class Lookup: > - self.infos = FreezableDefaultDict(list) > - self.eggs = FreezableDefaultDict(list) > - > -- for child in path.children(): > -+ for child in sorted(path.children()): > -+ childpath = pathlib.Path(path.root, child) > -+ try: > -+ if childpath.is_dir() and not any(childpath.iterdir()): > -+ # Empty directories aren't interesting > -+ continue > -+ except PermissionError: > -+ continue > - low = child.lower() > - if low.endswith((".dist-info", ".egg-info")): > - # 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 8b5e7bd99cb..eb3866d9be7 100644 > --- a/meta/recipes-devtools/python/python3_3.12.4.bb > +++ b/meta/recipes-devtools/python/python3_3.12.4.bb > @@ -24,7 +24,6 @@ SRC_URI = " > http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ > file://makerace.patch \ > file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch > \ > > file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ > - file://deterministic_imports.patch \ > file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ > file://0001-Update-test_sysconfig-for-posix_user-purelib.patch > \ > > file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ > -- > 2.39.2 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#201224): > https://lists.openembedded.org/g/openembedded-core/message/201224 > Mute This Topic: https://lists.openembedded.org/mt/106929238/924729 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > ticotimo@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
diff --git a/meta/recipes-devtools/python/python3/deterministic_imports.patch b/meta/recipes-devtools/python/python3/deterministic_imports.patch deleted file mode 100644 index 2de6ae2e981..00000000000 --- a/meta/recipes-devtools/python/python3/deterministic_imports.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 039d5e652796b55f1132afa568c7432b6ed89afd Mon Sep 17 00:00:00 2001 -From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Fri, 27 May 2022 17:05:44 +0100 -Subject: [PATCH] python3: Ensure stale empty python module directories don't - -There are two issues here. Firstly, the modules are accessed in on disk order. This -means behaviour seen on one system might not reproduce on another and is a real headache. - -Secondly, empty directories left behind by previous modules might be looked at. This -has caused a long string of different issues for us. - -As a result, patch this to a behaviour which works for us. - -Upstream-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] -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - ---- - Lib/importlib/metadata/__init__.py | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py -index 82e0ce1..969cac4 100644 ---- a/Lib/importlib/metadata/__init__.py -+++ b/Lib/importlib/metadata/__init__.py -@@ -710,7 +710,14 @@ class Lookup: - self.infos = FreezableDefaultDict(list) - self.eggs = FreezableDefaultDict(list) - -- for child in path.children(): -+ for child in sorted(path.children()): -+ childpath = pathlib.Path(path.root, child) -+ try: -+ if childpath.is_dir() and not any(childpath.iterdir()): -+ # Empty directories aren't interesting -+ continue -+ except PermissionError: -+ continue - low = child.lower() - if low.endswith((".dist-info", ".egg-info")): - # 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 8b5e7bd99cb..eb3866d9be7 100644 --- a/meta/recipes-devtools/python/python3_3.12.4.bb +++ b/meta/recipes-devtools/python/python3_3.12.4.bb @@ -24,7 +24,6 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://makerace.patch \ file://0001-sysconfig.py-use-platlibdir-also-for-purelib.patch \ file://0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch \ - file://deterministic_imports.patch \ file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \