public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup
@ 2021-06-20  9:55 Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 01/28] python-utils-r1.eclass: Ban private API in EAPI 8 Michał Górny
                   ` (28 more replies)
  0 siblings, 29 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Hello, everyone.

Here's the big batch of patches enabling EAPI 8 support in python-r1
eclass suite.  This includes some generic fixes and cleanups.

Generally:

- all previously-deprecated stuff is now banned in EAPI 8
- some new stuff becomes deprecated and banned in EAPI 8
- some leftover Python 2 support code has been removed
- some horrid old code has been refactored

The extra deprecations/bans are:

1. `python_moduleroot` and `python_scriptroot` vars are no longer used
   (they were removed from ::gentoo in 2016).

2. `python_is_python3` is now obsolete since we don't support python2.
   Just always assume python3 ;-).

3. `python_gen*` functions no longer accept -2, -3, 'python2*'
   and 'pypy' arguments that made sense only in Python 2 world,
   in EAPI 8.  This will force some obsolete dep cleanup.

4. `PYTHON_MULTI_USEDEP` is now banned in EAPI 8, just use
   `PYTHON_USEDEP`.

5. `mydistutilsargs` has been replaced with `DISTUTILS_ARGS`.  Old EAPIs
   still allow the old variable, EAPI 8 bans it.

6. `distutils_install_for_testing --via-home` is now banned.

Please review.

---

Michał Górny (28):
  python-utils-r1.eclass: Ban private API in EAPI 8
  python-utils-r1.eclass: Use 'dosym -r' in EAPI 8
  python-utils-r1.eclass: Remove python_optimize support for py<3.5
  python-utils-r1.eclass: Rename *into vars to use underscores
  python-utils-r1.eclass: Eliminate local python_is_python3 uses
  python-utils-r1.eclass: Ban py2 deps in python_gen* in EAPI 8
  python-utils-r1.eclass: Deprecated and EAPI8-ban python_is_python3
  python-utils-r1.eclass: Fix python_fix_shebang for py3.10+
  python-utils-r1.eclass: Enable EAPI 8
  python-any-r1.eclass: Remove obsolete eselect-python use
  python-any-r1.eclass: Remove obsolete PYTHON_USEDEP single-r1 hack
  python-any-r1.eclass: Enable EAPI 8
  python-single-r1.eclass: Update doc for -2/-3 arg removal
  python-single-r1.eclass: Ban PYTHON_MULTI_USEDEP in EAPI 8
  python-single-r1.eclass: Enable EAPI 8
  python-r1.eclass: Update doc for -2/-3 arg removal
  multibuild.eclass: Enable EAPI 8
  python-r1.eclass: Remove obsolete QA hack for PYTHON_USEDEP
  python-r1.eclass: Ban python_gen_usedep in EAPI 8
  python-r1.eclass: Use 'dosym -r' in EAPI 8
  python-r1.eclass: Enable EAPI 8
  distutils-r1.eclass: Refactor --install-scripts rewriting logic
  distutils-r1.eclass: Replace mydistutilsargs with DISTUTILS_ARGS
  distutils-r1.eclass: Require >=pyproject2setuppy-15
  distutils-r1.eclass: Ban dift --via-home in EAPI 8
  distutils-r1.eclass: Remove old FreeBSD compat hack
  distutils-r1.eclass: Use 'dosym -r' in EAPI 8
  distutils-r1.eclass: Enable EAPI 8

 eclass/distutils-r1.eclass      |  88 ++++++++++++++++------------
 eclass/multibuild.eclass        |   8 +--
 eclass/python-any-r1.eclass     |  34 +++--------
 eclass/python-r1.eclass         |  94 +++++++++++++----------------
 eclass/python-single-r1.eclass  |  46 ++++++++-------
 eclass/python-utils-r1.eclass   | 101 +++++++++++++++++++-------------
 eclass/tests/python-utils-r1.sh |   4 ++
 7 files changed, 195 insertions(+), 180 deletions(-)

-- 
2.32.0



^ permalink raw reply	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 01/28] python-utils-r1.eclass: Ban private API in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' " Michał Górny
                   ` (27 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 3dbf221eac5d..bab4be0f521d 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -265,6 +265,8 @@ python_export() {
 	eqawarn "python_export() is part of private eclass API."
 	eqawarn "Please call python_get*() instead."
 
+	[[ ${EAPI} == [67] ]] || die "${FUNCNAME} banned in EAPI ${EAPI}"
+
 	_python_export "${@}"
 }
 
@@ -878,6 +880,8 @@ python_wrapper_setup() {
 	eqawarn "python_wrapper_setup() is part of private eclass API."
 	eqawarn "Please call python_setup() instead."
 
+	[[ ${EAPI} == [67] ]] || die "${FUNCNAME} banned in EAPI ${EAPI}"
+
 	_python_wrapper_setup "${@}"
 }
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 01/28] python-utils-r1.eclass: Ban private API in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20 12:48   ` Ulrich Mueller
  2021-06-20 13:21   ` [gentoo-dev] [PATCH v2] " Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 03/28] python-utils-r1.eclass: Remove python_optimize support for py<3.5 Michał Górny
                   ` (26 subsequent siblings)
  28 siblings, 2 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index bab4be0f521d..e164b9c20eb9 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -544,6 +544,8 @@ python_get_scriptdir() {
 _python_ln_rel() {
 	debug-print-function ${FUNCNAME} "${@}"
 
+	[[ ${EAPI} == [67] ]] || die "${FUNCNAME} banned in EAPI ${EAPI}"
+
 	local target=${1}
 	local symname=${2}
 
@@ -712,8 +714,13 @@ python_newexe() {
 	)
 
 	# install the wrapper
-	_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
-		"${ED%/}/${wrapd}/${newfn}" || die
+	if [[ ${EAPI} != [67] ]]; then
+		dosym -r /usr/lib/python-exec/python-exec2 \
+			"${wrapd}/${newfn}"
+	else
+		_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
+			"${ED%/}/${wrapd}/${newfn}" || die
+	fi
 
 	# don't use this at home, just call python_doscript() instead
 	if [[ ${_PYTHON_REWRITE_SHEBANG} ]]; then
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 03/28] python-utils-r1.eclass: Remove python_optimize support for py<3.5
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 01/28] python-utils-r1.eclass: Ban private API in EAPI 8 Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' " Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 04/28] python-utils-r1.eclass: Rename *into vars to use underscores Michał Górny
                   ` (25 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Remove the support code for Python 2.7, <3.5, as well as PyPy2.7.  These
are no longer supported at runtime, so byte-compiling should not be used
for these impls.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index e164b9c20eb9..ad8d368e27c7 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -626,18 +626,14 @@ python_optimize() {
 		instpath=/${instpath##/}
 
 		case "${EPYTHON}" in
-			python2.7|python3.[34])
-				"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
-				"${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
-				;;
 			python*|pypy3)
-				# both levels of optimization are separate since 3.5
+				# both levels of optimization are separate since py3.5
 				"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
 				"${PYTHON}" -O -m compileall -q -f -d "${instpath}" "${d}"
 				"${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
 				;;
 			*)
-				"${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
+				die "Unknown impl for python_optimize: ${EPYTHON}"
 				;;
 		esac
 	done
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 04/28] python-utils-r1.eclass: Rename *into vars to use underscores
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (2 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 03/28] python-utils-r1.eclass: Remove python_optimize support for py<3.5 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 05/28] python-utils-r1.eclass: Eliminate local python_is_python3 uses Michał Górny
                   ` (24 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Rename helper variables used by *into to mark them private with
underscores.  The old names are leftovers from deprecated API that
permitted setting them directly.  It was last used in ::gentoo in 2016.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index ad8d368e27c7..464e8c19b8ac 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -659,7 +659,7 @@ python_optimize() {
 python_scriptinto() {
 	debug-print-function ${FUNCNAME} "${@}"
 
-	python_scriptroot=${1}
+	_PYTHON_SCRIPTROOT=${1}
 }
 
 # @FUNCTION: python_doexe
@@ -694,7 +694,7 @@ python_newexe() {
 	[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
 	[[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <path> <new-name>"
 
-	local wrapd=${python_scriptroot:-/usr/bin}
+	local wrapd=${_PYTHON_SCRIPTROOT:-/usr/bin}
 
 	local f=${1}
 	local newfn=${2}
@@ -802,7 +802,7 @@ python_newscript() {
 python_moduleinto() {
 	debug-print-function ${FUNCNAME} "${@}"
 
-	python_moduleroot=${1}
+	_PYTHON_MODULEROOT=${1}
 }
 
 # @FUNCTION: python_domodule
@@ -826,13 +826,13 @@ python_domodule() {
 	[[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
 
 	local d
-	if [[ ${python_moduleroot} == /* ]]; then
+	if [[ ${_PYTHON_MODULEROOT} == /* ]]; then
 		# absolute path
-		d=${python_moduleroot}
+		d=${_PYTHON_MODULEROOT}
 	else
 		# relative to site-packages
 		local sitedir=$(python_get_sitedir)
-		d=${sitedir#${EPREFIX}}/${python_moduleroot//.//}
+		d=${sitedir#${EPREFIX}}/${_PYTHON_MODULEROOT//.//}
 	fi
 
 	(
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 05/28] python-utils-r1.eclass: Eliminate local python_is_python3 uses
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (3 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 04/28] python-utils-r1.eclass: Rename *into vars to use underscores Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 06/28] python-utils-r1.eclass: Ban py2 deps in python_gen* in EAPI 8 Michał Górny
                   ` (23 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Do not use python_is_python3 in eclass functions to ease banning it.
Except for wrapper setup that is still used in py2 any-r1 context,
we can unconditionally assume Python 3 everywhere.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 464e8c19b8ac..509b1b4288ac 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -191,8 +191,8 @@ _python_set_impls() {
 # <impl> can be in PYTHON_COMPAT or EPYTHON form. The patterns can be
 # either:
 # a) fnmatch-style patterns, e.g. 'python2*', 'pypy'...
-# b) '-2' to indicate all Python 2 variants (= !python_is_python3)
-# c) '-3' to indicate all Python 3 variants (= python_is_python3)
+# b) '-2' to indicate all Python 2 variants
+# c) '-3' to indicate all Python 3 variants
 _python_impl_matches() {
 	[[ ${#} -ge 1 ]] || die "${FUNCNAME}: takes at least 1 parameter"
 	[[ ${#} -eq 1 ]] && return 0
@@ -202,10 +202,9 @@ _python_impl_matches() {
 
 	for pattern; do
 		if [[ ${pattern} == -2 ]]; then
-			python_is_python3 "${impl}" || return 0
+			:
 		elif [[ ${pattern} == -3 ]]; then
-			python_is_python3 "${impl}" && return 0
-			return
+			return 0
 		# unify value style to allow lax matching
 		elif [[ ${impl/./_} == ${pattern/./_} ]]; then
 			return 0
@@ -924,7 +923,7 @@ _python_wrapper_setup() {
 		_python_export "${impl}" EPYTHON PYTHON
 
 		local pyver pyother
-		if python_is_python3; then
+		if [[ ${EPYTHON} != python2* ]]; then
 			pyver=3
 			pyother=2
 		else
@@ -1101,13 +1100,10 @@ python_fix_shebang() {
 							if [[ ${i} == *python2 ]]; then
 								from=python2
 								if [[ ! ${force} ]]; then
-									python_is_python3 "${EPYTHON}" && error=1
+									error=1
 								fi
 							elif [[ ${i} == *python3 ]]; then
 								from=python3
-								if [[ ! ${force} ]]; then
-									python_is_python3 "${EPYTHON}" || error=1
-								fi
 							else
 								from=python
 							fi
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 06/28] python-utils-r1.eclass: Ban py2 deps in python_gen* in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (4 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 05/28] python-utils-r1.eclass: Eliminate local python_is_python3 uses Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 07/28] python-utils-r1.eclass: Deprecated and EAPI8-ban python_is_python3 Michał Górny
                   ` (22 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Ban using -2 or python2* as an argument to python_gen_cond_dep and other
functions using _python_impl_matches, in order to force cleaning up old
entries, in EAPI 8.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 39 +++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 509b1b4288ac..1ff794ede1de 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -188,11 +188,8 @@ _python_set_impls() {
 # 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:
-# a) fnmatch-style patterns, e.g. 'python2*', 'pypy'...
-# b) '-2' to indicate all Python 2 variants
-# c) '-3' to indicate all Python 3 variants
+# <impl> can be in PYTHON_COMPAT or EPYTHON form. The patterns
+# are fnmatch-style.
 _python_impl_matches() {
 	[[ ${#} -ge 1 ]] || die "${FUNCNAME}: takes at least 1 parameter"
 	[[ ${#} -eq 1 ]] && return 0
@@ -201,14 +198,30 @@ _python_impl_matches() {
 	shift
 
 	for pattern; do
-		if [[ ${pattern} == -2 ]]; then
-			:
-		elif [[ ${pattern} == -3 ]]; then
-			return 0
-		# unify value style to allow lax matching
-		elif [[ ${impl/./_} == ${pattern/./_} ]]; then
-			return 0
-		fi
+		case ${pattern} in
+			-2|python2*|pypy)
+				if [[ ${EAPI} != [67] ]]; then
+					eerror
+					eerror "Python 2 is no longer supported in Gentoo, please remove Python 2"
+					eerror "${FUNCNAME[1]} calls."
+					die "Passing ${pattern} to ${FUNCNAME[1]} is banned in EAPI ${EAPI}"
+				fi
+				;;
+			-3)
+				# NB: "python3*" is fine, as "not pypy3"
+				if [[ ${EAPI} != [67] ]]; then
+					eerror
+					eerror "Python 2 is no longer supported in Gentoo, please remove Python 2"
+					eerror "${FUNCNAME[1]} calls."
+					die "Passing ${pattern} to ${FUNCNAME[1]} is banned in EAPI ${EAPI}"
+				fi
+				return 0
+				;;
+			*)
+				# unify value style to allow lax matching
+				[[ ${impl/./_} == ${pattern/./_} ]] && return 0
+				;;
+		esac
 	done
 
 	return 1
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 07/28] python-utils-r1.eclass: Deprecated and EAPI8-ban python_is_python3
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (5 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 06/28] python-utils-r1.eclass: Ban py2 deps in python_gen* in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 08/28] python-utils-r1.eclass: Fix python_fix_shebang for py3.10+ Michał Górny
                   ` (21 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

There is no use for python_is_python3 anymore, as Python 2 is no longer
supported at runtime and the remaining any-r1 uses are pure-2.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass   | 3 +++
 eclass/tests/python-utils-r1.sh | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 1ff794ede1de..a3d5770b7c08 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -1015,6 +1015,9 @@ _python_wrapper_setup() {
 #
 # Returns 0 (true) if it is, 1 (false) otherwise.
 python_is_python3() {
+	eqawarn "${FUNCNAME} is deprecated, as Python 2 is not supported anymore"
+	[[ ${EAPI} == [67] ]] || die "${FUNCNAME} banned in EAPI ${EAPI}"
+
 	local impl=${1:-${EPYTHON}}
 	[[ ${impl} ]] || die "python_is_python3: no impl nor EPYTHON"
 
diff --git a/eclass/tests/python-utils-r1.sh b/eclass/tests/python-utils-r1.sh
index 85a6a53654d3..63a94c90b715 100755
--- a/eclass/tests/python-utils-r1.sh
+++ b/eclass/tests/python-utils-r1.sh
@@ -5,6 +5,10 @@
 EAPI=7
 source tests-common.sh
 
+eqawarn() {
+	: # stub
+}
+
 test_var() {
 	local var=${1}
 	local impl=${2}
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 08/28] python-utils-r1.eclass: Fix python_fix_shebang for py3.10+
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (6 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 07/28] python-utils-r1.eclass: Deprecated and EAPI8-ban python_is_python3 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 09/28] python-utils-r1.eclass: Enable EAPI 8 Michał Górny
                   ` (20 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

We should be safe until Python 3.99 now ;-).

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index a3d5770b7c08..7f3a0f2566ca 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -1125,20 +1125,22 @@ python_fix_shebang() {
 							fi
 							break
 							;;
-						*python[23].[0123456789]|*pypy|*pypy3|*jython[23].[0123456789])
+						*python[23].[0-9]|*python3.[1-9][0-9]|*pypy|*pypy3|*jython[23].[0-9])
 							# Explicit mismatch.
 							if [[ ! ${force} ]]; then
 								error=1
 							else
 								case "${i}" in
-									*python[23].[0123456789])
-										from="python[23].[0123456789]";;
+									*python[23].[0-9])
+										from="python[23].[0-9]";;
+									*python3.[1-9][0-9])
+										from="python3.[1-9][0-9]";;
 									*pypy)
 										from="pypy";;
 									*pypy3)
 										from="pypy3";;
-									*jython[23].[0123456789])
-										from="jython[23].[0123456789]";;
+									*jython[23].[0-9])
+										from="jython[23].[0-9]";;
 									*)
 										die "${FUNCNAME}: internal error in 2nd pattern match";;
 								esac
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 09/28] python-utils-r1.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (7 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 08/28] python-utils-r1.eclass: Fix python_fix_shebang for py3.10+ Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 10/28] python-any-r1.eclass: Remove obsolete eselect-python use Michał Górny
                   ` (19 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 7f3a0f2566ca..8be37cf544ff 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
 # Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: Utility functions for packages with Python parts.
 # @DESCRIPTION:
 # A utility eclass providing functions to query Python implementations,
@@ -24,7 +24,7 @@
 # See bug #704286, bug #781878
 case "${EAPI:-0}" in
 	[0-5]) die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" ;;
-	[6-7]) ;;
+	[6-8]) ;;
 	*)     die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;;
 esac
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 10/28] python-any-r1.eclass: Remove obsolete eselect-python use
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (8 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 09/28] python-utils-r1.eclass: Enable EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 11/28] python-any-r1.eclass: Remove obsolete PYTHON_USEDEP single-r1 hack Michał Górny
                   ` (18 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-any-r1.eclass | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass
index 49f639d5fac6..cb343b320f0c 100644
--- a/eclass/python-any-r1.eclass
+++ b/eclass/python-any-r1.eclass
@@ -345,22 +345,6 @@ python_setup() {
 		fi
 	fi
 
-	# then, try eselect-python
-	local variant i
-	for variant in '' '--python2' '--python3'; do
-		i=$(eselect python --show ${variant} 2>/dev/null)
-
-		if [[ ! ${i} ]]; then
-			# no eselect-python?
-			break
-		elif _python_EPYTHON_supported "${i}"; then
-			_python_export "${i}" EPYTHON PYTHON
-			_python_wrapper_setup
-			einfo "Using ${EPYTHON} to build"
-			return
-		fi
-	done
-
 	# fallback to best installed impl.
 	# (reverse iteration over _PYTHON_SUPPORTED_IMPLS)
 	for (( i = ${#_PYTHON_SUPPORTED_IMPLS[@]} - 1; i >= 0; i-- )); do
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 11/28] python-any-r1.eclass: Remove obsolete PYTHON_USEDEP single-r1 hack
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (9 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 10/28] python-any-r1.eclass: Remove obsolete eselect-python use Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 12/28] python-any-r1.eclass: Enable EAPI 8 Michał Górny
                   ` (17 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Remove the QA hack for PYTHON_USEDEP that originally prevented python-r1
ebuilds from wrongly depending on python-single-r1 packages.  Since
the latter no longer define python_targets*, these dependencies are now
caught without any hacks.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-any-r1.eclass | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass
index cb343b320f0c..2f38155c39fd 100644
--- a/eclass/python-any-r1.eclass
+++ b/eclass/python-any-r1.eclass
@@ -144,7 +144,7 @@ EXPORT_FUNCTIONS pkg_setup
 #
 # Example value:
 # @CODE
-# python_targets_python3_7(-),-python_single_target_python3_7(-)
+# python_targets_python3_7(-)
 # @CODE
 
 # @ECLASS-VARIABLE: PYTHON_SINGLE_USEDEP
@@ -239,14 +239,14 @@ if [[ ! ${_PYTHON_ANY_R1} ]]; then
 #	(
 #		dev-lang/python:3.7
 #		dev-python/foo[python_single_target_python3_7(-)]
-#		|| ( dev-python/bar[python_targets_python3_7(-),-python_single_target_python3_7(-)]
-#			dev-python/baz[python_targets_python3_7(-),-python_single_target_python3_7(-)] )
+#		|| ( dev-python/bar[python_targets_python3_7(-)
+#			dev-python/baz[python_targets_python3_7(-) )
 #	)
 #	(
 #		dev-lang/python:3.8
 #		dev-python/foo[python_single_target_python3_8(-)]
-#		|| ( dev-python/bar[python_targets_python3_8(-),-python_single_target_python3_8(-)]
-#			dev-python/baz[python_targets_python3_8(-),-python_single_target_python3_8(-)] )
+#		|| ( dev-python/bar[python_targets_python3_8(-)]
+#			dev-python/baz[python_targets_python3_8(-)] )
 #	)
 # )
 # @CODE
@@ -258,7 +258,7 @@ python_gen_any_dep() {
 
 	local i PYTHON_PKG_DEP out=
 	for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
-		local PYTHON_USEDEP="python_targets_${i}(-),-python_single_target_${i}(-)"
+		local PYTHON_USEDEP="python_targets_${i}(-)"
 		local PYTHON_SINGLE_USEDEP="python_single_target_${i}(-)"
 		_python_export "${i}" PYTHON_PKG_DEP
 
@@ -294,7 +294,7 @@ _python_EPYTHON_supported() {
 	if has "${i}" "${_PYTHON_SUPPORTED_IMPLS[@]}"; then
 		if python_is_installed "${i}"; then
 			if declare -f python_check_deps >/dev/null; then
-				local PYTHON_USEDEP="python_targets_${i}(-),-python_single_target_${i}(-)"
+				local PYTHON_USEDEP="python_targets_${i}(-)"
 				local PYTHON_SINGLE_USEDEP="python_single_target_${i}(-)"
 				python_check_deps
 				return ${?}
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 12/28] python-any-r1.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (10 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 11/28] python-any-r1.eclass: Remove obsolete PYTHON_USEDEP single-r1 hack Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 13/28] python-single-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
                   ` (16 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-any-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/python-any-r1.eclass b/eclass/python-any-r1.eclass
index 2f38155c39fd..eaae5379b732 100644
--- a/eclass/python-any-r1.eclass
+++ b/eclass/python-any-r1.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
 # Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: An eclass for packages having build-time dependency on Python.
 # @DESCRIPTION:
 # A minimal eclass for packages which need any Python interpreter
@@ -39,7 +39,7 @@
 
 case "${EAPI:-0}" in
 	[0-5]) die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" ;;
-	[6-7]) ;;
+	[6-8]) ;;
 	*)     die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;;
 esac
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 13/28] python-single-r1.eclass: Update doc for -2/-3 arg removal
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (11 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 12/28] python-any-r1.eclass: Enable EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 14/28] python-single-r1.eclass: Ban PYTHON_MULTI_USEDEP in EAPI 8 Michał Górny
                   ` (15 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-single-r1.eclass | 36 +++++++++++++++-------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass
index 07db2d762ded..50ec69fa2ddb 100644
--- a/eclass/python-single-r1.eclass
+++ b/eclass/python-single-r1.eclass
@@ -278,11 +278,10 @@ if [[ ! ${_PYTHON_SINGLE_R1} ]]; then
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # This is an internal function used to implement python_gen_cond_dep.
 _python_gen_usedep() {
@@ -312,11 +311,10 @@ _python_gen_usedep() {
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # Example:
 # @CODE
@@ -350,11 +348,10 @@ python_gen_useflags() {
 # of Python implementations which are both in PYTHON_COMPAT and match
 # any of the patterns passed as the remaining parameters.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # In order to enforce USE constraints on the packages, verbatim
 # '${PYTHON_SINGLE_USEDEP}' and '${PYTHON_USEDEP}' (quoted!) may
@@ -413,11 +410,10 @@ python_gen_cond_dep() {
 # patterns are passed, the output dependencies will be generated only
 # for the implementations matching them.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # Use this function when you need to request different USE flags
 # on the Python interpreter depending on package's USE flags. If you
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 14/28] python-single-r1.eclass: Ban PYTHON_MULTI_USEDEP in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (12 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 13/28] python-single-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 15/28] python-single-r1.eclass: Enable " Michał Górny
                   ` (14 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

PYTHON_MULTI_USEDEP was a temporary transition measure, and is now
equivalent to PYTHON_USEDEP.  Ban it in EAPI 8 to clean up ebuilds.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-single-r1.eclass | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass
index 50ec69fa2ddb..6dd0616aa219 100644
--- a/eclass/python-single-r1.eclass
+++ b/eclass/python-single-r1.eclass
@@ -392,6 +392,12 @@ python_gen_cond_dep() {
 			fi
 			local multi_usedep="python_targets_${impl}(-)"
 
+			if [[ ${EAPI} != [67] ]]; then
+				if [[ ${dep} == *\$\{PYTHON_MULTI_USEDEP\}* ]]; then
+					die "Replace PYTHON_MULTI_USEDEP with PYTHON_USEDEP in EAPI ${EAPI}"
+				fi
+			fi
+
 			local subdep=${dep//\$\{PYTHON_MULTI_USEDEP\}/${multi_usedep}}
 			matches+=( "python_single_target_${impl}? (
 				${subdep//\$\{PYTHON_USEDEP\}/${multi_usedep}} )" )
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 15/28] python-single-r1.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (13 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 14/28] python-single-r1.eclass: Ban PYTHON_MULTI_USEDEP in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 16/28] python-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
                   ` (13 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-single-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/python-single-r1.eclass b/eclass/python-single-r1.eclass
index 6dd0616aa219..dfe15e196764 100644
--- a/eclass/python-single-r1.eclass
+++ b/eclass/python-single-r1.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
 # Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: An eclass for Python packages not installed for multiple implementations.
 # @DESCRIPTION:
 # An extension of the python-r1 eclass suite for packages which
@@ -40,7 +40,7 @@ case "${EAPI:-0}" in
 	[0-5])
 		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
 		;;
-	[6-7])
+	[6-8])
 		;;
 	*)
 		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 16/28] python-r1.eclass: Update doc for -2/-3 arg removal
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (14 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 15/28] python-single-r1.eclass: Enable " Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 17/28] multibuild.eclass: Enable EAPI 8 Michał Górny
                   ` (12 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 63 ++++++++++++++++++-----------------------
 1 file changed, 28 insertions(+), 35 deletions(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 1eb68270a0b3..00555e19d605 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -304,11 +304,10 @@ _python_validate_useflags() {
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # This is an internal function used to implement python_gen_cond_dep
 # and deprecated python_gen_usedep.
@@ -342,11 +341,10 @@ _python_gen_usedep() {
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # When all implementations are requested, please use ${PYTHON_USEDEP}
 # instead. Please also remember to set an appropriate REQUIRED_USE
@@ -380,11 +378,10 @@ python_gen_usedep() {
 # are both in PYTHON_COMPAT and match any of the patterns passed
 # as parameters to the function.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # Example:
 # @CODE
@@ -418,11 +415,10 @@ python_gen_useflags() {
 # of Python implementations which are both in PYTHON_COMPAT and match
 # any of the patterns passed as the remaining parameters.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # In order to enforce USE constraints on the packages, verbatim
 # '${PYTHON_USEDEP}' (quoted!) may be placed in the dependency
@@ -477,11 +473,10 @@ python_gen_cond_dep() {
 # patterns are passed, the output dependencies will be generated only
 # for the implementations matching them.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # Use this function when you need to request different USE flags
 # on the Python interpreter depending on package's USE flags. If you
@@ -534,11 +529,10 @@ python_gen_impl_dep() {
 #
 # Optionally, patterns may be specified to restrict the dependency to
 # a subset of Python implementations supported by the ebuild.
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # This should be used along with an appropriate python_check_deps()
 # that checks which of the any-of blocks were matched, and python_setup
@@ -725,11 +719,10 @@ python_foreach_impl() {
 # The python_check_deps() function in the any-of mode needs to be
 # accompanied by appropriate any-of dependencies.
 #
-# The patterns can be either fnmatch-style patterns (matched via bash
-# == operator against PYTHON_COMPAT values) or '-2' / '-3' to indicate
-# appropriately all enabled Python 2/3 implementations (alike
-# python_is_python3). Remember to escape or quote the fnmatch patterns
-# to prevent accidental shell filename expansion.
+# The patterns are fnmatch-style patterns (matched via bash
+# == operator against PYTHON_COMPAT values).  Remember to escape
+# or quote the fnmatch patterns to prevent accidental shell filename
+# expansion.
 #
 # This function needs to be used when Python is being called outside
 # of python_foreach_impl calls (e.g. for shared processes like doc
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 17/28] multibuild.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (15 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 16/28] python-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 18/28] python-r1.eclass: Remove obsolete QA hack for PYTHON_USEDEP Michał Górny
                   ` (11 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/multibuild.eclass | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/eclass/multibuild.eclass b/eclass/multibuild.eclass
index 8f9612bc747e..37568ebf87cc 100644
--- a/eclass/multibuild.eclass
+++ b/eclass/multibuild.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: multibuild.eclass
@@ -6,7 +6,7 @@
 # Michał Górny <mgorny@gentoo.org>
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
-# @SUPPORTED_EAPIS: 4 5 6 7
+# @SUPPORTED_EAPIS: 4 5 6 7 8
 # @BLURB: A generic eclass for building multiple variants of packages.
 # @DESCRIPTION:
 # The multibuild eclass aims to provide a generic framework for building
@@ -14,10 +14,10 @@
 # implementations).
 
 case "${EAPI:-0}" in
-	0|1|2|3)
+	[0-3])
 		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
 		;;
-	4|5|6|7)
+	[4-8])
 		;;
 	*)
 		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 18/28] python-r1.eclass: Remove obsolete QA hack for PYTHON_USEDEP
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (16 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 17/28] multibuild.eclass: Enable EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 19/28] python-r1.eclass: Ban python_gen_usedep in EAPI 8 Michał Górny
                   ` (10 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Remove the QA hack for PYTHON_USEDEP that originally prevented python-r1
ebuilds from wrongly depending on python-single-r1 packages.  Since
the latter no longer define python_targets*, these dependencies are now
caught without any hacks.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 00555e19d605..539076b5f748 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -203,15 +203,6 @@ _python_set_globals() {
 
 	local flags=( "${_PYTHON_SUPPORTED_IMPLS[@]/#/python_targets_}" )
 	local optflags=${flags[@]/%/(-)?}
-
-	# A nice QA trick here. Since a python-single-r1 package has to have
-	# at least one PYTHON_SINGLE_TARGET enabled (REQUIRED_USE),
-	# the following check will always fail on those packages. Therefore,
-	# it should prevent developers from mistakenly depending on packages
-	# not supporting multiple Python implementations.
-
-	local flags_st=( "${_PYTHON_SUPPORTED_IMPLS[@]/#/-python_single_target_}" )
-	optflags+=,${flags_st[@]/%/(-)}
 	local requse="|| ( ${flags[*]} )"
 	local usedep=${optflags// /,}
 
@@ -321,7 +312,6 @@ _python_gen_usedep() {
 		if _python_impl_matches "${impl}" "${@}"; then
 			matches+=(
 				"python_targets_${impl}(-)?"
-				"-python_single_target_${impl}(-)"
 			)
 		fi
 	done
@@ -572,8 +562,8 @@ python_gen_impl_dep() {
 #	(
 #		dev-lang/python:3.8
 #		dev-python/foo[python_single_target_python3_8(-)]
-#		|| ( dev-python/bar[python_targets_python3_8(-),-python_single_target_python3_8(-)]
-#			dev-python/baz[python_targets_python3_8(-),-python_single_target_python3_8(-)] )
+#		|| ( dev-python/bar[python_targets_python3_8(-)]
+#			dev-python/baz[python_targets_python3_8(-)] )
 #	)
 # )
 # @CODE
@@ -587,7 +577,7 @@ python_gen_any_dep() {
 	_python_verify_patterns "${@}"
 	for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
 		if _python_impl_matches "${i}" "${@}"; then
-			local PYTHON_USEDEP="python_targets_${i}(-),-python_single_target_${i}(-)"
+			local PYTHON_USEDEP="python_targets_${i}(-)"
 			local PYTHON_SINGLE_USEDEP="python_single_target_${i}(-)"
 			_python_export "${i}" PYTHON_PKG_DEP
 
@@ -799,7 +789,7 @@ python_setup() {
 			# first check if the interpreter is installed
 			python_is_installed "${impl}" || continue
 			# then run python_check_deps
-			local PYTHON_USEDEP="python_targets_${impl}(-),-python_single_target_${impl}(-)"
+			local PYTHON_USEDEP="python_targets_${impl}(-)"
 			local PYTHON_SINGLE_USEDEP="python_single_target_${impl}(-)"
 			python_check_deps || continue
 		fi
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 19/28] python-r1.eclass: Ban python_gen_usedep in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (17 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 18/28] python-r1.eclass: Remove obsolete QA hack for PYTHON_USEDEP Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 20/28] python-r1.eclass: Use 'dosym -r' " Michał Górny
                   ` (9 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 539076b5f748..d464d3ef8f8a 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -358,6 +358,7 @@ python_gen_usedep() {
 	if [[ ${EBUILD_PHASE} == setup ]]; then
 		eqawarn "python_gen_usedep() is deprecated. Please use python_gen_cond_dep instead."
 	fi
+	[[ ${EAPI} == [67] ]] || die "${FUNCNAME} banned in EAPI ${EAPI}"
 	_python_gen_usedep "${@}"
 }
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 20/28] python-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (18 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 19/28] python-r1.eclass: Ban python_gen_usedep in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20 13:22   ` [gentoo-dev] [PATCH v2] " Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 21/28] python-r1.eclass: Enable " Michał Górny
                   ` (8 subsequent siblings)
  28 siblings, 1 reply; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index d464d3ef8f8a..77709bfe7591 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -846,7 +846,13 @@ python_replicate_script() {
 	# install the wrappers
 	local f
 	for f; do
-		_python_ln_rel "${ED%/}/usr/lib/python-exec/python-exec2" "${f}" || die
+		if [[ ${EAPI} != [67] ]]; then
+			dosym -r /usr/lib/python-exec/python-exec2 \
+				"${f#${ED}}"
+		else
+			_python_ln_rel "${ED%/}/usr/lib/python-exec/python-exec2" \
+				"${f}" || die
+		fi
 	done
 }
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 21/28] python-r1.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (19 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 20/28] python-r1.eclass: Use 'dosym -r' " Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 22/28] distutils-r1.eclass: Refactor --install-scripts rewriting logic Michał Górny
                   ` (7 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index 77709bfe7591..372b4d671fc9 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
 # Based on work of: Krzysztof Pawlik <nelchael@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: A common, simple eclass for Python packages.
 # @DESCRIPTION:
 # A common eclass providing helper functions to build and install
@@ -33,7 +33,7 @@ case "${EAPI:-0}" in
 	[0-5])
 		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
 		;;
-	[6-7])
+	[6-8])
 		;;
 	*)
 		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 22/28] distutils-r1.eclass: Refactor --install-scripts rewriting logic
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (20 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 21/28] python-r1.eclass: Enable " Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 23/28] distutils-r1.eclass: Replace mydistutilsargs with DISTUTILS_ARGS Michał Górny
                   ` (6 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Refactor the --install-scripts rewriting logic
in distutils-r1_python_install to be less horrid.  Instead of using
variable indirection, just inline the mydistutilsargs logic
from esetup.py and rewrite the combined argument array.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 43 +++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 53eee173a262..217f457d6bf3 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -836,7 +836,17 @@ distutils-r1_python_test() {
 distutils-r1_python_install() {
 	debug-print-function ${FUNCNAME} "${@}"
 
-	local args=( "${@}" )
+	local root=${D%/}/_${EPYTHON}
+	[[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D%/}
+
+	# inline mydistutilsargs logic from esetup.py in order to make
+	# argv overwriting easier
+	local args=(
+		"${mydistutilsargs[@]}"
+		install --skip-build --root="${root}" "${args[@]}"
+		"${@}"
+	)
+	local mydistutilsargs=()
 
 	# enable compilation for the install phase.
 	local -x PYTHONDONTWRITEBYTECODE=
@@ -852,42 +862,31 @@ distutils-r1_python_install() {
 	if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
 		# user may override --install-scripts
 		# note: this is poor but distutils argv parsing is dumb
-		local mydistutilsargs=( "${mydistutilsargs[@]}" )
 		local scriptdir=${EPREFIX}/usr/bin
 
-		# construct a list of mydistutilsargs[0] args[0] args[1]...
-		local arg arg_vars
-		[[ ${mydistutilsargs[@]} ]] && eval arg_vars+=(
-			'mydistutilsargs['{0..$(( ${#mydistutilsargs[@]} - 1 ))}']'
-		)
-		[[ ${args[@]} ]] && eval arg_vars+=(
-			'args['{0..$(( ${#args[@]} - 1 ))}']'
-		)
-
-		set -- "${arg_vars[@]}"
+		# rewrite all the arguments
+		set -- "${args[@]}"
+		args=()
 		while [[ ${@} ]]; do
-			local arg_var=${1}
+			local a=${1}
 			shift
-			local a=${!arg_var}
 
-			case "${a}" in
+			case ${a} in
 				--install-scripts=*)
 					scriptdir=${a#--install-scripts=}
-					unset "${arg_var}"
 					;;
 				--install-scripts)
-					scriptdir=${!1}
-					unset "${arg_var}" "${1}"
+					scriptdir=${1}
 					shift
 					;;
+				*)
+					args+=( "${a}" )
+					;;
 			esac
 		done
 	fi
 
-	local root=${D%/}/_${EPYTHON}
-	[[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D%/}
-
-	esetup.py install --skip-build --root="${root}" "${args[@]}"
+	esetup.py "${args[@]}"
 
 	local forbidden_package_names=(
 		examples test tests
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 23/28] distutils-r1.eclass: Replace mydistutilsargs with DISTUTILS_ARGS
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (21 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 22/28] distutils-r1.eclass: Refactor --install-scripts rewriting logic Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 24/28] distutils-r1.eclass: Require >=pyproject2setuppy-15 Michał Górny
                   ` (5 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Add a new correctly-cased DISTUTILS_ARGS variable that replaces
mydistutilsargs.  Ban the latter in EAPI 8.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 217f457d6bf3..d7a476f48586 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -248,15 +248,16 @@ unset -f _distutils_set_globals
 # }
 # @CODE
 
-# @ECLASS-VARIABLE: mydistutilsargs
+# @ECLASS-VARIABLE: DISTUTILS_ARGS
 # @DEFAULT_UNSET
 # @DESCRIPTION:
-# An array containing options to be passed to setup.py.
+# An array containing options to be passed to setup.py.  They are passed
+# before the default arguments, i.e. before the first command.
 #
 # Example:
 # @CODE
 # python_configure_all() {
-# 	mydistutilsargs=( --enable-my-hidden-option )
+# 	DISTUTILS_ARGS=( --enable-my-hidden-option )
 # }
 # @CODE
 
@@ -446,8 +447,9 @@ distutils_enable_tests() {
 # (if ${EPYTHON} is set; fallback 'python' otherwise).
 #
 # setup.py will be passed the following, in order:
-# 1. ${mydistutilsargs[@]}
-# 2. additional arguments passed to the esetup.py function.
+# 1. ${DISTUTILS_ARGS[@]}
+# 2. ${mydistutilsargs[@]} (deprecated)
+# 3. additional arguments passed to the esetup.py function.
 #
 # Please note that setup.py will respect defaults (unless overridden
 # via command-line options) from setup.cfg that is created
@@ -467,7 +469,12 @@ esetup.py() {
 		setup_py=( -m pyproject2setuppy.main )
 	fi
 
-	set -- "${EPYTHON}" "${setup_py[@]}" "${mydistutilsargs[@]}" "${@}"
+	if [[ ${EAPI} != [67] && ${mydistutilsargs[@]} ]]; then
+		die "mydistutilsargs is banned in EAPI ${EAPI} (use DISTUTILS_ARGS)"
+	fi
+
+	set -- "${EPYTHON}" "${setup_py[@]}" "${DISTUTILS_ARGS[@]}" \
+		"${mydistutilsargs[@]}" "${@}"
 
 	echo "${@}" >&2
 	"${@}" || die -n
@@ -839,13 +846,15 @@ distutils-r1_python_install() {
 	local root=${D%/}/_${EPYTHON}
 	[[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D%/}
 
-	# inline mydistutilsargs logic from esetup.py in order to make
+	# inline DISTUTILS_ARGS logic from esetup.py in order to make
 	# argv overwriting easier
 	local args=(
+		"${DISTUTILS_ARGS[@]}"
 		"${mydistutilsargs[@]}"
 		install --skip-build --root="${root}" "${args[@]}"
 		"${@}"
 	)
+	local DISTUTILS_ARGS=()
 	local mydistutilsargs=()
 
 	# enable compilation for the install phase.
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 24/28] distutils-r1.eclass: Require >=pyproject2setuppy-15
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (22 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 23/28] distutils-r1.eclass: Replace mydistutilsargs with DISTUTILS_ARGS Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 25/28] distutils-r1.eclass: Ban dift --via-home in EAPI 8 Michał Górny
                   ` (4 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index d7a476f48586..1446d2cda749 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -129,7 +129,7 @@ _distutils_set_globals() {
 			rdep+=" ${setuptools_dep}"
 			;;
 		pyproject.toml)
-			bdep+=' dev-python/pyproject2setuppy[${PYTHON_USEDEP}]'
+			bdep+=' >=dev-python/pyproject2setuppy-15[${PYTHON_USEDEP}]'
 			;;
 		*)
 			die "Invalid DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}"
@@ -465,8 +465,7 @@ esetup.py() {
 
 	local setup_py=( setup.py )
 	if [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]]; then
-		# TODO: remove '.main' when we require v10
-		setup_py=( -m pyproject2setuppy.main )
+		setup_py=( -m pyproject2setuppy )
 	fi
 
 	if [[ ${EAPI} != [67] && ${mydistutilsargs[@]} ]]; then
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 25/28] distutils-r1.eclass: Ban dift --via-home in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (23 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 24/28] distutils-r1.eclass: Require >=pyproject2setuppy-15 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack Michał Górny
                   ` (3 subsequent siblings)
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 1446d2cda749..e74a68007179 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -532,6 +532,7 @@ distutils_install_for_testing() {
 	local install_method=root
 	case ${1} in
 		--via-home)
+			[[ ${EAPI} == [67] ]] || die "${*} is banned in EAPI ${EAPI}"
 			install_method=home
 			shift
 			;;
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (24 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 25/28] distutils-r1.eclass: Ban dift --via-home in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20 13:15   ` Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 27/28] distutils-r1.eclass: Use 'dosym -r' in EAPI 8 Michał Górny
                   ` (2 subsequent siblings)
  28 siblings, 1 reply; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index e74a68007179..a46b71431e48 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -711,8 +711,8 @@ _distutils-r1_create_setup_cfg() {
 # egg-info.
 _distutils-r1_copy_egg_info() {
 	mkdir -p "${BUILD_DIR}" || die
-	# stupid freebsd can't do 'cp -t ${BUILD_DIR} {} +'
-	find -name '*.egg-info' -type d -exec cp -R -p {} "${BUILD_DIR}"/ ';' || die
+	find -name '*.egg-info' -type d \
+		-exec cp -R -p -t "${BUILD_DIR}"/ {} + || die
 }
 
 # @FUNCTION: distutils-r1_python_compile
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 27/28] distutils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (25 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20 13:23   ` [gentoo-dev] [PATCH v2] " Michał Górny
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 28/28] distutils-r1.eclass: Enable " Michał Górny
  2021-06-20 13:24 ` [gentoo-dev] [PATCH v2 28/29] python-utils-r1.eclass: Remove _python_ln_rel Michał Górny
  28 siblings, 1 reply; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index a46b71431e48..314604e62660 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -776,8 +776,14 @@ _distutils-r1_wrap_scripts() {
 			local basename=${f##*/}
 
 			debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}"
-			_python_ln_rel "${path}${EPREFIX}"/usr/lib/python-exec/python-exec2 \
-				"${path}${bindir}/${basename}" || die
+			if [[ ${EAPI} != [67] ]]; then
+				dosym -r "${path#${D}}"/usr/lib/python-exec/python-exec2 \
+					"${path#${D}}${bindir#${EPREFIX}}/${basename}"
+			else
+				_python_ln_rel \
+					"${path}${EPREFIX}"/usr/lib/python-exec/python-exec2 \
+					"${path}${bindir}/${basename}" || die
+			fi
 		done
 
 		for f in "${non_python_files[@]}"; do
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH 28/28] distutils-r1.eclass: Enable EAPI 8
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (26 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 27/28] distutils-r1.eclass: Use 'dosym -r' in EAPI 8 Michał Górny
@ 2021-06-20  9:55 ` Michał Górny
  2021-06-20 13:24 ` [gentoo-dev] [PATCH v2 28/29] python-utils-r1.eclass: Remove _python_ln_rel Michał Górny
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20  9:55 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index 314604e62660..0af1c85149f2 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # Author: Michał Górny <mgorny@gentoo.org>
 # Based on the work of: Krzysztof Pawlik <nelchael@gentoo.org>
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: A simple eclass to build Python packages using distutils.
 # @DESCRIPTION:
 # A simple eclass providing functions to build Python packages using
@@ -47,7 +47,7 @@ case "${EAPI:-0}" in
 	[0-5])
 		die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
 		;;
-	[6-7])
+	[6-8])
 		;;
 	*)
 		die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* Re: [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' " Michał Górny
@ 2021-06-20 12:48   ` Ulrich Mueller
  2021-06-20 13:01     ` Michał Górny
  2021-06-20 13:21   ` [gentoo-dev] [PATCH v2] " Michał Górny
  1 sibling, 1 reply; 36+ messages in thread
From: Ulrich Mueller @ 2021-06-20 12:48 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 758 bytes --]

>>>>> On Sun, 20 Jun 2021, Michał Górny wrote:

> @@ -712,8 +714,13 @@ python_newexe() {
>  	)
>  
>  	# install the wrapper
> -	_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
> -		"${ED%/}/${wrapd}/${newfn}" || die
> +	if [[ ${EAPI} != [67] ]]; then
> +		dosym -r /usr/lib/python-exec/python-exec2 \
> +			"${wrapd}/${newfn}"
> +	else
> +		_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
> +			"${ED%/}/${wrapd}/${newfn}" || die
> +	fi

Wouldn't it be cleaner to inherit eapi8-dosym.eclass in EAPIs 6 and 7
instead? Then dosym -r could be used unconditionally, and function
_python_ln_rel could be dropped altogether?

Same for python-r1.eclass (patch 20/28) and distutils-r1.eclass
(patch 27/28).

Ulrich

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 507 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20 12:48   ` Ulrich Mueller
@ 2021-06-20 13:01     ` Michał Górny
  0 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:01 UTC (permalink / raw
  To: gentoo-dev

On Sun, 2021-06-20 at 14:48 +0200, Ulrich Mueller wrote:
> > > > > > On Sun, 20 Jun 2021, Michał Górny wrote:
> 
> > @@ -712,8 +714,13 @@ python_newexe() {
> >  	)
> >  
> >  	# install the wrapper
> > -	_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
> > -		"${ED%/}/${wrapd}/${newfn}" || die
> > +	if [[ ${EAPI} != [67] ]]; then
> > +		dosym -r /usr/lib/python-exec/python-exec2 \
> > +			"${wrapd}/${newfn}"
> > +	else
> > +		_python_ln_rel "${ED%/}"/usr/lib/python-
> > exec/python-exec2 \
> > +			"${ED%/}/${wrapd}/${newfn}" || die
> > +	fi
> 
> Wouldn't it be cleaner to inherit eapi8-dosym.eclass in EAPIs 6 and 7
> instead? Then dosym -r could be used unconditionally, and function
> _python_ln_rel could be dropped altogether?
> 
> Same for python-r1.eclass (patch 20/28) and distutils-r1.eclass
> (patch 27/28).

Hmm, I suppose that makes sense.  Thanks!

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 36+ messages in thread

* Re: [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack Michał Górny
@ 2021-06-20 13:15   ` Michał Górny
  0 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:15 UTC (permalink / raw
  To: gentoo-dev

On Sun, 2021-06-20 at 11:55 +0200, Michał Górny wrote:
> Signed-off-by: Michał Górny <mgorny@gentoo.org>
> ---
>  eclass/distutils-r1.eclass | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
> index e74a68007179..a46b71431e48 100644
> --- a/eclass/distutils-r1.eclass
> +++ b/eclass/distutils-r1.eclass
> @@ -711,8 +711,8 @@ _distutils-r1_create_setup_cfg() {
>  # egg-info.
>  _distutils-r1_copy_egg_info() {
>  	mkdir -p "${BUILD_DIR}" || die
> -	# stupid freebsd can't do 'cp -t ${BUILD_DIR} {} +'
> -	find -name '*.egg-info' -type d -exec cp -R -p {} "${BUILD_DIR}"/ ';' || die
> +	find -name '*.egg-info' -type d \
> +		-exec cp -R -p -t "${BUILD_DIR}"/ {} + || die
>  }
>  
>  # @FUNCTION: distutils-r1_python_compile

Retracting this one for now, as it causes failures due to 'is the same
file' copy errors with in-source builds.  Need to revisit it later
and fix the underlying issue properly.

-- 
Best regards,
Michał Górny




^ permalink raw reply	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH v2] python-utils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' " Michał Górny
  2021-06-20 12:48   ` Ulrich Mueller
@ 2021-06-20 13:21   ` Michał Górny
  1 sibling, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:21 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index bab4be0f521d..4de550aa6a63 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -34,6 +34,7 @@ fi
 
 if [[ ! ${_PYTHON_UTILS_R1} ]]; then
 
+[[ ${EAPI} == [67] ]] && inherit eapi8-dosym
 inherit toolchain-funcs
 
 # @ECLASS-VARIABLE: _PYTHON_ALL_IMPLS
@@ -712,8 +713,9 @@ python_newexe() {
 	)
 
 	# install the wrapper
-	_python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 \
-		"${ED%/}/${wrapd}/${newfn}" || die
+	local dosym=dosym
+	[[ ${EAPI} == [67] ]] && dosym=dosym8
+	"${dosym}" -r /usr/lib/python-exec/python-exec2 "${wrapd}/${newfn}"
 
 	# don't use this at home, just call python_doscript() instead
 	if [[ ${_PYTHON_REWRITE_SHEBANG} ]]; then
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH v2] python-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 20/28] python-r1.eclass: Use 'dosym -r' " Michał Górny
@ 2021-06-20 13:22   ` Michał Górny
  0 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:22 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-r1.eclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/eclass/python-r1.eclass b/eclass/python-r1.eclass
index d464d3ef8f8a..08d3b744af81 100644
--- a/eclass/python-r1.eclass
+++ b/eclass/python-r1.eclass
@@ -846,7 +846,9 @@ python_replicate_script() {
 	# install the wrappers
 	local f
 	for f; do
-		_python_ln_rel "${ED%/}/usr/lib/python-exec/python-exec2" "${f}" || die
+		local dosym=dosym
+		[[ ${EAPI} == [67] ]] && dosym=dosym8
+		"${dosym}" -r /usr/lib/python-exec/python-exec2 "${f#${ED}}"
 	done
 }
 
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH v2] distutils-r1.eclass: Use 'dosym -r' in EAPI 8
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 27/28] distutils-r1.eclass: Use 'dosym -r' in EAPI 8 Michał Górny
@ 2021-06-20 13:23   ` Michał Górny
  0 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:23 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/distutils-r1.eclass | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass
index e74a68007179..7501f6540bb6 100644
--- a/eclass/distutils-r1.eclass
+++ b/eclass/distutils-r1.eclass
@@ -776,8 +776,10 @@ _distutils-r1_wrap_scripts() {
 			local basename=${f##*/}
 
 			debug-print "${FUNCNAME}: installing wrapper at ${bindir}/${basename}"
-			_python_ln_rel "${path}${EPREFIX}"/usr/lib/python-exec/python-exec2 \
-				"${path}${bindir}/${basename}" || die
+			local dosym=dosym
+			[[ ${EAPI} == [67] ]] && dosym=dosym8
+			"${dosym}" -r "${path#${D}}"/usr/lib/python-exec/python-exec2 \
+				"${path#${D}}${bindir#${EPREFIX}}/${basename}"
 		done
 
 		for f in "${non_python_files[@]}"; do
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [gentoo-dev] [PATCH v2 28/29] python-utils-r1.eclass: Remove _python_ln_rel
  2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
                   ` (27 preceding siblings ...)
  2021-06-20  9:55 ` [gentoo-dev] [PATCH 28/28] distutils-r1.eclass: Enable " Michał Górny
@ 2021-06-20 13:24 ` Michał Górny
  28 siblings, 0 replies; 36+ messages in thread
From: Michał Górny @ 2021-06-20 13:24 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/python-utils-r1.eclass | 40 -----------------------------------
 1 file changed, 40 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 9c8b683a337f..d43311762f9f 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -549,46 +549,6 @@ python_get_scriptdir() {
 	echo "${PYTHON_SCRIPTDIR}"
 }
 
-# @FUNCTION: _python_ln_rel
-# @USAGE: <from> <to>
-# @INTERNAL
-# @DESCRIPTION:
-# Create a relative symlink.
-_python_ln_rel() {
-	debug-print-function ${FUNCNAME} "${@}"
-
-	local target=${1}
-	local symname=${2}
-
-	local tgpath=${target%/*}/
-	local sympath=${symname%/*}/
-	local rel_target=
-
-	while [[ ${sympath} ]]; do
-		local tgseg= symseg=
-
-		while [[ ! ${tgseg} && ${tgpath} ]]; do
-			tgseg=${tgpath%%/*}
-			tgpath=${tgpath#${tgseg}/}
-		done
-
-		while [[ ! ${symseg} && ${sympath} ]]; do
-			symseg=${sympath%%/*}
-			sympath=${sympath#${symseg}/}
-		done
-
-		if [[ ${tgseg} != ${symseg} ]]; then
-			rel_target=../${rel_target}${tgseg:+${tgseg}/}
-		fi
-	done
-	rel_target+=${tgpath}${target##*/}
-
-	debug-print "${FUNCNAME}: ${symname} -> ${target}"
-	debug-print "${FUNCNAME}: rel_target = ${rel_target}"
-
-	ln -fs "${rel_target}" "${symname}"
-}
-
 # @FUNCTION: python_optimize
 # @USAGE: [<directory>...]
 # @DESCRIPTION:
-- 
2.32.0



^ permalink raw reply related	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2021-06-20 13:24 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-20  9:55 [gentoo-dev] [PATCH 00/28] python-r1 suite EAPI 8 support/cleanup Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 01/28] python-utils-r1.eclass: Ban private API in EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 02/28] python-utils-r1.eclass: Use 'dosym -r' " Michał Górny
2021-06-20 12:48   ` Ulrich Mueller
2021-06-20 13:01     ` Michał Górny
2021-06-20 13:21   ` [gentoo-dev] [PATCH v2] " Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 03/28] python-utils-r1.eclass: Remove python_optimize support for py<3.5 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 04/28] python-utils-r1.eclass: Rename *into vars to use underscores Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 05/28] python-utils-r1.eclass: Eliminate local python_is_python3 uses Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 06/28] python-utils-r1.eclass: Ban py2 deps in python_gen* in EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 07/28] python-utils-r1.eclass: Deprecated and EAPI8-ban python_is_python3 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 08/28] python-utils-r1.eclass: Fix python_fix_shebang for py3.10+ Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 09/28] python-utils-r1.eclass: Enable EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 10/28] python-any-r1.eclass: Remove obsolete eselect-python use Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 11/28] python-any-r1.eclass: Remove obsolete PYTHON_USEDEP single-r1 hack Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 12/28] python-any-r1.eclass: Enable EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 13/28] python-single-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 14/28] python-single-r1.eclass: Ban PYTHON_MULTI_USEDEP in EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 15/28] python-single-r1.eclass: Enable " Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 16/28] python-r1.eclass: Update doc for -2/-3 arg removal Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 17/28] multibuild.eclass: Enable EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 18/28] python-r1.eclass: Remove obsolete QA hack for PYTHON_USEDEP Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 19/28] python-r1.eclass: Ban python_gen_usedep in EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 20/28] python-r1.eclass: Use 'dosym -r' " Michał Górny
2021-06-20 13:22   ` [gentoo-dev] [PATCH v2] " Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 21/28] python-r1.eclass: Enable " Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 22/28] distutils-r1.eclass: Refactor --install-scripts rewriting logic Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 23/28] distutils-r1.eclass: Replace mydistutilsargs with DISTUTILS_ARGS Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 24/28] distutils-r1.eclass: Require >=pyproject2setuppy-15 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 25/28] distutils-r1.eclass: Ban dift --via-home in EAPI 8 Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 26/28] distutils-r1.eclass: Remove old FreeBSD compat hack Michał Górny
2021-06-20 13:15   ` Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 27/28] distutils-r1.eclass: Use 'dosym -r' in EAPI 8 Michał Górny
2021-06-20 13:23   ` [gentoo-dev] [PATCH v2] " Michał Górny
2021-06-20  9:55 ` [gentoo-dev] [PATCH 28/28] distutils-r1.eclass: Enable " Michał Górny
2021-06-20 13:24 ` [gentoo-dev] [PATCH v2 28/29] python-utils-r1.eclass: Remove _python_ln_rel 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