meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
Chen Qi 66ae53386b
python3-protobuf: remove useless and problematic .pth file
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>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-25 22:02:09 -07:00

47 lines
1.4 KiB
BlitzBasic

DESCRIPTION = "Protocol Buffers"
HOMEPAGE = "https://developers.google.com/protocol-buffers/"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
inherit pypi setuptools3
SRC_URI[sha256sum] = "25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"
# http://errors.yoctoproject.org/Errors/Details/184715/
# Can't find required file: ../src/google/protobuf/descriptor.proto
CLEANBROKEN = "1"
UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
DEPENDS += "protobuf"
RDEPENDS:${PN} += " \
python3-ctypes \
python3-datetime \
python3-json \
python3-logging \
python3-netclient \
python3-numbers \
python3-pkgutil \
python3-unittest \
"
# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
BBCLASSEXTEND = "native nativesdk"
DISTUTILS_BUILD_ARGS += "--cpp_implementation"
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
}