Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo Development (http://www.linux-archive.org/gentoo-development/)
-   -   Generate python depstrings in python-r1 (updated). (http://www.linux-archive.org/gentoo-development/705652-generate-python-depstrings-python-r1-updated.html)

Michał Górny 09-19-2012 09:43 PM

Generate python depstrings in python-r1 (updated).
 
I've renamed PYTHON_DEPEND to avoid confusion with python.eclass.
---
gx86/eclass/python-distutils-ng.eclass | 20 ++-----------------
gx86/eclass/python-r1.eclass | 35 ++++++++++++++++++++++++++++++++--
2 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/gx86/eclass/python-distutils-ng.eclass b/gx86/eclass/python-distutils-ng.eclass
index 5df965c..34717aa 100644
--- a/gx86/eclass/python-distutils-ng.eclass
+++ b/gx86/eclass/python-distutils-ng.eclass
@@ -74,24 +74,8 @@ _python-distutils-ng_get_binary_for_implementation() {
esac
}

-for impl in ${PYTHON_COMPAT[@]}; do
- dep_str="${impl/_/.}"
- case "${dep_str}" in
- python?.?)
- dep_str="dev-lang/python:${dep_str: -3}" ;;
- jython?.?)
- dep_str="dev-java/jython:${dep_str: -3}" ;;
- pypy?.?)
- dep_str="dev-python/pypy:${dep_str: -3}" ;;
- *)
- die "Unsupported implementation: ${impl}" ;;
- esac
- dep_str="python_targets_${impl}? ( ${dep_str} )"
-
- RDEPEND="${RDEPEND} ${dep_str}"
- DEPEND="${DEPEND} ${dep_str}"
- unset dep_str
-done
+RDEPEND=${PYTHON_DEPS}
+DEPEND=${PYTHON_DEPS}

_PACKAGE_SPECIFIC_S="${S#${WORKDIR}/}"

diff --git a/gx86/eclass/python-r1.eclass b/gx86/eclass/python-r1.eclass
index 18f9246..957db68 100644
--- a/gx86/eclass/python-r1.eclass
+++ b/gx86/eclass/python-r1.eclass
@@ -40,14 +40,45 @@ _PYTHON_ALL_IMPLS=(
# a package supports. It must be set before the `inherit' call.
# The default is to enable all implementations.
#
-# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar, the eclass
-# will implicitly convert it to an array.
+# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar,
+# the eclass will implicitly convert it to an array.
: ${PYTHON_COMPAT:=${_PYTHON_ALL_IMPLS[@]}}

+# @ECLASS-VARIABLE: PYTHON_DEPS
+# @DESCRIPTION:
+# This is an eclass-generated Python dependency string for all
+# implementations listed in PYTHON_COMPAT. It should be used
+# in RDEPEND and/or DEPEND like:
+#
+# @CODE
+# RDEPEND="${PYTHON_DEPS}
+# dev-foo/mydep"
+# DEPEND="${RDEPEND}"
+# @CODE
+
PYTHON_COMPAT=( ${PYTHON_COMPAT[@]} )

_python_set_globals() {
IUSE=${PYTHON_COMPAT[@]/#/python_targets_}
REQUIRED_USE="|| ( ${IUSE} )"
+
+ PYTHON_DEPS=
+ local i
+ for i in ${PYTHON_COMPAT[@]}; do
+ local d
+ case ${i} in
+ python*)
+ d='dev-lang/python';;
+ jython*)
+ d='dev-java/jython';;
+ pypy*)
+ d='dev-python/pypy';;
+ *)
+ die "Invalid implementation: ${i}"
+ esac
+
+ local v=${i##*[a-z]}
+ PYTHON_DEPS+=" python_targets_${i}? ( ${d}:${v/_/.} )"
+ done
}
_python_set_globals
--
1.7.12

Ben de Groot 09-22-2012 04:47 AM

Generate python depstrings in python-r1 (updated).
 
On 20 September 2012 05:43, Michał Górny <mgorny@gentoo.org> wrote:
> I've renamed PYTHON_DEPEND to avoid confusion with python.eclass.
> ---
> gx86/eclass/python-distutils-ng.eclass | 20 ++-----------------
> gx86/eclass/python-r1.eclass | 35 ++++++++++++++++++++++++++++++++--
> 2 files changed, 35 insertions(+), 20 deletions(-)
>
> diff --git a/gx86/eclass/python-distutils-ng.eclass b/gx86/eclass/python-distutils-ng.eclass
> index 5df965c..34717aa 100644
> --- a/gx86/eclass/python-distutils-ng.eclass
> +++ b/gx86/eclass/python-distutils-ng.eclass
> @@ -74,24 +74,8 @@ _python-distutils-ng_get_binary_for_implementation() {
> esac
> }
>
> -for impl in ${PYTHON_COMPAT[@]}; do
> - dep_str="${impl/_/.}"
> - case "${dep_str}" in
> - python?.?)
> - dep_str="dev-lang/python:${dep_str: -3}" ;;
> - jython?.?)
> - dep_str="dev-java/jython:${dep_str: -3}" ;;
> - pypy?.?)
> - dep_str="dev-python/pypy:${dep_str: -3}" ;;
> - *)
> - die "Unsupported implementation: ${impl}" ;;
> - esac
> - dep_str="python_targets_${impl}? ( ${dep_str} )"
> -
> - RDEPEND="${RDEPEND} ${dep_str}"
> - DEPEND="${DEPEND} ${dep_str}"
> - unset dep_str
> -done
> +RDEPEND=${PYTHON_DEPS}
> +DEPEND=${PYTHON_DEPS}
>
> _PACKAGE_SPECIFIC_S="${S#${WORKDIR}/}"
>
> diff --git a/gx86/eclass/python-r1.eclass b/gx86/eclass/python-r1.eclass
> index 18f9246..957db68 100644
> --- a/gx86/eclass/python-r1.eclass
> +++ b/gx86/eclass/python-r1.eclass
> @@ -40,14 +40,45 @@ _PYTHON_ALL_IMPLS=(
> # a package supports. It must be set before the `inherit' call.
> # The default is to enable all implementations.
> #
> -# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar, the eclass
> -# will implicitly convert it to an array.
> +# PYTHON_COMPAT can be either a scalar or an array. If it's a scalar,
> +# the eclass will implicitly convert it to an array.
> : ${PYTHON_COMPAT:=${_PYTHON_ALL_IMPLS[@]}}
>
> +# @ECLASS-VARIABLE: PYTHON_DEPS
> +# @DESCRIPTION:
> +# This is an eclass-generated Python dependency string for all
> +# implementations listed in PYTHON_COMPAT. It should be used
> +# in RDEPEND and/or DEPEND like:
> +#
> +# @CODE
> +# RDEPEND="${PYTHON_DEPS}
> +# dev-foo/mydep"
> +# DEPEND="${RDEPEND}"
> +# @CODE
> +
> PYTHON_COMPAT=( ${PYTHON_COMPAT[@]} )
>
> _python_set_globals() {
> IUSE=${PYTHON_COMPAT[@]/#/python_targets_}
> REQUIRED_USE="|| ( ${IUSE} )"
> +
> + PYTHON_DEPS=
> + local i
> + for i in ${PYTHON_COMPAT[@]}; do
> + local d
> + case ${i} in
> + python*)
> + d='dev-lang/python';;
> + jython*)
> + d='dev-java/jython';;
> + pypy*)
> + d='dev-python/pypy';;
> + *)
> + die "Invalid implementation: ${i}"
> + esac
> +
> + local v=${i##*[a-z]}
> + PYTHON_DEPS+=" python_targets_${i}? ( ${d}:${v/_/.} )"
> + done
> }
> _python_set_globals
> --
> 1.7.12
>
>

This patchset looks good to me.

--
Cheers,

Ben | yngwin
Gentoo developer
Gentoo Qt project lead, Gentoo Wiki admin


All times are GMT. The time now is 02:59 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.