diff mbox series

[meta-python,master,scarthgap] python3-protobuf: remove useless and problematic .pth file

Message ID 20240726044505.4034731-1-Qi.Chen@windriver.com
State Accepted
Headers show
Series [meta-python,master,scarthgap] python3-protobuf: remove useless and problematic .pth file | expand

Commit Message

ChenQi July 26, 2024, 4:45 a.m. UTC
From: Chen Qi <Qi.Chen@windriver.com>

Our python3-protobuf is installed in standard site-packages location,
there's no need for an extra .pth file. So this .pth is useless.

What's worse, this .pth file is problematic for python 3.12 ptest. It will
cause the following test case to hang forever:

  test.test__xxsubinterpreters.CreateTests.test_in_thread

I've filed an issue[1] for cpython. Until the problem is resolved there,
we should avoid packaging this .pth file.

In fact, Debian also removes this file in the rules file, though their reason
for removal is likely that the file is useless.

  rules:  find $(CURDIR)/debian/python3-protobuf -name 'protobuf-*-nspkg.pth' -delete

Some more information below, just for better tracking:
1. That .pth file is way too complicated according to .pth design[2].
2. The subinterpreter is not offically part of python, at least for 3.12. The PEP[3][4]
   has not been accepted. The test__xxsubinterpreter is a preparation for it.

[1] https://github.com/python/cpython/issues/122220
[2] https://docs.python.org/3/library/site.html
[3] https://peps.python.org/pep-0554/
[4] https://peps.python.org/pep-0554/

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 .../recipes-devtools/python/python3-protobuf_4.25.3.bb    | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb b/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
index b9b03badd..c234ce577 100644
--- a/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
+++ b/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
@@ -35,3 +35,11 @@  DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
 do_compile:prepend:class-native () {
     export KOKORO_BUILD_NUMBER="1"
 }
+
+do_install:append () {
+    # Remove useless and problematic .pth file. python3-protobuf is installed in the standard
+    # location of site packages. No need for such .pth file.
+    # NOTE: do not drop this removal until the following issue in upstream cpython is resolved:
+    # https://github.com/python/cpython/issues/122220
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/protobuf-*-nspkg.pth
+}