- Ignore namespaces in introspection XML
This commit is contained in:
parent
2f0a903399
commit
b9f2ccac7a
69
dbus-glib-0.73-ignore-namespaces.patch
Normal file
69
dbus-glib-0.73-ignore-namespaces.patch
Normal file
@ -0,0 +1,69 @@
|
||||
diff --git a/dbus/dbus-gparser.c b/dbus/dbus-gparser.c
|
||||
index f296f96..cdd4e53 100644
|
||||
--- a/dbus/dbus-gparser.c
|
||||
+++ b/dbus/dbus-gparser.c
|
||||
@@ -128,13 +128,17 @@ locate_attributes (const char *element_name,
|
||||
|
||||
if (!found)
|
||||
{
|
||||
- g_set_error (error,
|
||||
- G_MARKUP_ERROR,
|
||||
- G_MARKUP_ERROR_PARSE,
|
||||
- _("Attribute \"%s\" is invalid on <%s> element in this context"),
|
||||
- attribute_names[i], element_name);
|
||||
- retval = FALSE;
|
||||
- goto out;
|
||||
+ /* We want to passthrough namespaced XML nodes that we don't know anything about. */
|
||||
+ if (strchr (attribute_names[i], ':') == NULL)
|
||||
+ {
|
||||
+ g_set_error (error,
|
||||
+ G_MARKUP_ERROR,
|
||||
+ G_MARKUP_ERROR_PARSE,
|
||||
+ _("Attribute \"%s\" is invalid on <%s> element in this context"),
|
||||
+ attribute_names[i], element_name);
|
||||
+ retval = FALSE;
|
||||
+ goto out;
|
||||
+ }
|
||||
}
|
||||
|
||||
++i;
|
||||
@@ -177,6 +181,7 @@ struct Parser
|
||||
PropertyInfo *property;
|
||||
ArgInfo *arg;
|
||||
gboolean in_annotation;
|
||||
+ guint unknown_namespaced_depth;
|
||||
};
|
||||
|
||||
Parser*
|
||||
@@ -791,10 +796,14 @@ parser_start_element (Parser *parser,
|
||||
}
|
||||
else
|
||||
{
|
||||
- g_set_error (error, G_MARKUP_ERROR,
|
||||
- G_MARKUP_ERROR_PARSE,
|
||||
- _("Element <%s> not recognized"),
|
||||
- element_name);
|
||||
+ if (strchr (element_name, ':') != NULL)
|
||||
+ /* Passthrough XML-namespaced nodes */
|
||||
+ parser->unknown_namespaced_depth += 1;
|
||||
+ else
|
||||
+ g_set_error (error, G_MARKUP_ERROR,
|
||||
+ G_MARKUP_ERROR_PARSE,
|
||||
+ _("Element <%s> not recognized"),
|
||||
+ element_name);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -844,6 +853,11 @@ parser_end_element (Parser *parser,
|
||||
if (parser->node_stack == NULL)
|
||||
parser->result = top; /* We are done, store the result */
|
||||
}
|
||||
+ else if (strchr (element_name, ':') != NULL)
|
||||
+ {
|
||||
+ /* Passthrough XML-namespaced nodes */
|
||||
+ parser->unknown_namespaced_depth -= 1;
|
||||
+ }
|
||||
else
|
||||
g_assert_not_reached (); /* should have had an error on start_element */
|
||||
|
||||
|
||||
@ -8,12 +8,13 @@
|
||||
Summary: GLib bindings for D-Bus
|
||||
Name: dbus-glib
|
||||
Version: 0.74
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
URL: http://www.freedesktop.org/software/dbus/
|
||||
Source0: http://dbus.freedesktop.org/releases/dbus-glib/%{name}-%{version}.tar.gz
|
||||
Source1: dbus-bus-introspect.xml
|
||||
Patch0: broken-xml.patch
|
||||
Patch1: dbus-glib-proxy-signals-once.patch
|
||||
Patch2: dbus-glib-0.73-ignore-namespaces.patch
|
||||
License: AFL/GPL
|
||||
Group: System Environment/Libraries
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
@ -61,6 +62,7 @@ D-Bus tools written using the gtk+ GUI libaries
|
||||
%setup -q
|
||||
%patch0 -p1 -b .broken-xml
|
||||
%patch1 -p1 -b .proxy-signals-once
|
||||
%patch2 -p1 -b .ignore-namespaces
|
||||
|
||||
%build
|
||||
|
||||
@ -116,6 +118,9 @@ rm -rf %{buildroot}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Feb 12 2008 Dan Williams <dcbw@redhat.com> - 0.74-3
|
||||
- Ignore namespaces in introspection XML
|
||||
|
||||
* Sun Nov 18 2007 Dan Williams <dcbw@redhat.com> - 0.74-2
|
||||
- Actually apply the patch for fdo #12505
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user