* [gentoo-dev] [PATCH] python*r1.eclass: Reliably allow empty <pattern>s to gen funcs
@ 2019-11-30 10:00 Michał Górny
0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2019-11-30 10:00 UTC (permalink / raw
To: gentoo-dev; +Cc: python, Michał Górny
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 <mgorny@gentoo.org>
---
eclass/python-r1.eclass | 13 ++++++-------
eclass/python-single-r1.eclass | 9 ++++-----
eclass/python-utils-r1.eclass | 6 ++++--
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 833a581fc59f..72ae7f82428a 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -278,7 +278,7 @@ _python_validate_useflags() {
# @FUNCTION: _python_gen_usedep
# @INTERNAL
-# @USAGE: <pattern> [...]
+# @USAGE: [<pattern>...]
# @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: <pattern> [...]
+# @USAGE: [<pattern>...]
# @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: <dependency> <pattern> [...]
+# @USAGE: <dependency> [<pattern>...]
# @DESCRIPTION:
# Output a list of <dependency>-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 f2ad4881135d..fff816570703 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: <pattern> [...]
+# @USAGE: [<pattern>...]
# @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: <pattern> [...]
+# @USAGE: [<pattern>...]
# @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: <dependency> <pattern> [...]
+# @USAGE: <dependency> [<pattern>...]
# @DESCRIPTION:
# Output a list of <dependency>-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: <impl> <pattern>...
+# @USAGE: <impl> [<pattern>...]
# @INTERNAL
# @DESCRIPTION:
# Check whether the specified <impl> matches at least one
# of the patterns following it. Return 0 if it does, 1 otherwise.
+# Matches if no patterns are provided.
#
# <impl> 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
--
2.24.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2019-11-30 10:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-30 10:00 [gentoo-dev] [PATCH] python*r1.eclass: Reliably allow empty <pattern>s to gen funcs Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox