mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-16 09:26:58 +02:00
dev-libs/libxslt: Sync with gentoo
It's from gentoo commit 229a5092cf8a418e4a2edae8afcbf2f3e45bde83. It drops the python dependency.
This commit is contained in:
parent
a195eddde8
commit
5c20434b8d
@ -1 +1,2 @@
|
|||||||
DIST libxslt-1.1.30.tar.gz 3444029 BLAKE2B 668371393a11c0c16d1549fe771fef7dea96a7208f359578b773c9e7d4c6c4accbe43500e960d58e8f2275682a839582f1f40c1bd984745b8e3944a1d9a97582 SHA512 d24e37398503b6bc29245a993738df51bf3948c4a8f052eedd7eac0a9fcff2d5b54220f37070c46f763e073c34bdb3153c9f129aa0df60c3d7cf7eadbbf15986
|
DIST libxslt-1.1.34.tar.gz 3552258 BLAKE2B f043a0357e0705ab68041adf4031a6b3e0b5c3d396691c988a34963a0ee0ebe3bede2d1d7a0c5f0c42c046183653c94f4b51e10e35980a039c8cad446e84ad86 SHA512 1516a11ad608b04740674060d2c5d733b88889de5e413b9a4e8bf8d1a90d712149df6d2b1345b615f529d7c7d3fa6dae12e544da828b39c7d415e54c0ee0776b
|
||||||
|
DIST libxslt-1.1.34.tar.gz.asc 488 BLAKE2B fff407ab2c2bbafa804e5a1f84ca447c706d75fd7489c99ac6040b625d0417a0e6c189be3457e6cc6ecd6b7860829875ea95a132fef24f8a532156361f8a5308 SHA512 9b155d4571daede99cdbf2813a85fb04812737b5e23d3f7c9840225b38f3dbf171623a21645daaee190e7ff9ba38bde932922e96a2a2312c203ffa9917c3baea
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
From 9608d20739b36087f0e6865cc924769d3b286188 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gilles Dartiguelongue <eva@gentoo.org>
|
|
||||||
Date: Tue, 12 Sep 2017 23:44:35 +0200
|
|
||||||
Subject: [PATCH] Move XML_CONFIG assignment to unbreak xslt-config
|
|
||||||
|
|
||||||
Bug: https://bugs.gentoo.org/630784
|
|
||||||
---
|
|
||||||
configure.in | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.in b/configure.in
|
|
||||||
index e6f649cd..49e6b6cf 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -518,9 +518,6 @@ else
|
|
||||||
LIBXML_MANUAL_SEARCH=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
-if test "x$LIBXML_MANUAL_SEARCH" != "xno"
|
|
||||||
-then
|
|
||||||
-
|
|
||||||
dnl
|
|
||||||
dnl where is xml2-config
|
|
||||||
dnl
|
|
||||||
@@ -534,6 +531,9 @@ else
|
|
||||||
AC_PATH_TOOL([XML_CONFIG], [xml2-config], [false])
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if test "x$LIBXML_MANUAL_SEARCH" != "xno"
|
|
||||||
+then
|
|
||||||
+
|
|
||||||
dnl
|
|
||||||
dnl imported from libxml2, c.f. #77827
|
|
||||||
dnl
|
|
||||||
--
|
|
||||||
2.14.1
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From 06c9dba42097b06a18c81bb54a8da8b2bfaf991d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gilles Dartiguelongue <eva@gentoo.org>
|
|
||||||
Date: Wed, 11 Nov 2015 20:01:14 +0100
|
|
||||||
Subject: [PATCH 3/3] Disable static module for python module
|
|
||||||
|
|
||||||
---
|
|
||||||
python/Makefile.am | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/python/Makefile.am b/python/Makefile.am
|
|
||||||
index cc13c62..62afd1b 100644
|
|
||||||
--- a/python/Makefile.am
|
|
||||||
+++ b/python/Makefile.am
|
|
||||||
@@ -27,6 +27,7 @@ python_PYTHON = libxslt.py
|
|
||||||
pyexec_LTLIBRARIES = libxsltmod.la
|
|
||||||
|
|
||||||
libxsltmod_la_CPPFLAGS = \
|
|
||||||
+ -shared \
|
|
||||||
-I$(top_srcdir)/libxslt \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/libexslt \
|
|
||||||
@@ -34,7 +35,7 @@ libxsltmod_la_CPPFLAGS = \
|
|
||||||
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
|
|
||||||
+libxsltmod_la_LDFLAGS = $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version -shared
|
|
||||||
|
|
||||||
libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
|
|
||||||
cat $(srcdir)/libxsl.py libxsltclass.py > $@
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
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*/
|
|
@ -1,250 +0,0 @@
|
|||||||
From aa0f7a8d59a9bbd646203d3f14e39e217961f725 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gilles Dartiguelongue <eva@gentoo.org>
|
|
||||||
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.in | 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.in b/configure.in
|
|
||||||
index d6aa3664..0a538944 100644
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -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
|
|
||||||
|
|
@ -0,0 +1,194 @@
|
|||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/issues/56
|
||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/commit/50f9c9cd3b7dfe9b3c8c795247752d1fdcadcac8
|
||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/issues/51
|
||||||
|
https://bugs.gentoo.org/790218
|
||||||
|
|
||||||
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||||
|
Date: Sat, 12 Jun 2021 20:02:53 +0200
|
||||||
|
Subject: [PATCH] Fix use-after-free in xsltApplyTemplates
|
||||||
|
|
||||||
|
xsltApplyTemplates without a select expression could delete nodes in
|
||||||
|
the source document.
|
||||||
|
|
||||||
|
1. Text nodes with strippable whitespace
|
||||||
|
|
||||||
|
Whitespace from input documents is already stripped, so there's no
|
||||||
|
need to strip it again. Under certain circumstances, xsltApplyTemplates
|
||||||
|
could be fooled into deleting text nodes that are still referenced,
|
||||||
|
resulting in a use-after-free.
|
||||||
|
|
||||||
|
2. The DTD
|
||||||
|
|
||||||
|
The DTD was only unlinked, but there's no good reason to do this just
|
||||||
|
now. Maybe it was meant as a micro-optimization.
|
||||||
|
|
||||||
|
3. Unknown nodes
|
||||||
|
|
||||||
|
Useless and dangerous as well, especially with XInclude nodes.
|
||||||
|
See https://gitlab.gnome.org/GNOME/libxml2/-/issues/268
|
||||||
|
|
||||||
|
Simply stop trying to uselessly delete nodes when applying a template.
|
||||||
|
This part of the code is probably a leftover from a time where
|
||||||
|
xsltApplyStripSpaces wasn't implemented yet. Also note that
|
||||||
|
xsltApplyTemplates with a select expression never tried to delete
|
||||||
|
nodes.
|
||||||
|
|
||||||
|
Also stop xsltDefaultProcessOneNode from deleting nodes for the same
|
||||||
|
reasons.
|
||||||
|
|
||||||
|
This fixes CVE-2021-30560.
|
||||||
|
--- a/libxslt/transform.c
|
||||||
|
+++ b/libxslt/transform.c
|
||||||
|
@@ -1895,7 +1895,7 @@ static void
|
||||||
|
xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||||
|
xsltStackElemPtr params) {
|
||||||
|
xmlNodePtr copy;
|
||||||
|
- xmlNodePtr delete = NULL, cur;
|
||||||
|
+ xmlNodePtr cur;
|
||||||
|
int nbchild = 0, oldSize;
|
||||||
|
int childno = 0, oldPos;
|
||||||
|
xsltTemplatePtr template;
|
||||||
|
@@ -1968,54 +1968,13 @@ xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
- * Handling of Elements: first pass, cleanup and counting
|
||||||
|
+ * Handling of Elements: first pass, counting
|
||||||
|
*/
|
||||||
|
cur = node->children;
|
||||||
|
while (cur != NULL) {
|
||||||
|
- switch (cur->type) {
|
||||||
|
- case XML_TEXT_NODE:
|
||||||
|
- case XML_CDATA_SECTION_NODE:
|
||||||
|
- case XML_DOCUMENT_NODE:
|
||||||
|
- case XML_HTML_DOCUMENT_NODE:
|
||||||
|
- case XML_ELEMENT_NODE:
|
||||||
|
- case XML_PI_NODE:
|
||||||
|
- case XML_COMMENT_NODE:
|
||||||
|
- nbchild++;
|
||||||
|
- break;
|
||||||
|
- case XML_DTD_NODE:
|
||||||
|
- /* Unlink the DTD, it's still reachable using doc->intSubset */
|
||||||
|
- if (cur->next != NULL)
|
||||||
|
- cur->next->prev = cur->prev;
|
||||||
|
- if (cur->prev != NULL)
|
||||||
|
- cur->prev->next = cur->next;
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||||
|
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||||
|
- "xsltDefaultProcessOneNode: skipping node type %d\n",
|
||||||
|
- cur->type));
|
||||||
|
-#endif
|
||||||
|
- delete = cur;
|
||||||
|
- }
|
||||||
|
+ if (IS_XSLT_REAL_NODE(cur))
|
||||||
|
+ nbchild++;
|
||||||
|
cur = cur->next;
|
||||||
|
- if (delete != NULL) {
|
||||||
|
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||||
|
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||||
|
- "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
|
||||||
|
-#endif
|
||||||
|
- xmlUnlinkNode(delete);
|
||||||
|
- xmlFreeNode(delete);
|
||||||
|
- delete = NULL;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- if (delete != NULL) {
|
||||||
|
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||||
|
- XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
|
||||||
|
- "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
|
||||||
|
-#endif
|
||||||
|
- xmlUnlinkNode(delete);
|
||||||
|
- xmlFreeNode(delete);
|
||||||
|
- delete = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -4864,7 +4823,7 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||||
|
xsltStylePreCompPtr comp = (xsltStylePreCompPtr) castedComp;
|
||||||
|
#endif
|
||||||
|
int i;
|
||||||
|
- xmlNodePtr cur, delNode = NULL, oldContextNode;
|
||||||
|
+ xmlNodePtr cur, oldContextNode;
|
||||||
|
xmlNodeSetPtr list = NULL, oldList;
|
||||||
|
xsltStackElemPtr withParams = NULL;
|
||||||
|
int oldXPProximityPosition, oldXPContextSize;
|
||||||
|
@@ -4998,73 +4957,9 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
|
||||||
|
else
|
||||||
|
cur = NULL;
|
||||||
|
while (cur != NULL) {
|
||||||
|
- switch (cur->type) {
|
||||||
|
- case XML_TEXT_NODE:
|
||||||
|
- if ((IS_BLANK_NODE(cur)) &&
|
||||||
|
- (cur->parent != NULL) &&
|
||||||
|
- (cur->parent->type == XML_ELEMENT_NODE) &&
|
||||||
|
- (ctxt->style->stripSpaces != NULL)) {
|
||||||
|
- const xmlChar *val;
|
||||||
|
-
|
||||||
|
- if (cur->parent->ns != NULL) {
|
||||||
|
- val = (const xmlChar *)
|
||||||
|
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||||
|
- cur->parent->name,
|
||||||
|
- cur->parent->ns->href);
|
||||||
|
- if (val == NULL) {
|
||||||
|
- val = (const xmlChar *)
|
||||||
|
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||||
|
- BAD_CAST "*",
|
||||||
|
- cur->parent->ns->href);
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- val = (const xmlChar *)
|
||||||
|
- xmlHashLookup2(ctxt->style->stripSpaces,
|
||||||
|
- cur->parent->name, NULL);
|
||||||
|
- }
|
||||||
|
- if ((val != NULL) &&
|
||||||
|
- (xmlStrEqual(val, (xmlChar *) "strip"))) {
|
||||||
|
- delNode = cur;
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- /* Intentional fall-through */
|
||||||
|
- case XML_ELEMENT_NODE:
|
||||||
|
- case XML_DOCUMENT_NODE:
|
||||||
|
- case XML_HTML_DOCUMENT_NODE:
|
||||||
|
- case XML_CDATA_SECTION_NODE:
|
||||||
|
- case XML_PI_NODE:
|
||||||
|
- case XML_COMMENT_NODE:
|
||||||
|
- xmlXPathNodeSetAddUnique(list, cur);
|
||||||
|
- break;
|
||||||
|
- case XML_DTD_NODE:
|
||||||
|
- /* Unlink the DTD, it's still reachable
|
||||||
|
- * using doc->intSubset */
|
||||||
|
- if (cur->next != NULL)
|
||||||
|
- cur->next->prev = cur->prev;
|
||||||
|
- if (cur->prev != NULL)
|
||||||
|
- cur->prev->next = cur->next;
|
||||||
|
- break;
|
||||||
|
- case XML_NAMESPACE_DECL:
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||||
|
- XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
|
||||||
|
- "xsltApplyTemplates: skipping cur type %d\n",
|
||||||
|
- cur->type));
|
||||||
|
-#endif
|
||||||
|
- delNode = cur;
|
||||||
|
- }
|
||||||
|
+ if (IS_XSLT_REAL_NODE(cur))
|
||||||
|
+ xmlXPathNodeSetAddUnique(list, cur);
|
||||||
|
cur = cur->next;
|
||||||
|
- if (delNode != NULL) {
|
||||||
|
-#ifdef WITH_XSLT_DEBUG_PROCESS
|
||||||
|
- XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
|
||||||
|
- "xsltApplyTemplates: removing ignorable blank cur\n"));
|
||||||
|
-#endif
|
||||||
|
- xmlUnlinkNode(delNode);
|
||||||
|
- xmlFreeNode(delNode);
|
||||||
|
- delNode = NULL;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GitLab
|
@ -0,0 +1,120 @@
|
|||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/commit/9ae2f94df1721e002941b40665efb762aefcea1a
|
||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/commit/824657768aea2cce9c23e72ba8085cb5e44350c7
|
||||||
|
https://gitlab.gnome.org/GNOME/libxslt/-/commit/77c26bad0433541f486b1e7ced44ca9979376908
|
||||||
|
|
||||||
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||||
|
Date: Mon, 17 Aug 2020 03:42:11 +0200
|
||||||
|
Subject: [PATCH] Stop using maxParserDepth XPath limit
|
||||||
|
|
||||||
|
This will be removed again from libxml2.
|
||||||
|
--- a/tests/fuzz/fuzz.c
|
||||||
|
+++ b/tests/fuzz/fuzz.c
|
||||||
|
@@ -183,8 +183,7 @@ xsltFuzzXPathInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
|
||||||
|
xpctxt = tctxt->xpathCtxt;
|
||||||
|
|
||||||
|
/* Resource limits to avoid timeouts and call stack overflows */
|
||||||
|
- xpctxt->maxParserDepth = 15;
|
||||||
|
- xpctxt->maxDepth = 100;
|
||||||
|
+ xpctxt->maxDepth = 500;
|
||||||
|
xpctxt->opLimit = 500000;
|
||||||
|
|
||||||
|
/* Test namespaces used in xpath.xml */
|
||||||
|
@@ -317,8 +316,7 @@ xsltFuzzXsltInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
|
||||||
|
|
||||||
|
static void
|
||||||
|
xsltSetXPathResourceLimits(xmlXPathContextPtr ctxt) {
|
||||||
|
- ctxt->maxParserDepth = 15;
|
||||||
|
- ctxt->maxDepth = 100;
|
||||||
|
+ ctxt->maxDepth = 200;
|
||||||
|
ctxt->opLimit = 100000;
|
||||||
|
}
|
||||||
|
|
||||||
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||||
|
Date: Mon, 17 Aug 2020 04:27:13 +0200
|
||||||
|
Subject: [PATCH] Transfer XPath limits to XPtr context
|
||||||
|
|
||||||
|
Expressions like document('doc.xml#xpointer(evil_expr)') ignored the
|
||||||
|
XPath limits.
|
||||||
|
--- a/libxslt/functions.c
|
||||||
|
+++ b/libxslt/functions.c
|
||||||
|
@@ -178,10 +178,22 @@ xsltDocumentFunctionLoadDocument(xmlXPathParserContextPtr ctxt, xmlChar* URI)
|
||||||
|
goto out_fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LIBXML_VERSION >= 20911 || \
|
||||||
|
+ defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
|
||||||
|
+ xptrctxt->opLimit = ctxt->context->opLimit;
|
||||||
|
+ xptrctxt->opCount = ctxt->context->opCount;
|
||||||
|
+ xptrctxt->maxDepth = ctxt->context->maxDepth - ctxt->context->depth;
|
||||||
|
+
|
||||||
|
+ resObj = xmlXPtrEval(fragment, xptrctxt);
|
||||||
|
+
|
||||||
|
+ ctxt->context->opCount = xptrctxt->opCount;
|
||||||
|
+#else
|
||||||
|
resObj = xmlXPtrEval(fragment, xptrctxt);
|
||||||
|
- xmlXPathFreeContext(xptrctxt);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ xmlXPathFreeContext(xptrctxt);
|
||||||
|
+#endif /* LIBXML_XPTR_ENABLED */
|
||||||
|
+
|
||||||
|
if (resObj == NULL)
|
||||||
|
goto out_fragment;
|
||||||
|
|
||||||
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||||
|
Date: Wed, 26 Aug 2020 00:34:38 +0200
|
||||||
|
Subject: [PATCH] Don't set maxDepth in XPath contexts
|
||||||
|
|
||||||
|
The maximum recursion depth is hardcoded in libxml2 now.
|
||||||
|
--- a/libxslt/functions.c
|
||||||
|
+++ b/libxslt/functions.c
|
||||||
|
@@ -182,7 +182,7 @@ xsltDocumentFunctionLoadDocument(xmlXPathParserContextPtr ctxt, xmlChar* URI)
|
||||||
|
defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
|
||||||
|
xptrctxt->opLimit = ctxt->context->opLimit;
|
||||||
|
xptrctxt->opCount = ctxt->context->opCount;
|
||||||
|
- xptrctxt->maxDepth = ctxt->context->maxDepth - ctxt->context->depth;
|
||||||
|
+ xptrctxt->depth = ctxt->context->depth;
|
||||||
|
|
||||||
|
resObj = xmlXPtrEval(fragment, xptrctxt);
|
||||||
|
|
||||||
|
--- a/tests/fuzz/fuzz.c
|
||||||
|
+++ b/tests/fuzz/fuzz.c
|
||||||
|
@@ -183,7 +183,6 @@ xsltFuzzXPathInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
|
||||||
|
xpctxt = tctxt->xpathCtxt;
|
||||||
|
|
||||||
|
/* Resource limits to avoid timeouts and call stack overflows */
|
||||||
|
- xpctxt->maxDepth = 500;
|
||||||
|
xpctxt->opLimit = 500000;
|
||||||
|
|
||||||
|
/* Test namespaces used in xpath.xml */
|
||||||
|
@@ -314,12 +313,6 @@ xsltFuzzXsltInit(int *argc_p ATTRIBUTE_UNUSED, char ***argv_p,
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
-xsltSetXPathResourceLimits(xmlXPathContextPtr ctxt) {
|
||||||
|
- ctxt->maxDepth = 200;
|
||||||
|
- ctxt->opLimit = 100000;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
xmlChar *
|
||||||
|
xsltFuzzXslt(const char *data, size_t size) {
|
||||||
|
xmlDocPtr xsltDoc;
|
||||||
|
@@ -349,7 +342,7 @@ xsltFuzzXslt(const char *data, size_t size) {
|
||||||
|
xmlFreeDoc(xsltDoc);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
- xsltSetXPathResourceLimits(sheet->xpathCtxt);
|
||||||
|
+ sheet->xpathCtxt->opLimit = 100000;
|
||||||
|
sheet->xpathCtxt->opCount = 0;
|
||||||
|
if (xsltParseStylesheetUser(sheet, xsltDoc) != 0) {
|
||||||
|
xsltFreeStylesheet(sheet);
|
||||||
|
@@ -361,7 +354,7 @@ xsltFuzzXslt(const char *data, size_t size) {
|
||||||
|
xsltSetCtxtSecurityPrefs(sec, ctxt);
|
||||||
|
ctxt->maxTemplateDepth = 100;
|
||||||
|
ctxt->opLimit = 20000;
|
||||||
|
- xsltSetXPathResourceLimits(ctxt->xpathCtxt);
|
||||||
|
+ ctxt->xpathCtxt->opLimit = 100000;
|
||||||
|
ctxt->xpathCtxt->opCount = sheet->xpathCtxt->opCount;
|
||||||
|
|
||||||
|
result = xsltApplyStylesheetUser(sheet, doc, NULL, NULL, NULL, ctxt);
|
@ -1,38 +0,0 @@
|
|||||||
diff -ur libxslt-1.1.26.orig/libxslt.m4 libxslt-1.1.26/libxslt.m4
|
|
||||||
--- libxslt-1.1.26.orig/libxslt.m4 2009-05-12 09:29:34.000000000 +0300
|
|
||||||
+++ libxslt-1.1.26/libxslt.m4 2009-10-07 17:03:04.000000000 +0300
|
|
||||||
@@ -52,8 +52,10 @@
|
|
||||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
|
||||||
if test "x$enable_xslttest" = "xyes" ; then
|
|
||||||
ac_save_CFLAGS="$CFLAGS"
|
|
||||||
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
|
||||||
ac_save_LIBS="$LIBS"
|
|
||||||
CFLAGS="$CFLAGS $XSLT_CFLAGS"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS $XSLT_CFLAGS"
|
|
||||||
LIBS="$XSLT_LIBS $LIBS"
|
|
||||||
dnl
|
|
||||||
dnl Now check if the installed libxslt is sufficiently new.
|
|
||||||
@@ -138,6 +140,7 @@
|
|
||||||
}
|
|
||||||
],, no_xslt=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
|
||||||
LIBS="$ac_save_LIBS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
@@ -158,6 +161,7 @@
|
|
||||||
else
|
|
||||||
echo "*** Could not run libxslt test program, checking why..."
|
|
||||||
CFLAGS="$CFLAGS $XSLT_CFLAGS"
|
|
||||||
+ CXXFLAGS="$CXXFLAGS $XSLT_CFLAGS"
|
|
||||||
LIBS="$LIBS $XSLT_LIBS"
|
|
||||||
AC_TRY_LINK([
|
|
||||||
#include <libxslt/xslt.h>
|
|
||||||
@@ -177,6 +181,7 @@
|
|
||||||
echo "*** or that you have moved LIBXSLT since it was installed. In the latter case, you"
|
|
||||||
echo "*** may want to edit the xslt-config script: $XSLT_CONFIG" ])
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
|
||||||
LIBS="$ac_save_LIBS"
|
|
||||||
fi
|
|
||||||
fi
|
|
@ -1,136 +0,0 @@
|
|||||||
# 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 )
|
|
||||||
|
|
||||||
# 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, breaks Darwin
|
|
||||||
use elibc_Darwin || 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}" "$@"
|
|
||||||
}
|
|
67
sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.34-r1.ebuild
vendored
Normal file
67
sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.34-r1.ebuild
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# Copyright 1999-2021 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/danielveillard.asc
|
||||||
|
inherit libtool multilib-minimal verify-sig
|
||||||
|
|
||||||
|
# Note: Please bump this in sync with dev-libs/libxml2.
|
||||||
|
DESCRIPTION="XSLT libraries and tools"
|
||||||
|
HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxslt"
|
||||||
|
SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
|
||||||
|
SRC_URI+=" verify-sig? ( ftp://xmlsoft.org/${PN}/${P}.tar.gz.asc )"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
|
IUSE="crypt debug examples static-libs elibc_Darwin"
|
||||||
|
|
||||||
|
BDEPEND=">=virtual/pkgconfig-1
|
||||||
|
verify-sig? ( app-crypt/openpgp-keys-danielveillard )"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/libxml2-2.9.10:2[${MULTILIB_USEDEP}]
|
||||||
|
crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_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 )
|
||||||
|
|
||||||
|
# Prefix always needs elibtoolize if not eautoreconf'd.
|
||||||
|
elibtoolize
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
# Python bindings were dropped as they were Python 2 only at the time
|
||||||
|
ECONF_SOURCE="${S}" econf \
|
||||||
|
--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
|
||||||
|
--with-html-subdir=html \
|
||||||
|
--without-python \
|
||||||
|
$(use_with crypt crypto) \
|
||||||
|
$(use_with debug) \
|
||||||
|
$(use_with debug mem-debug) \
|
||||||
|
$(use_enable static-libs static) \
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
# "default" does not work here - docs are installed by multilib_src_install_all
|
||||||
|
emake DESTDIR="${D}" install
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
find "${ED}" -type f -name "*.la" -delete || die
|
||||||
|
}
|
72
sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.34-r2.ebuild
vendored
Normal file
72
sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.34-r2.ebuild
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Copyright 1999-2021 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/danielveillard.asc
|
||||||
|
inherit libtool multilib-minimal verify-sig
|
||||||
|
|
||||||
|
# Note: Please bump this in sync with dev-libs/libxml2.
|
||||||
|
DESCRIPTION="XSLT libraries and tools"
|
||||||
|
HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxslt"
|
||||||
|
SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
|
||||||
|
SRC_URI+=" verify-sig? ( ftp://xmlsoft.org/${PN}/${P}.tar.gz.asc )"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||||
|
IUSE="crypt debug examples static-libs elibc_Darwin"
|
||||||
|
|
||||||
|
BDEPEND=">=virtual/pkgconfig-1
|
||||||
|
verify-sig? ( app-crypt/openpgp-keys-danielveillard )"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/libxml2-2.9.11:2[${MULTILIB_USEDEP}]
|
||||||
|
crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
MULTILIB_CHOST_TOOLS=(
|
||||||
|
/usr/bin/xslt-config
|
||||||
|
)
|
||||||
|
|
||||||
|
MULTILIB_WRAPPED_HEADERS=(
|
||||||
|
/usr/include/libxslt/xsltconfig.h
|
||||||
|
)
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${P}-libxml2-2.9.12.patch
|
||||||
|
"${FILESDIR}"/${P}-CVE-2021-30560.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
|
||||||
|
DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO )
|
||||||
|
|
||||||
|
# Prefix always needs elibtoolize if not eautoreconf'd.
|
||||||
|
elibtoolize
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
# Python bindings were dropped as they were Python 2 only at the time
|
||||||
|
ECONF_SOURCE="${S}" econf \
|
||||||
|
--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
|
||||||
|
--with-html-subdir=html \
|
||||||
|
--without-python \
|
||||||
|
$(use_with crypt crypto) \
|
||||||
|
$(use_with debug) \
|
||||||
|
$(use_with debug mem-debug) \
|
||||||
|
$(use_enable static-libs static) \
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
# "default" does not work here - docs are installed by multilib_src_install_all
|
||||||
|
emake DESTDIR="${D}" install
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
find "${ED}" -type f -name "*.la" -delete || die
|
||||||
|
}
|
@ -1,8 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
<pkgmetadata>
|
<pkgmetadata>
|
||||||
<maintainer type="project">
|
<maintainer type="person">
|
||||||
<email>gnome@gentoo.org</email>
|
<email>sam@gentoo.org</email>
|
||||||
<name>Gentoo GNOME Desktop</name>
|
<name>Sam James</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>base-system@gentoo.org</email>
|
||||||
|
<name>Gentoo Base System</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="cpe">cpe:/a:xmlsoft:libxslt</remote-id>
|
||||||
|
</upstream>
|
||||||
</pkgmetadata>
|
</pkgmetadata>
|
||||||
|
Loading…
Reference in New Issue
Block a user