GNOME Bugzilla – Bug 697882
Tracker.gir needs c:prefix
Last modified: 2013-04-29 08:13:28 UTC
+++ This bug was initially created as a clone of Bug #697759 +++ Otherwise when in mixed environments, it can cause the newly optimized gtype lookup to abort searches. See https://bugzilla.gnome.org/show_bug.cgi?id=696155
Thanks for tracking this down - I was just about to step in as well. This is worth doing even for the old lookup code as well, since without c:prefix, gobject-introspection is forced to perform an expensive exhaustive search in all the typelibs.
Nevermind, this is a tracker issue.
Created attachment 241408 [details] [review] 0001-libtracker-sparql-Set-c-prefix-of-our-namespace.patch This needs to be on tracker-0.16 too please.
The difference I see in the gir file when applying the above patch is the following: --- src/libtracker-sparql/Tracker-0.18.gir-master 2013-04-25 16:54:58.979057575 +0200 +++ src/libtracker-sparql/Tracker-0.18.gir 2013-04-25 16:56:19.161824842 +0200 @@ -6,6 +6,8 @@ <package name="tracker-sparql-0.18"/> <c:include name="libtracker-sparql/tracker-generated-no-checks.h"/> <namespace name="Tracker" version="0.18" c:prefix="Tracker"> + <annotation key="ccode.lower-case-cprefix" value="tracker_"/> + <annotation key="ccode.cprefix" value="Tracker"/> <enumeration name="SparqlValueType" c:type="TrackerSparqlValueType" glib:type-name="TrackerSparqlValueType" glib:get-type="tracker_sparql_value_type_get_type"> <member name="unbound" c:identifier="TRACKER_SPARQL_VALUE_TYPE_UNBOUND" value="0"/> <member name="uri" c:identifier="TRACKER_SPARQL_VALUE_TYPE_URI" value="1"/> As far as I can tell, this won't have any effect on g-i tools. Does the patch work for you, am I missing something?
I confirm the patch fixes the issue for me.
(In reply to comment #4) > The difference I see in the gir file when applying the above patch is the > following: > > --- src/libtracker-sparql/Tracker-0.18.gir-master 2013-04-25 > 16:54:58.979057575 +0200 > +++ src/libtracker-sparql/Tracker-0.18.gir 2013-04-25 16:56:19.161824842 > +0200 > @@ -6,6 +6,8 @@ > <package name="tracker-sparql-0.18"/> > <c:include name="libtracker-sparql/tracker-generated-no-checks.h"/> > <namespace name="Tracker" version="0.18" c:prefix="Tracker"> > + <annotation key="ccode.lower-case-cprefix" value="tracker_"/> > + <annotation key="ccode.cprefix" value="Tracker"/> > <enumeration name="SparqlValueType" c:type="TrackerSparqlValueType" > glib:type-name="TrackerSparqlValueType" > glib:get-type="tracker_sparql_value_type_get_type"> > <member name="unbound" > c:identifier="TRACKER_SPARQL_VALUE_TYPE_UNBOUND" value="0"/> > <member name="uri" c:identifier="TRACKER_SPARQL_VALUE_TYPE_URI" > value="1"/> > > As far as I can tell, this won't have any effect on g-i tools. Does the patch > work for you, am I missing something? I am just swamped with work right now so I haven't had a chance to test it. I was going to check there are not ABI breaks too between the binaries before/after. I can't see why there should be, but I like to be sure. Thanks for commenting! :)
We discussed this on IRC, and it turns out tracker simply needed to be rebuilt - in the process of patching it I of course did that, and erroneously thought my patch fixed the issue.
(In reply to comment #7) > We discussed this on IRC, and it turns out tracker simply needed to be rebuilt > - in the process of patching it I of course did that, and erroneously thought > my patch fixed the issue. Thank you for following up here Colin. One less thing to do :)