From: Michał Górny Date: Sat, 30 Nov 2019 09:56:38 +0000 (+0100) Subject: python*r1.eclass: Reliably allow empty s to gen funcs X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=1d5b43ab215e7062d48a581b18f69df4eccb40ac;p=gentoo.git python*r1.eclass: Reliably allow empty s to gen funcs Reliably allow empty pattern lists (equivalent to no restrictions) in all pattern-based generator functions, notably python_gen_cond_dep. Previously, only some of the functions accepted them while others failed via _python_impl_matches function. Signed-off-by: Michał Górny --- diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass index ea4d1e3d4e41..479c4d08234b 100644 --- a/eclass/python-r1.eclass +++ b/eclass/python-r1.eclass @@ -278,7 +278,7 @@ _python_validate_useflags() { # @FUNCTION: _python_gen_usedep # @INTERNAL -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a USE dependency string for Python implementations which # are both in PYTHON_COMPAT and match any of the patterns passed @@ -353,7 +353,7 @@ python_gen_usedep() { } # @FUNCTION: python_gen_useflags -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a list of USE flags for Python implementations which # are both in PYTHON_COMPAT and match any of the patterns passed @@ -390,7 +390,7 @@ python_gen_useflags() { } # @FUNCTION: python_gen_cond_dep -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a list of -ies made conditional to USE flags # of Python implementations which are both in PYTHON_COMPAT and match @@ -486,9 +486,8 @@ python_gen_impl_dep() { local PYTHON_REQ_USE=${1} shift - local patterns=( "${@-*}" ) for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do - if _python_impl_matches "${impl}" "${patterns[@]}"; then + if _python_impl_matches "${impl}" "${@}"; then local PYTHON_PKG_DEP python_export "${impl}" PYTHON_PKG_DEP matches+=( "python_targets_${impl}? ( ${PYTHON_PKG_DEP} )" ) @@ -566,7 +565,7 @@ python_gen_any_dep() { local i PYTHON_PKG_DEP out= for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do - if _python_impl_matches "${i}" "${@-*}"; then + if _python_impl_matches "${i}" "${@}"; then local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)" python_export "${i}" PYTHON_PKG_DEP @@ -763,7 +762,7 @@ python_setup() { fi # check patterns - _python_impl_matches "${impl}" "${@-*}" || continue + _python_impl_matches "${impl}" "${@}" || continue python_export "${impl}" EPYTHON PYTHON diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass index 7adb136101ad..5c6be1c9b11c 100644 --- a/eclass/python-single-r1.eclass +++ b/eclass/python-single-r1.eclass @@ -252,7 +252,7 @@ if [[ ! ${_PYTHON_SINGLE_R1} ]]; then # @FUNCTION: _python_gen_usedep # @INTERNAL -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a USE dependency string for Python implementations which # are both in PYTHON_COMPAT and match any of the patterns passed @@ -327,7 +327,7 @@ python_gen_usedep() { } # @FUNCTION: python_gen_useflags -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a list of USE flags for Python implementations which # are both in PYTHON_COMPAT and match any of the patterns passed @@ -364,7 +364,7 @@ python_gen_useflags() { } # @FUNCTION: python_gen_cond_dep -# @USAGE: [...] +# @USAGE: [...] # @DESCRIPTION: # Output a list of -ies made conditional to USE flags # of Python implementations which are both in PYTHON_COMPAT and match @@ -463,9 +463,8 @@ python_gen_impl_dep() { local PYTHON_REQ_USE=${1} shift - local patterns=( "${@-*}" ) for impl in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do - if _python_impl_matches "${impl}" "${patterns[@]}"; then + if _python_impl_matches "${impl}" "${@}"; then local PYTHON_PKG_DEP python_export "${impl}" PYTHON_PKG_DEP matches+=( "python_single_target_${impl}? ( ${PYTHON_PKG_DEP} )" ) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 4f3ac66f2150..3eadc50f93e6 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -164,11 +164,12 @@ _python_set_impls() { } # @FUNCTION: _python_impl_matches -# @USAGE: ... +# @USAGE: [...] # @INTERNAL # @DESCRIPTION: # Check whether the specified matches at least one # of the patterns following it. Return 0 if it does, 1 otherwise. +# Matches if no patterns are provided. # # can be in PYTHON_COMPAT or EPYTHON form. The patterns can be # either: @@ -176,7 +177,8 @@ _python_set_impls() { # b) '-2' to indicate all Python 2 variants (= !python_is_python3) # c) '-3' to indicate all Python 3 variants (= python_is_python3) _python_impl_matches() { - [[ ${#} -ge 2 ]] || die "${FUNCNAME}: takes at least 2 parameters" + [[ ${#} -ge 1 ]] || die "${FUNCNAME}: takes at least 1 parameter" + [[ ${#} -eq 1 ]] && return 0 local impl=${1} pattern shift