commit:     27b7d30f1513c8aa741f0118ebd8af45984ea6c6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 17 02:24:43 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Mar 17 02:24:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27b7d30f

sys-libs/cracklib: fix Python bindings

- Fix Python bindings build and clean it up to be more idiomatic
- Use PEP517 for Python build too

Closes: https://bugs.gentoo.org/901719
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...lib-2.9.10.ebuild => cracklib-2.9.10-r1.ebuild} | 45 ++++++++++++++--------
 .../files/cracklib-2.9.10-python-inc.patch         | 20 ++++++++++
 2 files changed, 48 insertions(+), 17 deletions(-)

diff --git a/sys-libs/cracklib/cracklib-2.9.10.ebuild 
b/sys-libs/cracklib/cracklib-2.9.10-r1.ebuild
similarity index 74%
rename from sys-libs/cracklib/cracklib-2.9.10.ebuild
rename to sys-libs/cracklib/cracklib-2.9.10-r1.ebuild
index 71fddeb64779..0553dfd808a8 100644
--- a/sys-libs/cracklib/cracklib-2.9.10.ebuild
+++ b/sys-libs/cracklib/cracklib-2.9.10-r1.ebuild
@@ -6,6 +6,7 @@ EAPI=8
 # Note: ideally bump with sys-apps/cracklib-words
 
 DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
 PYTHON_COMPAT=( python3_{9..11} )
 inherit distutils-r1 libtool multilib-minimal usr-ldscript
 
@@ -31,19 +32,14 @@ DEPEND="
 "
 BDEPEND="
        nls? ( sys-devel/gettext )
-       python? (
-               dev-python/setuptools[${PYTHON_USEDEP}]
-       )
+       python? ( ${DISTUTILS_DEPS} )
 "
 
-do_python() {
-       multilib_is_native_abi || return 0
-       use python || return 0
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.9.10-python-inc.patch
+)
 
-       pushd python > /dev/null || die
-       distutils-r1_src_${EBUILD_PHASE}
-       popd > /dev/null || die
-}
+distutils_enable_tests unittest
 
 pkg_setup() {
        # Workaround bug #195017
@@ -57,10 +53,12 @@ pkg_setup() {
 src_prepare() {
        default
 
-       # bug ##269003
+       # bug #269003
        elibtoolize
 
-       do_python
+       if use python ; then
+               distutils-r1_src_prepare
+       fi
 }
 
 multilib_src_configure() {
@@ -81,18 +79,28 @@ multilib_src_configure() {
 multilib_src_compile() {
        default
 
-       do_python
+       if multilib_is_native_abi && use python ; then
+               local -x CFLAGS="${CFLAGS} 
-DLOCALEDIR='\"${EPREFIX}/usr/share/locale\"' 
-DDEFAULT_CRACKLIB_DICT=\'${EPREFIX}/usr/lib/cracklib_dict\'"
+               cd python || die
+               distutils-r1_src_compile
+       fi
 }
 
 multilib_src_test() {
        default
 
-       # Make sure we load the freshly built library
-       LD_LIBRARY_PATH="${BUILD_DIR}/lib/.libs:${LD_LIBRARY_PATH}" do_python
+       if multilib_is_native_abi && use python ; then
+               distutils-r1_src_test
+       fi
 }
 
 python_test() {
-       ${EPYTHON} -m unittest test_cracklib || die "Tests fail with ${EPYTHON}"
+       cd "${S}"/python || die
+
+       # Make sure we load the freshly built library
+       local -x 
LD_LIBRARY_PATH="${BUILD_DIR/-${EPYTHON/./_}}/lib/.libs:${BUILD_DIR}/lib:${LD_LIBRARY_PATH}"
+
+       eunittest
 }
 
 multilib_src_install() {
@@ -101,7 +109,10 @@ multilib_src_install() {
        # Move shared libs to /
        gen_usr_ldscript -a crack
 
-       do_python
+       if multilib_is_native_abi && use python ; then
+               cd python || die
+               distutils-r1_src_install
+       fi
 }
 
 multilib_src_install_all() {

diff --git a/sys-libs/cracklib/files/cracklib-2.9.10-python-inc.patch 
b/sys-libs/cracklib/files/cracklib-2.9.10-python-inc.patch
new file mode 100644
index 000000000000..fd9960df0e8f
--- /dev/null
+++ b/sys-libs/cracklib/files/cracklib-2.9.10-python-inc.patch
@@ -0,0 +1,20 @@
+https://github.com/cracklib/cracklib/pull/61
+
+From 802cbc426779489d44d7fc19e695e7d962c65665 Mon Sep 17 00:00:00 2001
+From: Sam James <[email protected]>
+Date: Fri, 17 Mar 2023 02:20:19 +0000
+Subject: [PATCH] python: adjust include path for builddir
+
+We need this for config.h added by 2e0f854bada720ff4fbd13aed4f87087d466274d.
+--- a/python/setup.py.in
++++ b/python/setup.py.in
+@@ -22,7 +22,7 @@ from setuptools import setup, Extension
+ extensions = [
+     Extension("_cracklib",
+         ["@srcdir@/_cracklib.c"],
+-        include_dirs = ["@top_srcdir@/lib"],
++        include_dirs = ["@top_builddir@", "@top_srcdir@/lib"],
+         libraries = ["crack"],
+         library_dirs = ["@top_builddir@/lib/.libs"]),
+ ]
+

Reply via email to