]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
docbook-xsl-stylesheets: Use str:replace from exslt.org to implement string.subst
authorKhem Raj <raj.khem@gmail.com>
Mon, 6 Apr 2026 16:19:08 +0000 (09:19 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 9 Apr 2026 09:59:20 +0000 (10:59 +0100)
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>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/1c41ae5ae3d4816687467712580d5f05957b3b88.patch [new file with mode: 0644]
meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl-stylesheets-no-bashism-in-docbook-xsl-up.patch
meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb

diff --git a/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/1c41ae5ae3d4816687467712580d5f05957b3b88.patch b/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/1c41ae5ae3d4816687467712580d5f05957b3b88.patch
new file mode 100644 (file)
index 0000000..4e65c87
--- /dev/null
@@ -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"/>
index 0559a5c0d26809ed0cb0718686ae64cc53ce628f..a1bcfa615159142ef4fe0eb05c3d0e81c1ee5e2f 100644 (file)
@@ -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
-
index 7e4730b5e9dcaa131618934f074a4db757afe2aa..8e9a7c90915aa911e38dd05f49751ea2600559c5 100644 (file)
@@ -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"