commit:     ccfb9e9f8433a844b3d2f2d9a1dd0c0d05e1f6df
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  3 19:00:18 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Feb  3 19:03:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccfb9e9f

sys-apps/kmod: enable py3.11 and add python bindings smoketest

Thanks to Andrés for the suggestion for the Python test. Now we can
add future Python implementations with confidence.

Closes: https://bugs.gentoo.org/408915
Thanks-to: Andrés Becerra Sandoval <andres.becerra <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/kmod/kmod-30-r1.ebuild | 23 +++++++++++++++++++++--
 sys-apps/kmod/kmod-9999.ebuild  | 25 ++++++++++++++++++++++---
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/sys-apps/kmod/kmod-30-r1.ebuild b/sys-apps/kmod/kmod-30-r1.ebuild
index 9cb6a84d3e0b..18c0daa0974a 100644
--- a/sys-apps/kmod/kmod-30-r1.ebuild
+++ b/sys-apps/kmod/kmod-30-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{9..11} )
 
 inherit autotools libtool bash-completion-r1 python-r1
 
@@ -26,7 +26,7 @@ IUSE="debug doc +lzma pkcs7 python static-libs +tools +zlib 
+zstd"
 # I was also told that the test suite is intended for kmod developers.
 # So we have to restrict it.
 # See bug #408915.
-RESTRICT="test"
+#RESTRICT="test"
 
 # - >=zlib-1.2.6 required because of bug #427130
 # - Block systemd below 217 for 
-static-nodes-indicate-that-creation-of-static-nodes-.patch
@@ -139,6 +139,25 @@ src_compile() {
        fi
 }
 
+src_test() {
+       python_test() {
+               mkdir "${T}/test-${EPYTHON}" || die
+               emake -C "${BUILD_DIR}" DESTDIR="${T}/test-${EPYTHON}" \
+                                VPATH="${native_builddir}:${S}" \
+                                install-pkgpyexecLTLIBRARIES \
+                                install-dist_pkgpyexecPYTHON
+
+               # Smoke test based on https://bugs.gentoo.org/891975#c5
+               local -x 
PYTHONPATH="${T}/test-${EPYTHON}/usr/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
+               ${EPYTHON} -c 'import kmod; km = kmod.Kmod(); print([(m.name, 
m.size) for m in km.loaded()])' || die
+               rm -r "${T}/test-${EPYTHON}" || die
+       }
+
+       if use python; then
+               python_foreach_impl python_test
+       fi
+}
+
 src_install() {
        emake -C "${BUILD_DIR}" DESTDIR="${D}" install
 

diff --git a/sys-apps/kmod/kmod-9999.ebuild b/sys-apps/kmod/kmod-9999.ebuild
index 872dcbbc2737..50b51480db27 100644
--- a/sys-apps/kmod/kmod-9999.ebuild
+++ b/sys-apps/kmod/kmod-9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{9..10} )
+PYTHON_COMPAT=( python3_{9..11} )
 
 inherit autotools libtool bash-completion-r1 python-r1
 
@@ -26,7 +26,7 @@ IUSE="debug doc +lzma pkcs7 python static-libs +tools +zlib 
+zstd"
 # I was also told that the test suite is intended for kmod developers.
 # So we have to restrict it.
 # See bug #408915.
-RESTRICT="test"
+#RESTRICT="test"
 
 # - >=zlib-1.2.6 required because of bug #427130
 # - Block systemd below 217 for 
-static-nodes-indicate-that-creation-of-static-nodes-.patch
@@ -60,7 +60,7 @@ fi
 
 REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
 
-DOCS=( NEWS README TODO )
+DOCS=( NEWS README.md TODO )
 
 src_prepare() {
        default
@@ -132,6 +132,25 @@ src_compile() {
        fi
 }
 
+src_test() {
+       python_test() {
+               mkdir "${T}/test-${EPYTHON}" || die
+               emake -C "${BUILD_DIR}" DESTDIR="${T}/test-${EPYTHON}" \
+                                VPATH="${native_builddir}:${S}" \
+                                install-pkgpyexecLTLIBRARIES \
+                                install-dist_pkgpyexecPYTHON
+
+               # Smoke test based on https://bugs.gentoo.org/891975#c5
+               local -x 
PYTHONPATH="${T}/test-${EPYTHON}/usr/lib/${EPYTHON}/site-packages:${PYTHONPATH}"
+               ${EPYTHON} -c 'import kmod; km = kmod.Kmod(); print([(m.name, 
m.size) for m in km.loaded()])' || die
+               rm -r "${T}/test-${EPYTHON}" || die
+       }
+
+       if use python; then
+               python_foreach_impl python_test
+       fi
+}
+
 src_install() {
        emake -C "${BUILD_DIR}" DESTDIR="${D}" install
 

Reply via email to