distutils-r1.eclass: Let gpep517 compile bytecode when 9+ is used

Use the new --optimize option of gpep517 >= 9 when it is installed,
and remove the python_optimize call then.  This conditional logic is
meant to give some additional testing while gpep517-9 is still in ~arch.

Note that this also removes python_optimize call for "no" mode.
However, this mode is used only by a handful of ebuilds, so if any of
them needs an explicit python_optimize call, we can quickly fix them.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2022-07-27 09:52:22 +02:00
parent 29688d65ff
commit 1746fd5774

View File

@@ -1270,13 +1270,25 @@ distutils_wheel_install() {
local wheel=${2}
einfo " Installing ${wheel##*/} to ${root}"
local cmd=(
gpep517 install-wheel
--destdir="${root}"
--interpreter="${PYTHON}"
--prefix="${EPREFIX}/usr"
"${wheel}"
)
if has_version -b ">=dev-python/gpep517-9"; then
# TODO: inline when we dep on >=9
local cmd=(
gpep517 install-wheel
--destdir="${root}"
--interpreter="${PYTHON}"
--prefix="${EPREFIX}/usr"
--optimize=all
"${wheel}"
)
else
local cmd=(
gpep517 install-wheel
--destdir="${root}"
--interpreter="${PYTHON}"
--prefix="${EPREFIX}/usr"
"${wheel}"
)
fi
printf '%s\n' "${cmd[*]}"
"${cmd[@]}" || die "Wheel install failed"
@@ -1994,9 +2006,13 @@ _distutils-r1_post_python_install() {
done
if [[ ${DISTUTILS_USE_PEP517} ]]; then
# we need to recompile everything here in order to embed
# the correct paths
python_optimize "${sitedir}"
if ! has_version -b ">=dev-python/gpep517-9"
then
# TODO: remove when we dep on >=9
# we need to recompile everything here in order to embed
# the correct paths
python_optimize "${sitedir}"
fi
fi
fi
}