commit:     9441784adb703b887201786fa82be4f9dcd8727c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  6 22:41:52 2015 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov  7 09:30:22 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9441784a

python-utils-r1.eclass: Obtain library path from the interpreter

Obtain library path as concatenation of LIBDIR and LDLIBRARY config
variables (from sysconfig module) rather than hardcoding it in the
eclass. This improves maintainability and fixes compatibility with
ABIFLAGS-enabled Python 3.3+.

 eclass/python-utils-r1.eclass | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index 467d83f..b8d093a 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -151,7 +151,8 @@ _python_impl_supported() {
 # The path to Python library.
 #
 # Set and exported on request using python_export().
-# Valid only for CPython.
+# Valid only for CPython. Requires a proper build-time dependency
+# on the Python implementation.
 #
 # Example value:
 # @CODE
@@ -289,20 +290,12 @@ python_export() {
                                fi
                                ;;
                        PYTHON_LIBPATH)
-                               local libname
-                               case "${impl}" in
-                                       python*)
-                                               libname=lib${impl}
-                                               ;;
-                                       *)
-                                               die "${impl} lacks a dynamic 
library"
-                                               ;;
-                               esac
-
-                               local path=${EPREFIX}/usr/$(get_libdir)
-
-                               export 
PYTHON_LIBPATH=${path}/${libname}$(get_libname)
+                               export PYTHON_LIBPATH=$("${PYTHON}" -c 'import 
os.path, sysconfig; print(os.path.join(sysconfig.get_config_var("LIBDIR"), 
sysconfig.get_config_var("LDLIBRARY")) if sysconfig.get_config_var("LDLIBRARY") 
else "")')
                                debug-print "${FUNCNAME}: PYTHON_LIBPATH = 
${PYTHON_LIBPATH}"
+
+                               if [[ ! ${PYTHON_LIBPATH} ]]; then
+                                       die "${impl} lacks a (usable) dynamic 
library"
+                               fi
                                ;;
                        PYTHON_CFLAGS)
                                local val

Reply via email to