commit: 02a9b1b92ea4542788acd190b0b31eced943f647
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 7 19:30:24 2015 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 7 19:40:39 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02a9b1b9
python-utils-r1.eclass: Obtain PYTHON_SITEDIR from the interpreter
Obtain the Python site-packages directory path using the site module,
rather than hardcoding it. The sysconfig module can not be used here
since it does not produce useful output for neither PyPy, nor Jython.
eclass/python-utils-r1.eclass | 16 +++++-----------
eclass/tests/python-utils-r1.sh | 12 +++++++-----
2 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index b8d093a..a8fb253 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -126,6 +126,7 @@ _python_impl_supported() {
# The path to Python site-packages directory.
#
# Set and exported on request using python_export().
+# Requires a proper build-time dependency on the Python implementation.
#
# Example value:
# @CODE
@@ -267,17 +268,10 @@ python_export() {
debug-print "${FUNCNAME}: PYTHON = ${PYTHON}"
;;
PYTHON_SITEDIR)
- local dir
- case "${impl}" in
- python*|pypy|pypy3)
- dir=/usr/$(get_libdir)/${impl}
- ;;
- jython*)
- dir=/usr/share/${impl/n/n-}/Lib
- ;;
- esac
-
- export
PYTHON_SITEDIR=${EPREFIX}${dir}/site-packages
+ # sysconfig can't be used because:
+ # 1) pypy doesn't give site-packages but stdlib
+ # 2) jython gives paths with wrong case
+ export PYTHON_SITEDIR=$("${PYTHON}" -c 'import
site; print(site.getsitepackages()[0])')
debug-print "${FUNCNAME}: PYTHON_SITEDIR =
${PYTHON_SITEDIR}"
;;
PYTHON_INCLUDEDIR)
diff --git a/eclass/tests/python-utils-r1.sh b/eclass/tests/python-utils-r1.sh
index 913cd7d..bc141f7 100755
--- a/eclass/tests/python-utils-r1.sh
+++ b/eclass/tests/python-utils-r1.sh
@@ -63,8 +63,8 @@ inherit python-utils-r1
test_var EPYTHON python2_7 python2.7
test_var PYTHON python2_7 /usr/bin/python2.7
-test_var PYTHON_SITEDIR python2_7 /usr/lib/python2.7/site-packages
if [[ -x /usr/bin/python2.7 ]]; then
+ test_var PYTHON_SITEDIR python2_7 "/usr/lib*/python2.7/site-packages"
test_var PYTHON_INCLUDEDIR python2_7 /usr/include/python2.7
test_var PYTHON_LIBPATH python2_7 "/usr/lib*/libpython2.7$(get_libname)"
fi
@@ -73,8 +73,8 @@ test_var PYTHON_SCRIPTDIR python2_7
/usr/lib/python-exec/python2.7
test_var EPYTHON python3_3 python3.3
test_var PYTHON python3_3 /usr/bin/python3.3
-test_var PYTHON_SITEDIR python3_3 /usr/lib/python3.3/site-packages
if [[ -x /usr/bin/python3.3 ]]; then
+ test_var PYTHON_SITEDIR python3_3 "/usr/lib*/python3.3/site-packages"
test_var PYTHON_INCLUDEDIR python3_3 "/usr/include/python3.3*"
test_var PYTHON_LIBPATH python3_3
"/usr/lib*/libpython3.3*$(get_libname)"
fi
@@ -83,14 +83,16 @@ test_var PYTHON_SCRIPTDIR python3_3
/usr/lib/python-exec/python3.3
test_var EPYTHON jython2_7 jython2.7
test_var PYTHON jython2_7 /usr/bin/jython2.7
-test_var PYTHON_SITEDIR jython2_7 /usr/share/jython-2.7/Lib/site-packages
+if [[ -x /usr/bin/jython2.7 ]]; then
+ test_var PYTHON_SITEDIR jython2_7
/usr/share/jython-2.7/Lib/site-packages
+fi
test_var PYTHON_PKG_DEP jython2_7 '*dev-java/jython*:2.7'
test_var PYTHON_SCRIPTDIR jython2_7 /usr/lib/python-exec/jython2.7
test_var EPYTHON pypy pypy
test_var PYTHON pypy /usr/bin/pypy
-test_var PYTHON_SITEDIR pypy /usr/lib/pypy/site-packages
if [[ -x /usr/bin/pypy ]]; then
+ test_var PYTHON_SITEDIR pypy "/usr/lib*/pypy/site-packages"
test_var PYTHON_INCLUDEDIR pypy "/usr/lib*/pypy/include"
fi
test_var PYTHON_PKG_DEP pypy '*virtual/pypy*:0='
@@ -98,8 +100,8 @@ test_var PYTHON_SCRIPTDIR pypy /usr/lib/python-exec/pypy
test_var EPYTHON pypy3 pypy3
test_var PYTHON pypy3 /usr/bin/pypy3
-test_var PYTHON_SITEDIR pypy3 /usr/lib/pypy3/site-packages
if [[ -x /usr/bin/pypy3 ]]; then
+ test_var PYTHON_SITEDIR pypy3 "/usr/lib*/pypy3/site-packages"
test_var PYTHON_INCLUDEDIR pypy3 /usr/lib/pypy3/include
fi
test_var PYTHON_PKG_DEP pypy3 '*virtual/pypy3*:0='