diff mbox series

python3: drop deterministic_imports.patch

Message ID 20240628150116.3799311-1-alex.kanavin@gmail.com
State New
Headers show
Series python3: drop deterministic_imports.patch | expand

Commit Message

Alexander Kanavin June 28, 2024, 3:01 p.m. UTC
From: Alexander Kanavin <alex@linutronix.de>

https://github.com/python/importlib_metadata/issues/489

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

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 .../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

Comments

Tim Orling June 30, 2024, 5:24 a.m. UTC | #1
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 mbox series

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 \