new file mode 100644
@@ -0,0 +1,136 @@
+From 1c41ae5ae3d4816687467712580d5f05957b3b88 Mon Sep 17 00:00:00 2001
+From: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
+Date: Thu, 6 Jul 2017 21:32:14 +0200
+Subject: [PATCH] Use str:replace from exslt.org to implement string.subst
+
+string.subst implementation causes recursion issues when building
+systemd documentation. This issue has been reported in
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765567 and
+https://bugs.archlinux.org/task/54694 .
+
+A possible fix consists in using str:replace from exslt.org when this
+function is available. This has been implemented in a patch for the
+Debian package
+(https://anonscm.debian.org/cgit/collab-maint/docbook-xsl.git/tree/debian/patches/765567_non-recursive_string_subst.patch)
+which has also been used by Arch Linux
+(https://git.archlinux.org/svntogit/packages.git/tree/trunk/765567_non-recursive_string_subst.patch?h=packages/docbook-xsl&id=c6bf4ebc446487043437ed13e4fbe83f648f5c58).
+
+Translate this patch to xsl/lib/lib.xweb in order to fix the recursion
+issues.
+
+For reference, here is the beginning of the error messages reported by
+xslt when building systemd:
+
+ XSLT man/systemd.directives.html
+ Note: namesp. add : added namespace before processing systemd.directives
+ runtime error: file file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/lib/lib.xsl line 56 element variable
+ xsltApplySequenceConstructor: A potential infinite template recursion was detected.
+ You can adjust xsltMaxDepth (--maxdepth) in order to raise the maximum number of nested template calls and variables/params (currently set to 3000).
+ Templates:
+ #0 name string.subst
+ #1 name string.subst
+ #2 name string.subst
+ #3 name string.subst
+ #4 name string.subst
+ #5 name string.subst
+ #6 name string.subst
+ #7 name string.subst
+ #8 name string.subst
+ #9 name string.subst
+ #10 name string.subst
+ #11 name string.subst
+ #12 name string.subst
+ #13 name string.subst
+ #14 name string.subst
+ Variables:
+ #0
+ replacement Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE newstring
+ TEXT
+ content= .
+
+ target Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE oldstring
+ TEXT
+ content= .
+
+ string Object is a string : PP \fB\-\-multiple\fR .RS 4 \fBsystemd-a...
+
+ #1
+ target Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE oldstring
+ TEXT
+ content= .
+
+ string Object is a string : PP \fB\-\-multiple\fR .RS 4 \fBsystemd-a...
+
+ #2
+ string Object is a string : PP \fB\-\-multiple\fR .RS 4 \fBsystemd-a...
+
+ #3
+ replacement Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE newstring
+ TEXT
+ content= .
+
+ target Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE oldstring
+ TEXT
+ content= .
+
+ string Object is a string : PP \fB\-\-mode=\fR .RS 4 \fBsystemd-inhi...
+
+ #4
+ target Object is a Node Set :
+ Set contains 1 nodes:
+ 1 ATTRIBUTE oldstring
+ TEXT
+ content= .
+
+ string Object is a string : PP \fB\-\-mode=\fR .RS 4 \fBsystemd-inhi...
+
+Upstream-Status: Backport [https://github.com/docbook/xslt10-stylesheets/commit/1c41ae5ae3d4816687467712580d5f05957b3b88]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ xsl/lib/lib.xweb | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/lib/lib.xsl
++++ b/lib/lib.xsl
+@@ -10,7 +10,11 @@
+ 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 +60,9 @@
+ <xsl:param name="replacement"/>
+
+ <xsl:choose>
++ <xsl:when xmlns:str="http://exslt.org/strings" str:foo="" 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">
+@@ -388,7 +395,7 @@
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+-
++
+ <xsl:template name="count.uri.path.depth">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="count" select="0"/>
@@ -9,8 +9,6 @@ Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
tools/bin/docbook-xsl-update | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/tools/bin/docbook-xsl-update b/tools/bin/docbook-xsl-update
-index aba0016..cc73aa2 100755
--- a/tools/bin/docbook-xsl-update
+++ b/tools/bin/docbook-xsl-update
@@ -1,4 +1,4 @@
@@ -19,6 +17,3 @@ index aba0016..cc73aa2 100755
# vim: number
# docbook-xsl-update - Update environment to latest docbook-xsl snapshot
-1.9.1
-
@@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6beadd98f9c54ab0c387e14211ee4d0e"
SRC_URI = "${SOURCEFORGE_MIRROR}/docbook/docbook-xsl-${PV}.tar.bz2 \
file://docbook-xsl-stylesheets-no-bashism-in-docbook-xsl-up.patch \
+ file://1c41ae5ae3d4816687467712580d5f05957b3b88.patch \
"
SRC_URI[sha256sum] = "725f452e12b296956e8bfb876ccece71eeecdd14b94f667f3ed9091761a4a968"
Developement for docbook stylesheets has moved to github there are newer releases available too which include this fix, however for now nearing 6.0 release this is least intrusive way to move forward This is needed for building latest samba versions Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> --- ...ae5ae3d4816687467712580d5f05957b3b88.patch | 136 ++++++++++++++++++ ...esheets-no-bashism-in-docbook-xsl-up.patch | 5 - .../docbook-xsl-stylesheets_1.79.1.bb | 1 + 3 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/1c41ae5ae3d4816687467712580d5f05957b3b88.patch