On Mon, Nov 5, 2012 at 6:59 AM, Michał Górny <mgo...@gentoo.org> wrote: > --- > gx86/eclass/python-r1.eclass | 66 > ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 66 insertions(+) > > diff --git a/gx86/eclass/python-r1.eclass b/gx86/eclass/python-r1.eclass > index 0d6ef4c..6d4eb33 100644 > --- a/gx86/eclass/python-r1.eclass > +++ b/gx86/eclass/python-r1.eclass > @@ -363,6 +363,70 @@ python_copy_sources() { > done > } > > +# @FUNCTION: _python_check_USE_PYTHON > +# @INTERNAL > +# @DESCRIPTION: > +# Check whether USE_PYTHON and PYTHON_TARGETS are in sync. Output > +# warnings if they are not. > +_python_check_USE_PYTHON() { > + if [[ ! ${_PYTHON_USE_PYTHON_CHECKED} ]]; then > + _PYTHON_USE_PYTHON_CHECKED=1 > + > + local USE_PYTHON=${USE_PYTHON} > + > + if [[ ! ${USE_PYTHON} ]]; then > + # default to selected Python2+3 > + if has_version app-admin/eselect-python; then > + local py2=$(eselect python show --python2) > + local py3=$(eselect python show --python3) > + > + USE_PYTHON="${py2#python} ${py3#python}" > + fi > + fi > + > + local impl warned > + for impl in "${PYTHON_COMPAT[@]}"; do > + local abi > + case "${impl}" in > + python*) > + abi=${impl#python} > + ;; > + jython*) > + abi=${impl#jython}-jython > + ;; > + pypy*) > + abi=2.7-pypy-${impl#pypy} > + ;; > + *) > + die "Unexpected Python > implementation: ${impl}" > + ;; > + esac > + > + has "${abi/_/.}" ${USE_PYTHON} > + local has_abi=${?} > + use "python_targets_${impl}" > + local has_impl=${?} > + > + if [[ ${has_abi} != ${has_impl} ]]; then > + if [[ ! ${warned} ]]; then > + ewarn "PYTHON_TARGETS <-> USE_PYTHON > inconsistency found. This may result" > + ewarn "in missing modules when trying > to use Python packages. Please ensure" > + ewarn "that the same implementations > are listed in both variables." > + ewarn > + > + warned=1 > + fi > + > + if [[ ${has_abi} == 0 ]]; then > + ewarn "Implementation ${impl} > disabled but ${abi/_/.} in USE_PYTHON" > + else > + ewarn "Implementation ${impl} enabled > but ${abi/_/.} not in USE_PYTHON" > + fi > + fi > + done > + fi > +} > + > # @FUNCTION: python_foreach_impl > # @USAGE: <command> [<args>...] > # @DESCRIPTION: > @@ -376,6 +440,8 @@ python_copy_sources() { > python_foreach_impl() { > debug-print-function ${FUNCNAME} "${@}" > > + _python_check_USE_PYTHON > + > local impl > local bdir=${BUILD_DIR:-${S}} > > -- > 1.7.12.4 >
We should not encourage users to set USE_PYTHON if it has not been set already; the variable is pretty much undocumented, and should probably stay that way. If USE_PYTHON is unset, we should advise them to update PYTHON_TARGETS to match their active python2 and python3 versions (from eselect python).