[mingw-libxslt] Fix a regression in default namespace handling (GNOME BZ #684564)
Erik van Pienbroek
epienbro at fedoraproject.org
Sat Oct 13 17:06:27 UTC 2012
commit c11dac4e6eb103290d346cc5bb1deb50ab460ef0
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date: Sat Oct 13 19:06:23 2012 +0200
Fix a regression in default namespace handling (GNOME BZ #684564)
...sion-Default-namespace-not-correctly-used.patch | 132 ++++++++++++++++++++
mingw-libxslt.spec | 10 ++-
2 files changed, 141 insertions(+), 1 deletions(-)
---
diff --git a/libxslt-Fix-regression-Default-namespace-not-correctly-used.patch b/libxslt-Fix-regression-Default-namespace-not-correctly-used.patch
new file mode 100644
index 0000000..b1d6e44
--- /dev/null
+++ b/libxslt-Fix-regression-Default-namespace-not-correctly-used.patch
@@ -0,0 +1,132 @@
+From 70213d9c9a86adac841247b249dc188ba2aab3db Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer at aevum.de>
+Date: Fri, 28 Sep 2012 21:04:39 +0200
+Subject: [PATCH] Fix regression: Default namespace not correctly used
+To: libvir-list at redhat.com
+
+https://bugzilla.gnome.org/show_bug.cgi?id=684564
+
+Signed-off-by: Daniel Veillard <veillard at redhat.com>
+---
+ libxslt/transform.c | 14 ++++++++------
+ tests/docs/Makefile.am | 1 +
+ tests/docs/bug-179.xml | 1 +
+ tests/general/Makefile.am | 1 +
+ tests/general/bug-179.out | 9 +++++++++
+ tests/general/bug-179.xsl | 24 ++++++++++++++++++++++++
+ 6 files changed, 44 insertions(+), 6 deletions(-)
+ create mode 100644 tests/docs/bug-179.xml
+ create mode 100644 tests/general/bug-179.out
+ create mode 100644 tests/general/bug-179.xsl
+
+diff --git a/libxslt/transform.c b/libxslt/transform.c
+index de2ef3c..35701de 100644
+--- a/libxslt/transform.c
++++ b/libxslt/transform.c
+@@ -4075,7 +4075,7 @@ xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node,
+ } else if (xmlStrEqual(prefix, BAD_CAST "xml")) {
+ prefix = NULL;
+ }
+- } else if (prefix != NULL) {
++ } else {
+ xmlNsPtr ns;
+ /*
+ * SPEC XSLT 1.0:
+@@ -4090,11 +4090,13 @@ xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node,
+ * TODO: Check this in the compilation layer in case it's a
+ * static value.
+ */
+- xsltTransformError(ctxt, NULL, inst,
+- "xsl:element: The QName '%s:%s' has no "
+- "namespace binding in scope in the stylesheet; "
+- "this is an error, since the namespace was not "
+- "specified by the instruction itself.\n", prefix, name);
++ if (prefix != NULL) {
++ xsltTransformError(ctxt, NULL, inst,
++ "xsl:element: The QName '%s:%s' has no "
++ "namespace binding in scope in the stylesheet; "
++ "this is an error, since the namespace was not "
++ "specified by the instruction itself.\n", prefix, name);
++ }
+ } else
+ nsName = ns->href;
+ }
+diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am
+index 9e2204f..12a97a8 100644
+--- a/tests/docs/Makefile.am
++++ b/tests/docs/Makefile.am
+@@ -168,6 +168,7 @@ EXTRA_DIST = \
+ bug-167.xml \
+ bug-168.xml \
+ bug-169.xml \
++ bug-179.xml \
+ character.xml \
+ array.xml \
+ items.xml
+diff --git a/tests/docs/bug-179.xml b/tests/docs/bug-179.xml
+new file mode 100644
+index 0000000..69d62f2
+--- /dev/null
++++ b/tests/docs/bug-179.xml
+@@ -0,0 +1 @@
++<doc/>
+diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am
+index 24d0d43..fd1e695 100644
+--- a/tests/general/Makefile.am
++++ b/tests/general/Makefile.am
+@@ -186,6 +186,7 @@ EXTRA_DIST = \
+ bug-176.out bug-176.xsl \
+ bug-177.out bug-177.xsl \
+ bug-178.out bug-178.xsl \
++ bug-179.out bug-179.xsl \
+ character.out character.xsl \
+ character2.out character2.xsl \
+ itemschoose.out itemschoose.xsl \
+diff --git a/tests/general/bug-179.out b/tests/general/bug-179.out
+new file mode 100644
+index 0000000..0a7e67d
+--- /dev/null
++++ b/tests/general/bug-179.out
+@@ -0,0 +1,9 @@
++<?xml version="1.0"?>
++<root xmlns="my::namespace">
++ <foo>...</foo>
++ <bar>...</bar>
++ <foobar>...</foobar>
++ <baz>...</baz>
++ <doc>...</doc>
++ <baz>...</baz>
++</root>
+diff --git a/tests/general/bug-179.xsl b/tests/general/bug-179.xsl
+new file mode 100644
+index 0000000..5847e9a
+--- /dev/null
++++ b/tests/general/bug-179.xsl
+@@ -0,0 +1,24 @@
++<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
++ xmlns="my::namespace">
++
++<xsl:variable name="var">baz</xsl:variable>
++
++<xsl:output indent="yes"/>
++
++<xsl:template match="/">
++ <root> <!-- This is in the correct namespace "my::namespace" -->
++ <foo>...</foo> <!-- OK. -->
++ <xsl:element name="bar">...</xsl:element> <!-- Still okay. -->
++
++ <!-- Wrong! These are without namespace. -->
++ <xsl:element name="{concat('foo', 'bar')}">...</xsl:element>
++ <xsl:element name="{$var}">...</xsl:element>
++ <xsl:element name="{local-name(*)}">...</xsl:element>
++
++ <!-- Explicitly setting the namespace fixes this. -->
++ <xsl:element name="{$var}" namespace="my::namespace">...</xsl:element>
++ </root>
++</xsl:template>
++
++</xsl:stylesheet>
++
+--
+1.7.11.4
+
diff --git a/mingw-libxslt.spec b/mingw-libxslt.spec
index 2e863d5..9d7be4f 100644
--- a/mingw-libxslt.spec
+++ b/mingw-libxslt.spec
@@ -2,7 +2,7 @@
Name: mingw-libxslt
Version: 1.1.27
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: MinGW Windows Library providing the Gnome XSLT engine
License: MIT
@@ -12,6 +12,10 @@ Source0: ftp://xmlsoft.org/XSLT/libxslt-%{version}.tar.gz
BuildArch: noarch
+# Fix a regression in default namespace handling
+# https://bugzilla.gnome.org/show_bug.cgi?id=684564
+Patch0: libxslt-Fix-regression-Default-namespace-not-correctly-used.patch
+
# Fix compilation on MinGW environments
Patch1001: mingw32-libxslt-use-correct-mkdir.patch
@@ -84,6 +88,7 @@ Static version of the MinGW Windows LibXSLT library.
%prep
%setup -q -n libxslt-%{version}
+%patch0 -p1
%patch1001 -p0
libtoolize --force --copy
@@ -150,6 +155,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
%changelog
+* Sat Oct 13 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.1.27-2
+- Fix a regression in default namespace handling (GNOME BZ #684564)
+
* Sat Sep 22 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 1.1.27-1
- Update to 1.1.27
More information about the scm-commits
mailing list