commit:     1746fd5774b828411e4feacf80b9bf8029d7fb43
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 27 07:52:22 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  2 04:04:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1746fd57

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 <AT> gentoo.org>

 eclass/distutils-r1.eclass | 36 ++++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 495eead1d5fd..60f81473c0a6 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -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
 }

Reply via email to