From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 9096E1384B4 for ; Wed, 11 Nov 2015 10:27:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 56F1121C03A; Wed, 11 Nov 2015 10:27:46 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id B06DF21C035 for ; Wed, 11 Nov 2015 10:27:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BF462340562 for ; Wed, 11 Nov 2015 10:27:44 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1CEE523BD for ; Wed, 11 Nov 2015 10:27:42 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1447237277.e0d0c114862a731d3a10cab621e1070728b8ec5f.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/, eclass/tests/ X-VCS-Repository: repo/gentoo X-VCS-Files: eclass/python-utils-r1.eclass eclass/tests/python-utils-r1.sh X-VCS-Directories: eclass/tests/ eclass/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: e0d0c114862a731d3a10cab621e1070728b8ec5f X-VCS-Branch: master Date: Wed, 11 Nov 2015 10:27:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 96e2f4d4-9de0-4544-8a35-7fba4ec09505 X-Archives-Hash: 9e4723f02d3e6a9af0830c860043db5a commit: e0d0c114862a731d3a10cab621e1070728b8ec5f Author: Michał Górny gentoo org> AuthorDate: Fri Nov 6 22:41:52 2015 +0000 Commit: Michał Górny gentoo org> CommitDate: Wed Nov 11 10:21:17 2015 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0d0c114 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 +++++++-------------- eclass/tests/python-utils-r1.sh | 4 ++-- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index a0274f6..ec85d8a 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 diff --git a/eclass/tests/python-utils-r1.sh b/eclass/tests/python-utils-r1.sh index dc6676b..e54550d 100755 --- a/eclass/tests/python-utils-r1.sh +++ b/eclass/tests/python-utils-r1.sh @@ -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 @@ -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