eclass/distutils-r1: Sync with Gentoo

It's from Gentoo commit 460987b8f0458a2f5102ad3bffc646bf9b492954.
This commit is contained in:
Flatcar Buildbot 2023-02-27 07:22:54 +00:00 committed by Krzesimir Nowak
parent ffca9d31bc
commit 4e676ea9fc

View File

@ -1331,7 +1331,7 @@ distutils_pep517_install() {
"${EPYTHON}" - "${DISTUTILS_ARGS[@]}" <<-EOF || die
import json
import sys
print(json.dumps({"--global-option": sys.argv[1:]}))
print(json.dumps({"--build-option": sys.argv[1:]}))
EOF
)
fi
@ -1980,6 +1980,36 @@ distutils-r1_src_test() {
return ${ret}
}
# @FUNCTION: _distutils-r1_strip_namespace_packages
# @USAGE: <sitedir>
# @INTERNAL
# @DESCRIPTION:
# Find and remove setuptools-style namespaces in the specified
# directory.
_distutils-r1_strip_namespace_packages() {
debug-print-function ${FUNCNAME} "${@}"
local sitedir=${1}
local f ns had_any=
while IFS= read -r -d '' f; do
while read -r ns; do
einfo "Stripping pkg_resources-style namespace ${ns}"
had_any=1
done < "${f}"
rm "${f}" || die
done < <(
# NB: this deliberately does not include .egg-info, in order
# to limit this to PEP517 mode.
find "${sitedir}" -path '*.dist-info/namespace_packages.txt' -print0
)
# If we had any namespace packages, remove .pth files as well.
if [[ ${had_any} ]]; then
find "${sitedir}" -name '*-nspkg.pth' -delete || die
fi
}
# @FUNCTION: _distutils-r1_post_python_install
# @INTERNAL
# @DESCRIPTION:
@ -1990,6 +2020,8 @@ _distutils-r1_post_python_install() {
local sitedir=${D%/}$(python_get_sitedir)
if [[ -d ${sitedir} ]]; then
_distutils-r1_strip_namespace_packages "${sitedir}"
local forbidden_package_names=(
examples test tests
.pytest_cache .hypothesis _trial_temp