forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-libs/libxslt: Fix glibc-2.26 compatibility. Patch by Quentin Mins…
…ter. This patch is much less intrusive than the upstream solution, so using it for now. Revision bump since the current version unconditionally includes in public headers xlocale.h ... Closes: https://bugs.gentoo.org/632214 Package-Manager: Portage-2.3.13, Repoman-2.3.4
- Loading branch information
Showing
2 changed files
with
168 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
diff --git a/configure.in b/configure.in | ||
index d6aa366..20aafb8 100644 | ||
--- a/configure.in | ||
+++ b/configure.in | ||
@@ -165,11 +165,11 @@ XSLT_LOCALE_XLOCALE=0 | ||
XSLT_LOCALE_WINAPI=0 | ||
|
||
AC_CHECK_HEADERS([locale.h xlocale.h]) | ||
-if test $ac_cv_header_xlocale_h = yes; then | ||
+if test $ac_cv_header_locale_h = yes; then | ||
dnl | ||
dnl Check for generic locale_t declaration | ||
dnl | ||
-AC_MSG_CHECKING([if xlocale program link]) | ||
+AC_MSG_CHECKING([if locale program link]) | ||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ | ||
#ifdef HAVE_LOCALE_H | ||
#include <locale.h> | ||
diff --git a/libxslt/xsltlocale.h b/libxslt/xsltlocale.h | ||
index 8a9ca15..2f64424 100644 | ||
--- a/libxslt/xsltlocale.h | ||
+++ b/libxslt/xsltlocale.h | ||
@@ -17,7 +17,9 @@ | ||
#ifdef XSLT_LOCALE_XLOCALE | ||
|
||
#include <locale.h> | ||
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 26 | ||
#include <xlocale.h> | ||
+#endif | ||
|
||
#ifdef __GLIBC__ | ||
/*locale_t is defined only if _GNU_SOURCE is defined*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
PYTHON_COMPAT=( python2_7 ) | ||
PYTHON_REQ_USE="xml" | ||
|
||
inherit autotools ltprune python-r1 toolchain-funcs multilib-minimal | ||
|
||
DESCRIPTION="XSLT libraries and tools" | ||
HOMEPAGE="http://www.xmlsoft.org/" | ||
SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz" | ||
|
||
LICENSE="MIT" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" | ||
|
||
IUSE="crypt debug examples python static-libs" | ||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" | ||
|
||
RDEPEND=" | ||
>=dev-libs/libxml2-2.9.1-r5:2[${MULTILIB_USEDEP}] | ||
crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] ) | ||
python? ( | ||
${PYTHON_DEPS} | ||
dev-libs/libxml2:2[python,${PYTHON_USEDEP}] ) | ||
" | ||
DEPEND="${RDEPEND}" | ||
|
||
MULTILIB_CHOST_TOOLS=( | ||
/usr/bin/xslt-config | ||
) | ||
|
||
MULTILIB_WRAPPED_HEADERS=( | ||
/usr/include/libxslt/xsltconfig.h | ||
) | ||
|
||
src_prepare() { | ||
default | ||
|
||
DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO ) | ||
|
||
# https://bugzilla.gnome.org/show_bug.cgi?id=684621 | ||
eapply "${FILESDIR}"/${PN}.m4-${PN}-1.1.26.patch | ||
|
||
# Simplify python setup | ||
# https://bugzilla.gnome.org/show_bug.cgi?id=758095 | ||
eapply "${FILESDIR}"/${PN}-1.1.30-simplify-python.patch | ||
eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch | ||
|
||
# Fix xslt-config | ||
# https://bugs.gentoo.org/630784 | ||
eapply "${FILESDIR}"/1.1.30-unbreak-xslt-config.patch | ||
|
||
# Fix build and headers with glibc-2.26, bug 632214 | ||
eapply "${FILESDIR}"/${PN}-1.1.30-glibc226.patch | ||
|
||
mv configure.{in,ac} || die | ||
|
||
eautoreconf | ||
# If eautoreconf'd with new autoconf, then epunt_cxx is not necessary | ||
# and it is propably otherwise too if upstream generated with new | ||
# autoconf | ||
# epunt_cxx | ||
# But Prefix always needs elibtoolize if not eautoreconf'd. | ||
# elibtoolize | ||
} | ||
|
||
multilib_src_configure() { | ||
libxslt_configure() { | ||
ECONF_SOURCE="${S}" econf \ | ||
--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \ | ||
--with-html-subdir=html \ | ||
$(use_with crypt crypto) \ | ||
$(use_with debug) \ | ||
$(use_with debug mem-debug) \ | ||
$(use_enable static-libs static) \ | ||
"$@" | ||
} | ||
|
||
libxslt_py_configure() { | ||
mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist | ||
run_in_build_dir libxslt_configure --with-python | ||
} | ||
|
||
libxslt_configure --without-python # build python bindings separately | ||
|
||
if multilib_is_native_abi && use python; then | ||
python_foreach_impl libxslt_py_configure | ||
fi | ||
} | ||
|
||
multilib_src_compile() { | ||
default | ||
multilib_is_native_abi && use python && libxslt_foreach_py_emake all | ||
} | ||
|
||
multilib_src_test() { | ||
default | ||
multilib_is_native_abi && use python && libxslt_foreach_py_emake test | ||
} | ||
|
||
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 | ||
libxslt_foreach_py_emake \ | ||
DESTDIR="${D}" \ | ||
docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \ | ||
EXAMPLE_DIR="${EPREFIX}"/usr/share/doc/${PF}/python/examples \ | ||
install | ||
python_foreach_impl python_optimize | ||
fi | ||
} | ||
|
||
multilib_src_install_all() { | ||
einstalldocs | ||
|
||
if ! use examples; then | ||
rm -rf "${ED}"/usr/share/doc/${PF}/examples | ||
rm -rf "${ED}"/usr/share/doc/${PF}/python/examples | ||
fi | ||
|
||
prune_libtool_files --modules | ||
} | ||
|
||
libxslt_foreach_py_emake() { | ||
libxslt_py_emake() { | ||
pushd "${BUILD_DIR}/python" > /dev/null || die | ||
emake "$@" | ||
popd > /dev/null | ||
} | ||
local native_builddir=${BUILD_DIR} | ||
python_foreach_impl libxslt_py_emake top_builddir="${native_builddir}" "$@" | ||
} |