summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-04-03 06:17:22 +0100
committerSam James <sam@gentoo.org>2022-04-03 06:18:19 +0100
commit81ba9585fad2491563c2c44a96d2eb96a915ff19 (patch)
treebe91af56560a4fa4734f5b908695835ecb58193e /dev-libs/libxslt
parentgnome-extra/gnome-clocks: Version bump to 42.0 (diff)
downloadgentoo-81ba9585fad2491563c2c44a96d2eb96a915ff19.tar.gz
gentoo-81ba9585fad2491563c2c44a96d2eb96a915ff19.tar.bz2
gentoo-81ba9585fad2491563c2c44a96d2eb96a915ff19.zip
dev-libs/libxslt: restore Python bindings to 9999
They're now Python 3 compatible upstream in git & the cross issues have been fixed (much like for libxml2) by soap. Bug: https://bugs.gentoo.org/582130 Thanks-to: David Seifert <soap@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/libxslt')
-rw-r--r--dev-libs/libxslt/libxslt-9999.ebuild72
1 files changed, 59 insertions, 13 deletions
diff --git a/dev-libs/libxslt/libxslt-9999.ebuild b/dev-libs/libxslt/libxslt-9999.ebuild
index c3ea46adc4e8..9ae87bff0559 100644
--- a/dev-libs/libxslt/libxslt-9999.ebuild
+++ b/dev-libs/libxslt/libxslt-9999.ebuild
@@ -3,9 +3,11 @@
EAPI=7
-inherit libtool multilib-minimal
-
# Note: Please bump this in sync with dev-libs/libxml2.
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit libtool python-r1 multilib-minimal
+
DESCRIPTION="XSLT libraries and tools"
HOMEPAGE="https://gitlab.gnome.org/GNOME/libxslt"
if [[ ${PV} == 9999 ]] ; then
@@ -18,12 +20,14 @@ fi
LICENSE="MIT"
SLOT="0"
-IUSE="crypt debug examples static-libs"
+IUSE="crypt debug examples python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
BDEPEND=">=virtual/pkgconfig-1"
RDEPEND="
>=dev-libs/libxml2-2.9.11:2[${MULTILIB_USEDEP}]
crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
+ python? ( ${PYTHON_DEPS} )
"
DEPEND="${RDEPEND}"
@@ -49,25 +53,67 @@ src_prepare() {
}
multilib_src_configure() {
- # Python bindings were dropped as they were Python 2 only at the time
- # Work in 1.1.35+ is occurring to add prelim. Python 3 support, so could
- # restore if something needs them.
- ECONF_SOURCE="${S}" econf \
- --without-python \
- $(use_with crypt crypto) \
- $(use_with debug) \
- $(use_with debug mem-debug) \
- $(use_enable static-libs static) \
- "$@"
+ libxslt_configure() {
+ ECONF_SOURCE="${S}" econf \
+ --without-python \
+ $(use_with crypt crypto) \
+ $(use_with debug) \
+ $(use_with debug mem-debug) \
+ $(use_enable static-libs static) \
+ "$@"
+ }
+
+ # Build Python bindings separately
+ libxslt_configure --without-python
+
+ if multilib_is_native_abi && use python ; then
+ NATIVE_BUILD_DIR="${BUILD_DIR}"
+ python_foreach_impl run_in_build_dir libxslt_configure --with-python
+ fi
+}
+
+libxslt_py_emake() {
+ pushd "${BUILD_DIR}"/python >/dev/null || die
+
+ emake top_builddir="${NATIVE_BUILD_DIR}" "$@"
+
+ popd >/dev/null || die
+}
+
+multilib_src_compile() {
+ default
+
+ if multilib_is_native_abi && use python ; then
+ python_foreach_impl run_in_build_dir libxslt_py_emake all
+ fi
+}
+
+multilib_src_test() {
+ default
+
+ if multilib_is_native_abi && use python ; then
+ python_foreach_impl run_in_build_dir libxslt_py_emake test
+ fi
}
multilib_src_install() {
# "default" does not work here - docs are installed by multilib_src_install_all
emake DESTDIR="${D}" install
+
+ if multilib_is_native_abi && use python; then
+ python_foreach_impl run_in_build_dir libxslt_py_emake \
+ DESTDIR="${D}" \
+ install
+ fi
}
multilib_src_install_all() {
einstalldocs
+ if ! use examples ; then
+ rm -rf "${ED}"/usr/share/doc/${PF}/tutorial{,2} || die
+ rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die
+ fi
+
find "${ED}" -type f -name "*.la" -delete || die
}