Re: [gentoo-dev] python-distutils-ng.eclass: allow useflag dependencies for python

2012-09-08 Thread hasufell
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

 Where are your use cases?

qgrep PYTHON_USE_WITH
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQS0J1AAoJEFpvPKfnPDWzktAH/jY5/hfkIv6Gn+mRBg3ROtKh
EQ0vAJV3ZXSsIlO7UOxJf79wj1TqiApAhXvUxs5orJKOuCqc3Pfq41KNV/KfyRiS
zno/4sSVvgU6udSGx3BScbDIQi6T7bQKquP3FalDw30v2/xDqYdTPFCx+qfRG0Eu
erquQOiMs2OzBBzQn95xnjGaWN7Z9QBmkdIS3pC4hB2hIGOQmBEskRCQVtA9mfog
wM5war7DpTUsyrcJb67LZy0AeACN42xHJ7KFMkqVYp1WkT7Y04LmWmCjUJfSK7Yt
osZ2r/SUpCHQ1cJ5LM5DunboV7j2DZGzyNvCM2N3phnfYbQWAxhWoI4Idc4YzqE=
=KICW
-END PGP SIGNATURE-



[gentoo-dev] python-distutils-ng.eclass: allow useflag dependencies for python

2012-09-06 Thread hasufell
I am missing a replacement for PYTHON_USE_WITH.

Would the attached patch help in any way? Review? Other ideas?
--- python-distutils-ng.eclass
+++ python-distutils-ng.eclass
@@ -59,6 +59,25 @@
 # Set to any value to disable automatic reinstallation of scripts in bin
 # directories. See python-distutils-ng_src_install function.
 
+# @ECLASS-VARIABLE: PYTHON_USE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# comma seperated list of useflags needed for python
+# this is directly substituted into dev-lang/python[${PYTHON_USE}] thus allowing
+# all valid useflag dependencies
+# example 1: PYTHON_USE=xml,sqlite
+# example 2: PYTHON_USE=xml?,threads?,-foo
+
+# @ECLASS-VARIABLE: JYTHON_USE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# same as PYTHON_USE just for JYTHON
+
+# @ECLASS-VARIABLE: PYPY_USE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# same as PYTHON_USE just for PYPY
+
 EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
 
 case ${EAPI} in
@@ -107,16 +126,22 @@
 fi
 unset required_use_str
 
+# avoid empty use deps
+[[ -n ${PYTHON_USE} ]]  _PYTHON_USE=[${PYTHON_USE}] || _PYTHON_USE=
+[[ -n ${JYTHON_USE} ]]  _JYTHON_USE=[${JYTHON_USE}] || _JYTHON_USE=
+[[ -n ${PYPY_USE} ]]  _PYPY_USE=[${PYPY_USE}] || _PYPY_USE=
+
+# set python DEPEND and RDEPEND
 for impl in ${PYTHON_COMPAT}; do
 	IUSE+= python_targets_${impl}
 	dep_str=${impl/_/.}
 	case ${dep_str} in
 		python?.?)
-			dep_str=dev-lang/python:${dep_str: -3} ;;
+			dep_str=dev-lang/python:${dep_str: -3}${_PYTHON_USE} ;;
 		jython?.?)
-			dep_str=dev-java/jython:${dep_str: -3} ;;
+			dep_str=dev-java/jython:${dep_str: -3}${_JYTHON_USE} ;;
 		pypy?.?)
-			dep_str=dev-python/pypy:${dep_str: -3} ;;
+			dep_str=dev-python/pypy:${dep_str: -3}${_PYPY_USE} ;;
 		*)
 			die Unsupported implementation: ${impl} ;;
 	esac


Re: [gentoo-dev] python-distutils-ng.eclass: allow useflag dependencies for python

2012-09-06 Thread Michał Górny
On Thu, 06 Sep 2012 22:44:34 +0200
hasufell hasuf...@gentoo.org wrote:

 --- python-distutils-ng.eclass
 +++ python-distutils-ng.eclass
 @@ -59,6 +59,25 @@
  # Set to any value to disable automatic reinstallation of scripts in
 bin # directories. See python-distutils-ng_src_install function.
  
 +# @ECLASS-VARIABLE: PYTHON_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# comma seperated list of useflags needed for python
 +# this is directly substituted into dev-lang/python[${PYTHON_USE}]
 thus allowing +# all valid useflag dependencies
 +# example 1: PYTHON_USE=xml,sqlite
 +# example 2: PYTHON_USE=xml?,threads?,-foo
 +
 +# @ECLASS-VARIABLE: JYTHON_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# same as PYTHON_USE just for JYTHON
 +
 +# @ECLASS-VARIABLE: PYPY_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# same as PYTHON_USE just for PYPY
 +

Why I feel like we're close to PYTHON2_USE, PYTHON3_USE,
PYTHON3NG_USE...

  EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test
 src_install 
  case ${EAPI} in
 @@ -107,16 +126,22 @@
  fi
  unset required_use_str
  
 +# avoid empty use deps
 +[[ -n ${PYTHON_USE} ]]  _PYTHON_USE=[${PYTHON_USE}] ||
 _PYTHON_USE= +[[ -n ${JYTHON_USE} ]] 
 _JYTHON_USE=[${JYTHON_USE}] || _JYTHON_USE= +[[ -n ${PYPY_USE} ]]
  _PYPY_USE=[${PYPY_USE}] || _PYPY_USE= +
 +# set python DEPEND and RDEPEND
  for impl in ${PYTHON_COMPAT}; do
   IUSE+= python_targets_${impl}
   dep_str=${impl/_/.}
   case ${dep_str} in
   python?.?)
 - dep_str=dev-lang/python:${dep_str: -3} ;;
 + dep_str=dev-lang/python:${dep_str:
 -3}${_PYTHON_USE} ;; jython?.?)
 - dep_str=dev-java/jython:${dep_str: -3} ;;
 + dep_str=dev-java/jython:${dep_str:
 -3}${_JYTHON_USE} ;; pypy?.?)
 - dep_str=dev-python/pypy:${dep_str: -3} ;;
 + dep_str=dev-python/pypy:${dep_str:
 -3}${_PYPY_USE} ;; *)
   die Unsupported implementation: ${impl} ;;
   esac

I have to think more about this.

Where are your use cases?

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] python-distutils-ng.eclass: allow useflag dependencies for python

2012-09-06 Thread Brian Harring
On Thu, Sep 06, 2012 at 10:44:34PM +0200, hasufell wrote:
 I am missing a replacement for PYTHON_USE_WITH.
 
 Would the attached patch help in any way? Review? Other ideas?

 --- python-distutils-ng.eclass
 +++ python-distutils-ng.eclass
 @@ -59,6 +59,25 @@
  # Set to any value to disable automatic reinstallation of scripts in bin
  # directories. See python-distutils-ng_src_install function.
  
 +# @ECLASS-VARIABLE: PYTHON_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# comma seperated list of useflags needed for python
 +# this is directly substituted into dev-lang/python[${PYTHON_USE}] thus 
 allowing
 +# all valid useflag dependencies
 +# example 1: PYTHON_USE=xml,sqlite
 +# example 2: PYTHON_USE=xml?,threads?,-foo
 +
 +# @ECLASS-VARIABLE: JYTHON_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# same as PYTHON_USE just for JYTHON
 +
 +# @ECLASS-VARIABLE: PYPY_USE
 +# @DEFAULT_UNSET
 +# @DESCRIPTION:
 +# same as PYTHON_USE just for PYPY
 +
  EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
  
  case ${EAPI} in
 @@ -107,16 +126,22 @@
  fi
  unset required_use_str
  
 +# avoid empty use deps
 +[[ -n ${PYTHON_USE} ]]  _PYTHON_USE=[${PYTHON_USE}] || _PYTHON_USE=
 +[[ -n ${JYTHON_USE} ]]  _JYTHON_USE=[${JYTHON_USE}] || _JYTHON_USE=
 +[[ -n ${PYPY_USE} ]]  _PYPY_USE=[${PYPY_USE}] || _PYPY_USE=

Ick.
_PYTHON_USE=${PYTHON_USE:+[${PYTHON_USE}]}
_JYTHON_USE=${JYTHON_USE:+[${JYTHON_USE}]}
_PYPY_USE=${PYPY_USE:+[${PYPY_USE}]}



 +
 +# set python DEPEND and RDEPEND
  for impl in ${PYTHON_COMPAT}; do
   IUSE+= python_targets_${impl}
   dep_str=${impl/_/.}
   case ${dep_str} in
   python?.?)
 - dep_str=dev-lang/python:${dep_str: -3} ;;
 + dep_str=dev-lang/python:${dep_str: -3}${_PYTHON_USE} 
 ;;
should I ask wth the space is for?

   jython?.?)
 - dep_str=dev-java/jython:${dep_str: -3} ;;
 + dep_str=dev-java/jython:${dep_str: -3}${_JYTHON_USE} 
 ;;
   pypy?.?)
 - dep_str=dev-python/pypy:${dep_str: -3} ;;
 + dep_str=dev-python/pypy:${dep_str: -3}${_PYPY_USE} ;;
   *)
   die Unsupported implementation: ${impl} ;;
   esac