[PATCH] libvirt: backport patch to fix compile error
Kai Kang
From: Kai Kang <kai.kang@...>
Backport patch to fix compile error of libvirt: | runtime error: file ../libvirt-7.2.0/docs/page.xsl line 217 element element | xsl:element: The effective name '' is not a valid QName. Signed-off-by: Kai Kang <kai.kang@...> --- ...cs-Fix-template-matching-in-page.xsl.patch | 64 +++++++++++++++++++ recipes-extended/libvirt/libvirt_7.2.0.bb | 1 + 2 files changed, 65 insertions(+) create mode 100644 recipes-extended/libvirt/libvirt/0001-docs-Fix-template-matching-in-page.xsl.patch diff --git a/recipes-extended/libvirt/libvirt/0001-docs-Fix-template-matching-in-page.xsl.patch b/recipes-extended/libvirt/libvirt/0001-docs-Fix-template-matching-in-page.xsl.patch new file mode 100644 index 0000000..9dd650e --- /dev/null +++ b/recipes-extended/libvirt/libvirt/0001-docs-Fix-template-matching-in-page.xsl.patch @@ -0,0 +1,64 @@ +Upstream-Status: Backport + +Signed-off-by: Kai Kang <kai.kang@...> + +From 54814c87f3706cc8eb894634ebef0f9cf7dabae6 Mon Sep 17 00:00:00 2001 +From: Martin Kletzander <mkletzan@...> +Date: Mon, 21 Feb 2022 09:26:13 +0100 +Subject: [PATCH] docs: Fix template matching in page.xsl + +Our last default template had a match of "node()" which incidentally matched +everything, including text nodes. Since this has the same priority according to +the XSLT spec, section 5.5: + + https://www.w3.org/TR/1999/REC-xslt-19991116#conflict + +this is an error. Also according to the same spec section, the XSLT processor +may signal the error or pick the last rule. + +This was uncovered with libxslt 1.1.35 which contains the following commit: + + https://gitlab.gnome.org/GNOME/libxslt/-/commit/b0074eeca3c6b21b4da14fdf712b853900c51635 + +which makes the build fail with: + + runtime error: file ../docs/page.xsl line 223 element element + xsl:element: The effective name '' is not a valid QName. + +because our last rule also matches text nodes and we are trying to extract the +node name out of them. + +To fix this we change the match to "*" which only matches elements and not all +the nodes, and to avoid any possible errors with different XSLT processors we +also bump the priority of the match="text()" rule a little higher, just in case +someone needs to use an XSLT processor that chooses signalling the error instead +of the optional recovery. + +https://bugs.gentoo.org/833586 + +Signed-off-by: Martin Kletzander <mkletzan@...> +--- + docs/page.xsl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/docs/page.xsl b/docs/page.xsl +index fd67918d3b..72a6fa0842 100644 +--- a/docs/page.xsl ++++ b/docs/page.xsl +@@ -215,11 +215,11 @@ + </xsl:element> + </xsl:template> + +- <xsl:template match="text()" mode="copy"> ++ <xsl:template match="text()" mode="copy" priority="0"> + <xsl:value-of select="."/> + </xsl:template> + +- <xsl:template match="node()" mode="copy"> ++ <xsl:template match="*" mode="copy"> + <xsl:element name="{name()}"> + <xsl:copy-of select="./@*"/> + <xsl:apply-templates mode="copy" /> +-- +2.33.0 + diff --git a/recipes-extended/libvirt/libvirt_7.2.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb index 5ad7d59..1fc55b8 100644 --- a/recipes-extended/libvirt/libvirt_7.2.0.bb +++ b/recipes-extended/libvirt/libvirt_7.2.0.bb @@ -31,6 +31,7 @@ SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \ file://0002-meson-Fix-compatibility-with-Meson-0.58.patch \ file://0001-security-fix-SELinux-label-generation-logic.patch \ file://0001-storage_driver-Unlock-object-on-ACL-fail-in-storageP.patch \ + file://0001-docs-Fix-template-matching-in-page.xsl.patch \ " SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3" -- 2.17.1 |
|