Skip to content

Commit

Permalink
python-utils-r1.eclass: Obtain library path from the interpreter
Browse files Browse the repository at this point in the history
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+.
  • Loading branch information
mgorny committed Nov 11, 2015
1 parent 6cdbddf commit e0d0c11
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 16 deletions.
21 changes: 7 additions & 14 deletions eclass/python-utils-r1.eclass
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions eclass/tests/python-utils-r1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ 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_INCLUDEDIR python2_7 /usr/include/python2.7
test_var PYTHON_LIBPATH python2_7 "/usr/lib*/libpython2.7$(get_libname)"
fi
test_var PYTHON_LIBPATH python2_7 /usr/lib/libpython2.7$(get_libname)
test_var PYTHON_PKG_DEP python2_7 '*dev-lang/python*:2.7'
test_var PYTHON_SCRIPTDIR python2_7 /usr/lib/python-exec/python2.7

Expand All @@ -77,8 +77,8 @@ test_var PYTHON_SITEDIR python3_4 /usr/lib/python3.4/site-packages
if [[ -x /usr/bin/python3.4 ]]; then
abiflags=$(/usr/bin/python3.4 -c 'import sysconfig; print(sysconfig.get_config_var("ABIFLAGS"))')
test_var PYTHON_INCLUDEDIR python3_4 "/usr/include/python3.4${abiflags}"
test_var PYTHON_LIBPATH python3_4 "/usr/lib*/libpython3.4${abiflags}$(get_libname)"
fi
test_var PYTHON_LIBPATH python3_4 /usr/lib/libpython3.4$(get_libname)
test_var PYTHON_PKG_DEP python3_4 '*dev-lang/python*:3.4'
test_var PYTHON_SCRIPTDIR python3_4 /usr/lib/python-exec/python3.4

Expand Down

0 comments on commit e0d0c11

Please sign in to comment.