aboutsummaryrefslogtreecommitdiff
path: root/textproc/docbook-xsl
diff options
context:
space:
mode:
authorTimur I. Bakeyev <timur@FreeBSD.org>2018-11-18 22:49:45 +0000
committerTimur I. Bakeyev <timur@FreeBSD.org>2018-11-18 22:49:45 +0000
commit6c26a7393d1ab43e6262e46078db16e797a7c391 (patch)
tree58a38619252c1713e10cc97b398c9f3150bdca65 /textproc/docbook-xsl
parent94112177739df591165d6672e4892fe05c059f9d (diff)
downloadports-6c26a7393d1ab43e6262e46078db16e797a7c391.tar.gz
ports-6c26a7393d1ab43e6262e46078db16e797a7c391.zip
Incorporate fix from Debian/Fedora for the deep recursion while expanding.
PR: 231864 Approved by: maintainer timeout
Notes
Notes: svn path=/head/; revision=485287
Diffstat (limited to 'textproc/docbook-xsl')
-rw-r--r--textproc/docbook-xsl/Makefile3
-rw-r--r--textproc/docbook-xsl/files/docbook-style-xsl-non-recursive-string-subst.patch30
2 files changed, 33 insertions, 0 deletions
diff --git a/textproc/docbook-xsl/Makefile b/textproc/docbook-xsl/Makefile
index 6798165bcfd4..e889300ed3c0 100644
--- a/textproc/docbook-xsl/Makefile
+++ b/textproc/docbook-xsl/Makefile
@@ -2,6 +2,7 @@
PORTNAME= docbook-xsl
PORTVERSION= 1.79.1
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= textproc
MASTER_SITES= SF/docbook/${PORTNAME}/${PORTVERSION}:src \
@@ -18,6 +19,8 @@ BUILD_DEPENDS= xmlcatmgr:textproc/xmlcatmgr
RUN_DEPENDS= docbook>=0:textproc/docbook \
xmlcatmgr:textproc/xmlcatmgr
+EXTRA_PATCHES= ${PATCHDIR}/docbook-style-xsl-non-recursive-string-subst.patch:-p2
+
USES= tar:bzip2
NO_ARCH= yes
diff --git a/textproc/docbook-xsl/files/docbook-style-xsl-non-recursive-string-subst.patch b/textproc/docbook-xsl/files/docbook-style-xsl-non-recursive-string-subst.patch
new file mode 100644
index 000000000000..d6b5150f1467
--- /dev/null
+++ b/textproc/docbook-xsl/files/docbook-style-xsl-non-recursive-string-subst.patch
@@ -0,0 +1,30 @@
+Description: use EXSLT "replace" function when available
+ A recursive implementation of string.subst is problematic,
+ long strings with many matches will cause stack overflows.
+Author: Peter De Wachter <pdewacht@gmail.com>
+Bug-Debian: https://bugs.debian.org/750593
+
+--- docbook-xsl-1.78.1+dfsg.orig/docbook-xsl/lib/lib.xsl
++++ docbook-xsl-1.78.1+dfsg/docbook-xsl/lib/lib.xsl
+@@ -10,7 +10,10 @@
+ This module implements DTD-independent functions
+
+ ******************************************************************** -->
+-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
++<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
++ xmlns:str="http://exslt.org/strings"
++ exclude-result-prefixes="str"
++ version="1.0">
+
+ <xsl:template name="dot.count">
+ <!-- Returns the number of "." characters in a string -->
+@@ -56,6 +59,9 @@
+ <xsl:param name="replacement"/>
+
+ <xsl:choose>
++ <xsl:when test="function-available('str:replace')">
++ <xsl:value-of select="str:replace($string, string($target), string($replacement))"/>
++ </xsl:when>
+ <xsl:when test="contains($string, $target)">
+ <xsl:variable name="rest">
+ <xsl:call-template name="string.subst">