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.
Drop the m4 patch that adds CXXFLAGS with unknown reasons of existing; it shouldn't be necessary as no AC_LANG([C++]) or such is used in configure.ac, so lets try without. simplify-python and python static modules disabling patches are kept for now, just having to adjust for the upstream rename of configure.in to configure.ac xslt-config breakage was fixed upstream in a different way, thus should not need that patch anymore, either. xlocale.h glibc removal was handled differently as well, via AC_CHECK_HEADERS([locale.h xlocale.h]) AC_CHECK_FUNCS([strxfrm_l]) with HAVE_LOCALE_H and HAVE_XLOCALE_H in the installed xsltlocale.h, about which I'm not sure how consumers are supposed to handle it when directly or indirectly including xsltlocale.h (presumably doing their own AC_CHECK_HEADERS call?), but that similar before as well via ifdef XSLT_LOCALE_XLOCALE in 1.1.30. "rm -r .. || die" instead of "rm -rf .." while here and fix unnecessary removal of non-existing non-python examples. There actually is a C example, but not installed (due to requiring ICU), so we'd have to doins it instead with USE=examples, but meh. Due to no -f, python examples have to be removed only if use python. Closes: https://bugs.gentoo.org/632214 Bug: https://bugs.gentoo.org/637310 Package-Manager: Portage-2.3.28, Repoman-2.3.9
- Loading branch information
Showing
3 changed files
with
374 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 |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST libxslt-1.1.30.tar.gz 3444029 BLAKE2B 668371393a11c0c16d1549fe771fef7dea96a7208f359578b773c9e7d4c6c4accbe43500e960d58e8f2275682a839582f1f40c1bd984745b8e3944a1d9a97582 SHA512 d24e37398503b6bc29245a993738df51bf3948c4a8f052eedd7eac0a9fcff2d5b54220f37070c46f763e073c34bdb3153c9f129aa0df60c3d7cf7eadbbf15986 | ||
DIST libxslt-1.1.32.tar.gz 3440715 BLAKE2B 8d5dead5788d8d09ab121d6e33397ee8ed8836f573adba4b5f0e3f2e1410acfca0c50dbe06ea3b50a2df819aa01e7522902fbd5270e5329075b854881150ab64 SHA512 e1ed3c103cd4c9897e7dd2360a11f63cf30382b7566ce6fcc81117804e203714446b5a62179ce628c3834b0b32ecdeeceecbdfa417507ce9ed5a107a0ebefb39 |
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,250 @@ | ||
From aa0f7a8d59a9bbd646203d3f14e39e217961f725 Mon Sep 17 00:00:00 2001 | ||
From: Gilles Dartiguelongue <[email protected]> | ||
Date: Wed, 11 Nov 2015 17:49:07 +0100 | ||
Subject: [PATCH] Simplify python setup in autoconf | ||
|
||
AM_PATH_PYTHON does most of the job without using pkg-config as expected | ||
from the rest of the autoconf script. | ||
--- | ||
Makefile.am | 14 +++++-- | ||
configure.ac | 119 ++++++++++++++--------------------------------------- | ||
python/Makefile.am | 28 ++++--------- | ||
3 files changed, 49 insertions(+), 112 deletions(-) | ||
|
||
diff --git a/Makefile.am b/Makefile.am | ||
index ff10f574..65decb3c 100644 | ||
--- a/Makefile.am | ||
+++ b/Makefile.am | ||
@@ -2,9 +2,13 @@ SUBDIRS = \ | ||
libxslt \ | ||
libexslt \ | ||
xsltproc \ | ||
- doc \ | ||
- $(PYTHON_SUBDIR) \ | ||
- tests | ||
+ doc | ||
+ | ||
+if WITH_PYTHON | ||
+SUBDIRS += python | ||
+endif | ||
+ | ||
+SUBDIRS += tests | ||
|
||
DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests | ||
|
||
@@ -51,7 +55,9 @@ tests: dummy | ||
@echo '## Running the regression test suite' | ||
@(cd tests ; $(MAKE) -s tests) | ||
@(cd xsltproc ; $(MAKE) -s tests) | ||
- @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi) | ||
+if WITH_PYTHON | ||
+ @(cd python ; $(MAKE) -s tests) | ||
+endif | ||
|
||
valgrind: | ||
@echo '## Running the regression tests under Valgrind' | ||
diff --git a/configure.ac b/configure.ac | ||
index d6aa3664..0a538944 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -293,90 +293,37 @@ dnl | ||
dnl check for python | ||
dnl | ||
|
||
-PYTHON_VERSION= | ||
-PYTHON_INCLUDES= | ||
-PYTHON_SITE_PACKAGES= | ||
-pythondir= | ||
-AC_ARG_WITH(python, [ --with-python[=DIR] Build Python bindings if found]) | ||
-if test "$with_python" != "no" ; then | ||
- if test -x "$with_python/bin/python" | ||
- then | ||
- echo Found python in $with_python/bin/python | ||
- PYTHON="$with_python/bin/python" | ||
- else | ||
- if test -x "$with_python" | ||
- then | ||
- echo Found python in $with_python | ||
- PYTHON="$with_python" | ||
- else | ||
- if test -x "$PYTHON" | ||
- then | ||
- echo Found python in environment PYTHON=$PYTHON | ||
- with_python=`$PYTHON -c "import sys; print sys.exec_prefix"` | ||
- else | ||
- AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5) | ||
- fi | ||
- fi | ||
- fi | ||
- if test "$PYTHON" != "" | ||
- then | ||
- echo "PYTHON is pointing at $PYTHON" | ||
- PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"` | ||
- echo Found Python version $PYTHON_VERSION | ||
- LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1 | ||
-except: print 0"` | ||
- if test "$LIBXML2_PYTHON" = "1" | ||
- then | ||
- echo Found libxml2-python module | ||
- else | ||
- echo Warning: Missing libxml2-python | ||
- fi | ||
- fi | ||
- if test "$PYTHON_VERSION" != "" | ||
- then | ||
- if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \ | ||
- -d $with_python/lib/python$PYTHON_VERSION/site-packages | ||
- then | ||
- PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION | ||
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' | ||
- else | ||
- if test -r $prefix/include/python$PYTHON_VERSION/Python.h | ||
- then | ||
- PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION | ||
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' | ||
- else | ||
- if test -r /usr/include/python$PYTHON_VERSION/Python.h | ||
- then | ||
- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION | ||
- PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages' | ||
- else | ||
- echo could not find python$PYTHON_VERSION/Python.h | ||
- fi | ||
- fi | ||
- if test ! -d "$PYTHON_SITE_PACKAGES" | ||
- then | ||
- PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"` | ||
- fi | ||
- fi | ||
- PYTHON_LIBS=`python$PYTHON_VERSION-config --libs` | ||
- fi | ||
- if test "$with_python" != "" | ||
- then | ||
- pythondir='$(PYTHON_SITE_PACKAGES)' | ||
- else | ||
- pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages' | ||
- fi | ||
-fi | ||
-AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "") | ||
-if test "$PYTHON_INCLUDES" != "" | ||
-then | ||
- PYTHON_SUBDIR=python | ||
-else | ||
- PYTHON_SUBDIR= | ||
-fi | ||
-AC_SUBST(pythondir) | ||
-AC_SUBST(PYTHON_SUBDIR) | ||
-AC_SUBST(PYTHON_LIBS) | ||
+AC_ARG_WITH([python], | ||
+ AS_HELP_STRING([--with-python], [Build Python bindings if found]) | ||
+) | ||
+ | ||
+AS_IF([test "$with_python" = "yes"], | ||
+ [AM_PATH_PYTHON | ||
+ AC_PATH_TOOL([PYTHON_CONFIG], [python$PYTHON_VERSION-config], [no]) | ||
+ AS_IF([test "$PYTHON_CONFIG" = "no"], | ||
+ [AC_PATH_TOOL([PYTHON_CONFIG], [python-config], [no])]) | ||
+ AS_IF([test "$PYTHON_CONFIG" != "no"], | ||
+ [PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags` | ||
+ PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags` | ||
+ PYTHON_LIBS=`$PYTHON_CONFIG --libs`], | ||
+ [AC_MSG_ERROR([Missing python development files.])]) | ||
+ AC_MSG_CHECKING([libxml2 module in $PYTHON]) | ||
+ LIBXML2_PYTHON=`$PYTHON -c "import sys; | ||
+try: | ||
+ import libxml2 | ||
+ sys.stdout.write('1') | ||
+except: | ||
+ sys.stdout.write('0')"` | ||
+ AS_IF([test "$LIBXML2_PYTHON" = "1"], | ||
+ [AC_MSG_RESULT([yes])], | ||
+ [AC_MSG_RESULT([no]) | ||
+ AC_MSG_WARN([libxml2 python module not found, expect runtime errors])]) | ||
+ ]) | ||
+ | ||
+AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"]) | ||
+AC_SUBST([PYTHON_CFLAGS]) | ||
+AC_SUBST([PYTHON_LDFLAGS]) | ||
+AC_SUBST([PYTHON_LIBS]) | ||
|
||
AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)]) | ||
WITH_CRYPTO=0 | ||
@@ -678,10 +625,6 @@ AC_SUBST(PYTHONSODV) | ||
AC_SUBST(XML_CONFIG) | ||
AC_SUBST(LIBXML_LIBS) | ||
AC_SUBST(LIBXML_CFLAGS) | ||
-AC_SUBST(PYTHON) | ||
-AC_SUBST(PYTHON_VERSION) | ||
-AC_SUBST(PYTHON_INCLUDES) | ||
-AC_SUBST(PYTHON_SITE_PACKAGES) | ||
|
||
XSLT_LIBDIR='-L${libdir}' | ||
XSLT_INCLUDEDIR='-I${includedir}' | ||
diff --git a/python/Makefile.am b/python/Makefile.am | ||
index fa58b78f..3a5ecd6a 100644 | ||
--- a/python/Makefile.am | ||
+++ b/python/Makefile.am | ||
@@ -5,9 +5,9 @@ SUBDIRS= . tests | ||
|
||
AM_CFLAGS = $(LIBXML_CFLAGS) | ||
|
||
-DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION) | ||
+docsdir = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION) | ||
# libxsltclass.txt is generated | ||
-DOCS = TODO | ||
+dist_docs_DATA = TODO | ||
|
||
EXTRA_DIST = \ | ||
libxslt.c \ | ||
@@ -16,10 +16,7 @@ EXTRA_DIST = \ | ||
libxml_wrap.h \ | ||
libxslt_wrap.h \ | ||
libxsl.py \ | ||
- libxslt-python-api.xml \ | ||
- $(DOCS) | ||
- | ||
-libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) -module -avoid-version | ||
+ libxslt-python-api.xml | ||
|
||
if WITH_PYTHON | ||
mylibs = \ | ||
@@ -28,31 +25,22 @@ mylibs = \ | ||
|
||
all-local: libxslt.py | ||
|
||
-python_LTLIBRARIES = libxsltmod.la | ||
+python_PYTHON = libxslt.py | ||
+pyexec_LTLIBRARIES = libxsltmod.la | ||
|
||
libxsltmod_la_CPPFLAGS = \ | ||
- -I$(PYTHON_INCLUDES) \ | ||
-I$(top_srcdir)/libxslt \ | ||
-I$(top_srcdir) \ | ||
- -I../libexslt | ||
+ -I$(top_srcdir)/libexslt \ | ||
+ $(PYTHON_CFLAGS) | ||
libxsltmod_la_SOURCES = libxslt.c types.c | ||
nodist_libxsltmod_la_SOURCES = libxslt-py.c | ||
libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS) | ||
+libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version | ||
|
||
libxslt.py: $(srcdir)/libxsl.py libxsltclass.py | ||
cat $(srcdir)/libxsl.py libxsltclass.py > $@ | ||
|
||
-install-data-local: | ||
- $(MKDIR_P) $(DESTDIR)$(pythondir) | ||
- $(INSTALL) -m 0644 libxslt.py $(DESTDIR)$(pythondir) | ||
- $(MKDIR_P) $(DESTDIR)$(DOCS_DIR) | ||
- @(for doc in $(DOCS) ; \ | ||
- do $(INSTALL) -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done) | ||
- | ||
-uninstall-local: | ||
- rm -f $(DESTDIR)$(pythondir)/libxslt.py | ||
- rm -rf $(DESTDIR)$(DOCS_DIR) | ||
- | ||
GENERATE = generator.py | ||
API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml | ||
GENERATED= libxsltclass.py \ | ||
-- | ||
2.14.1 | ||
|
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,123 @@ | ||
# Copyright 1999-2018 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 ~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 elibc_Darwin" | ||
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 ) | ||
|
||
# Simplify python setup | ||
# https://bugzilla.gnome.org/show_bug.cgi?id=758095 | ||
eapply "${FILESDIR}"/${PV}-simplify-python.patch | ||
eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch | ||
|
||
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 && use python; then | ||
rm -r "${ED}"/usr/share/doc/${PF}/python/examples || die | ||
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}" "$@" | ||
} |