commit:     085795cd3b440d918a7f55ced3d0edf53a1b5c73
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 21 00:49:02 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 21 00:49:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=085795cd

dev-libs/libxslt: backport fixes from master

Mostly test fixes from master for newer libxml2 but also a fix for
CVE-2025-11731 (bug #964753).

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

 dev-libs/libxslt/Manifest                 |   1 +
 dev-libs/libxslt/libxslt-1.1.43-r2.ebuild | 130 ++++++++++++++++++++++++++++++
 2 files changed, 131 insertions(+)

diff --git a/dev-libs/libxslt/Manifest b/dev-libs/libxslt/Manifest
index ad41ca7453ce..ce7f9f874449 100644
--- a/dev-libs/libxslt/Manifest
+++ b/dev-libs/libxslt/Manifest
@@ -1 +1,2 @@
+DIST libxslt-1.1.43-patches.tar.xz 8296 BLAKE2B 
198c01ad6848bda4ce210750a8a8dfb617b5f6b1f74a38d90873a72ecbef77a771de88cbf31c552a7ef73cf90823ecc5859c3846298a50cea065e51cd0995afc
 SHA512 
625d3b99a04bbe653e5a6140d7837b1029ff5b09883258c5075e1298402112af9b9272a7863c32a0751f16fc71e84142cfb5ac134ffbef0731fe0a1ddf4ec0b7
 DIST libxslt-1.1.43.tar.xz 1518364 BLAKE2B 
84d1cff32c78c4eeff4db614214ee1808bcf958d55711b08e7e2191a4343fb61d38d6b3d9b43f6f12be2dc909fced0a5b5905fa2c5ec7761c83125007e1ce265
 SHA512 
96110b0397a8f5791f489127574e2143845feb61bea0581d7b7e3c1101fd0718483bae81a7ce417b971bd678293bfd95daddad0dadd3e256c87d41a69faed85a

diff --git a/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild 
b/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild
new file mode 100644
index 000000000000..e87289ef20b1
--- /dev/null
+++ b/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Note: Please bump this in sync with dev-libs/libxml2.
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit python-r1 multilib-minimal
+
+DESCRIPTION="XSLT libraries and tools"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/libxslt";
+if [[ ${PV} == 9999 ]] ; then
+       EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxslt";
+       inherit autotools git-r3
+else
+       inherit libtool gnome.org
+       SRC_URI+=" 
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz";
+
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="crypt debug debugger examples python static-libs"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+BDEPEND=">=virtual/pkgconfig-1"
+RDEPEND="
+       >=dev-libs/libxml2-2.13:2=[${MULTILIB_USEDEP}]
+       crypt? ( >=dev-libs/libgcrypt-1.5.3:=[${MULTILIB_USEDEP}] )
+       python? (
+               ${PYTHON_DEPS}
+               
>=dev-libs/libxml2-2.13:2=[${MULTILIB_USEDEP},python,${PYTHON_USEDEP}]
+       )
+"
+DEPEND="${RDEPEND}"
+
+MULTILIB_CHOST_TOOLS=(
+       /usr/bin/xslt-config
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+       /usr/include/libxslt/xsltconfig.h
+)
+
+PATCHES=(
+       "${WORKDIR}"/${P}-patches/
+)
+
+src_prepare() {
+       default
+
+       if [[ ${PV} == 9999 ]] ; then
+               eautoreconf
+       else
+               # Prefix always needs elibtoolize if not eautoreconf'd.
+               elibtoolize
+       fi
+}
+
+multilib_src_configure() {
+       libxslt_configure() {
+               ECONF_SOURCE="${S}" econf \
+                       --without-python \
+                       $(use_with crypt crypto) \
+                       $(use_with debug) \
+                       $(use_with debugger) \
+                       $(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 check
+       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
+
+               # Hack until automake release is made for the optimise fix
+               # 
https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097
+               python_foreach_impl python_optimize
+       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
+}

Reply via email to