Revert random mgorny madness
authorPatrick Lauer <patrick@gentoo.org>
Fri, 20 Feb 2015 08:18:05 +0000 (08:18 +0000)
committerPatrick Lauer <patrick@gentoo.org>
Fri, 20 Feb 2015 08:18:05 +0000 (08:18 +0000)
eclass/ChangeLog
eclass/distutils-r1.eclass
eclass/python-r1.eclass
eclass/python-single-r1.eclass
eclass/python-utils-r1.eclass

index d204e233951d8ca95675b2cc633a6b9fa0d6f9b9..7c6dad3254bc0caddea3c4ce3f089c4d5d0dd2f2 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for eclass directory
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1541 2015/02/19 18:52:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1542 2015/02/20 08:14:22 patrick Exp $
+
+  20 Feb 2015; Patrick Lauer <patrick@gentoo.org> python-r1.eclass,
+  python-single-r1.eclass:
+  Revert random mgorny madness
 
   19 Feb 2015; Michał Górny <mgorny@gentoo.org> python-r1.eclass,
   python-single-r1.eclass, python-utils-r1.eclass:
index 18ed4b99d31f1465828b2e194bd80e02bdab120b..373add33fa27fe3fd7cfc58de106175ea47d3fd8 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/distutils-r1.eclass,v 1.111 2015/02/19 17:22:25 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/distutils-r1.eclass,v 1.112 2015/02/20 08:18:05 patrick Exp $
 
 # @ECLASS: distutils-r1
 # @MAINTAINER:
@@ -393,7 +393,7 @@ _distutils-r1_create_setup_cfg() {
                        root = ${D}
                _EOF_
 
-               if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
+               if [[ ! ${DISTUTILS_SINGLE_IMPL} ]] && _python_want_python_exec2; then
                        cat >> "${HOME}"/.pydistutils.cfg <<-_EOF_ || die
                                install-scripts = $(python_get_scriptdir)
                        _EOF_
@@ -444,7 +444,11 @@ _distutils-r1_wrap_scripts() {
        local bindir=${2}
 
        local PYTHON_SCRIPTDIR
-       python_export PYTHON_SCRIPTDIR
+       if _python_want_python_exec2; then
+               python_export PYTHON_SCRIPTDIR
+       else
+               PYTHON_SCRIPTDIR=${bindir}
+       fi
 
        local f python_files=() non_python_files=()
 
@@ -458,7 +462,7 @@ _distutils-r1_wrap_scripts() {
                        if [[ ${shebang} == '#!'*${EPYTHON}* ]]; then
                                debug-print "${FUNCNAME}: matching shebang: ${shebang}"
                                python_files+=( "${f}" )
-                       else
+                       elif _python_want_python_exec2; then
                                debug-print "${FUNCNAME}: non-matching shebang: ${shebang}"
                                non_python_files+=( "${f}" )
                        fi
@@ -469,11 +473,18 @@ _distutils-r1_wrap_scripts() {
                for f in "${python_files[@]}"; do
                        local basename=${f##*/}
 
+                       if ! _python_want_python_exec2; then
+                               local newf=${f%/*}/${basename}-${EPYTHON}
+                               debug-print "${FUNCNAME}: renaming ${f#${path}/} to ${newf#${path}/}"
+                               mv "${f}" "${newf}" || die
+                       fi
+
                        debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}"
-                       _python_ln_rel "${path}${EPREFIX}"/usr/lib/python-exec/python-exec2 \
+                       _python_ln_rel "${path}${EPREFIX}"$(_python_get_wrapper_path) \
                                "${path}${bindir}/${basename}" || die
                done
 
+               # (non-empty only with python-exec:2)
                for f in "${non_python_files[@]}"; do
                        local basename=${f##*/}
 
@@ -533,11 +544,15 @@ distutils-r1_python_install() {
                        case "${a}" in
                                --install-scripts=*)
                                        scriptdir=${a#--install-scripts=}
-                                       unset "${arg_var}"
+                                       if _python_want_python_exec2; then
+                                               unset "${arg_var}"
+                                       fi
                                        ;;
                                --install-scripts)
                                        scriptdir=${!1}
-                                       unset "${arg_var}" "${1}"
+                                       if _python_want_python_exec2; then
+                                               unset "${arg_var}" "${1}"
+                                       fi
                                        shift
                                        ;;
                        esac
index 2ce3aa01105850bb2606e74e7718f76be8008ddb..ec8c1db75f2d561606789af8e92d6ab7b07dd4e8 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/python-r1.eclass,v 1.86 2015/02/19 18:52:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/python-r1.eclass,v 1.87 2015/02/20 08:14:22 patrick Exp $
 
 # @ECLASS: python-r1
 # @MAINTAINER:
@@ -652,7 +652,6 @@ _python_obtain_impls() {
 
        _python_validate_useflags
        _python_check_USE_PYTHON
-       _python_check_EAPI
 
        MULTIBUILD_VARIANTS=()
 
index d88fecc8849e5465d4dc77e009f8e6c6f89ac7d5..8b994f8cf698c0ed4913bcd4bf5bc7470641cf57 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/python-single-r1.eclass,v 1.33 2015/02/19 18:52:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/python-single-r1.eclass,v 1.34 2015/02/20 08:14:22 patrick Exp $
 
 # @ECLASS: python-single-r1
 # @MAINTAINER:
@@ -379,8 +379,6 @@ python_gen_cond_dep() {
 python_setup() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       _python_check_EAPI
-
        unset EPYTHON
 
        local impl impls=()
index 1dd367a0458863816836b93cc25aa6f7f4023020..b36d8182299704e90c279f52e9b5478b2c5a1677 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/python-utils-r1.eclass,v 1.77 2015/02/19 18:52:06 mgorny Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/python-utils-r1.eclass,v 1.78 2015/02/20 08:18:05 patrick Exp $
 
 # @ECLASS: python-utils-r1
 # @MAINTAINER:
@@ -635,14 +635,21 @@ python_newexe() {
        [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
        [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <path> <new-name>"
 
-       local wrapd=${python_scriptroot:-${DESTTREE}/bin}
+       local d=${python_scriptroot:-${DESTTREE}/bin}
+       local wrapd=${d}
 
        local f=${1}
-       local newfn=${2}
-
-       local PYTHON_SCRIPTDIR d
-       python_export PYTHON_SCRIPTDIR
-       d=${PYTHON_SCRIPTDIR#${EPREFIX}}
+       local barefn=${2}
+       local newfn
+
+       if _python_want_python_exec2; then
+               local PYTHON_SCRIPTDIR
+               python_export PYTHON_SCRIPTDIR
+               d=${PYTHON_SCRIPTDIR#${EPREFIX}}
+               newfn=${barefn}
+       else
+               newfn=${barefn}-${EPYTHON}
+       fi
 
        (
                dodir "${wrapd}"
@@ -651,7 +658,7 @@ python_newexe() {
        )
 
        # install the wrapper
-       _python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
+       _python_ln_rel "${ED%/}"$(_python_get_wrapper_path) \
                "${ED%/}/${wrapd}/${barefn}" || die
 
        # don't use this at home, just call python_doscript() instead
@@ -1092,6 +1099,40 @@ python_fix_shebang() {
        done
 }
 
+# @FUNCTION: _python_want_python_exec2
+# @INTERNAL
+# @DESCRIPTION:
+# Check whether we should be using python-exec:2.
+_python_want_python_exec2() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       # EAPI 4 lacks slot operators, so just fix it on python-exec:2.
+       [[ ${EAPI} == 4 ]] && return 0
+
+       # Check if we cached the result, or someone put an override.
+       if [[ ! ${_PYTHON_WANT_PYTHON_EXEC2+1} ]]; then
+               has_version 'dev-lang/python-exec:2'
+               _PYTHON_WANT_PYTHON_EXEC2=$(( ! ${?} ))
+       fi
+
+       # Non-zero means 'yes', zero means 'no'.
+       [[ ${_PYTHON_WANT_PYTHON_EXEC2} != 0 ]]
+}
+
+# @FUNCTION: _python_get_wrapper_path
+# @INTERNAL
+# @DESCRIPTION:
+# Output path to proper python-exec slot.
+_python_get_wrapper_path() {
+       debug-print-function ${FUNCNAME} "${@}"
+
+       if _python_want_python_exec2; then
+               echo /usr/lib/python-exec/python-exec2
+       else
+               echo /usr/bin/python-exec
+       fi
+}
+
 # @FUNCTION: python_export_utf8_locale
 # @RETURN: 0 on success, 1 on failure.
 # @DESCRIPTION:
@@ -1127,22 +1168,6 @@ python_export_utf8_locale() {
        return 0
 }
 
-# @FUNCTION: _python_check_EAPI
-# @INTERNAL
-# @DESCRIPTION:
-# Check whether the ebuild is not using deprecated EAPI 4. Output
-# a QA warning if it does.
-_python_check_EAPI() {
-       if [[ ${EAPI} == 4 && ! ${_PYTHON_WARNED_EAPI} ]]; then
-               eqawarn "This package is using still using EAPI=4. This results in package"
-               eqawarn "dependencies violating PMS and causing issues for package managers."
-               eqawarn "For this reason, using EAPI=4 in new Python packages will be banned"
-               eqawarn "on 2015-03-20 (2 years and 6 months after approving EAPI 5)."
-
-               _PYTHON_WARNED_EAPI=1
-       fi
-}
-
 # -- python.eclass functions --
 
 _python_check_dead_variables() {