r23689 - in /desktop/unstable/gtk+2.0/debian: changelog patches/006_support-for-tracker-0.8-stable-releases.patch patches/series

biebl at users.alioth.debian.org biebl at users.alioth.debian.org
Sat Apr 10 12:58:59 UTC 2010


Author: biebl
Date: Sat Apr 10 12:58:58 2010
New Revision: 23689

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=23689
Log:
* debian/patches/006_support-for-tracker-0.8-stable-releases.patch
  - Add support for tracker 0.8 stable and future 0.9 releases. Also add
    support for loading the search engines on demand until they are actually
    needed. Patch is backported from upstream Git branch "tracker-0.8".

Added:
    desktop/unstable/gtk+2.0/debian/patches/006_support-for-tracker-0.8-stable-releases.patch
Modified:
    desktop/unstable/gtk+2.0/debian/changelog
    desktop/unstable/gtk+2.0/debian/patches/series

Modified: desktop/unstable/gtk+2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/changelog?rev=23689&op=diff
==============================================================================
--- desktop/unstable/gtk+2.0/debian/changelog [utf-8] (original)
+++ desktop/unstable/gtk+2.0/debian/changelog [utf-8] Sat Apr 10 12:58:58 2010
@@ -3,6 +3,10 @@
   * deban/control.in
     - Add Vcs-* fields.
     - Add Homepage field.
+  * debian/patches/006_support-for-tracker-0.8-stable-releases.patch
+    - Add support for tracker 0.8 stable and future 0.9 releases. Also add
+      support for loading the search engines on demand until they are actually
+      needed. Patch is backported from upstream Git branch "tracker-0.8".
 
  -- Michael Biebl <biebl at debian.org>  Sat, 10 Apr 2010 14:43:05 +0200
 

Added: desktop/unstable/gtk+2.0/debian/patches/006_support-for-tracker-0.8-stable-releases.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/patches/006_support-for-tracker-0.8-stable-releases.patch?rev=23689&op=file
==============================================================================
--- desktop/unstable/gtk+2.0/debian/patches/006_support-for-tracker-0.8-stable-releases.patch (added)
+++ desktop/unstable/gtk+2.0/debian/patches/006_support-for-tracker-0.8-stable-releases.patch [utf-8] Sat Apr 10 12:58:58 2010
@@ -1,0 +1,241 @@
+From 0b62e4169fec5306990417b3a558a8d428c8fd1e Mon Sep 17 00:00:00 2001
+From: Tomas Bzatek <tbzatek at redhat.com>
+Date: Wed, 7 Apr 2010 15:02:18 +0200
+Subject: [PATCH] Support for tracker 0.8 stable release
+
+FileChooser: Initialize search engines on demand
+
+We postpone initialization of the search engines until
+it's really needed. See bug 614971 for reference.
+
+tracker-search-engine: Fixed 0.7/0.8 issues and add 0.9 cases
+
+tracker-search-engine: Improve search query to order by rank and title
+---
+ gtk/gtkfilechooserdefault.c  |   14 +------
+ gtk/gtksearchenginetracker.c |   87 ++++++++++++++++++++++--------------------
+ 2 files changed, 47 insertions(+), 54 deletions(-)
+
+Index: b/gtk/gtkfilechooserdefault.c
+===================================================================
+--- a/gtk/gtkfilechooserdefault.c	2010-04-10 14:52:04.585945156 +0200
++++ b/gtk/gtkfilechooserdefault.c	2010-04-10 14:52:08.413942503 +0200
+@@ -228,15 +228,6 @@
+   GTK_TREE_MODEL_ROW,
+ };
+ 
+-static gboolean
+-search_is_possible (GtkFileChooserDefault *impl)
+-{
+-  if (impl->search_engine == NULL)
+-    impl->search_engine = _gtk_search_engine_new ();
+-  
+-  return impl->search_engine != NULL;
+-}
+-
+ /* Interesting places in the shortcuts bar */
+ typedef enum {
+   SHORTCUTS_SEARCH,
+@@ -2266,10 +2257,7 @@
+ 					      G_TYPE_BOOLEAN,   /* pixbuf cell visibility */
+ 					      G_TYPE_POINTER);  /* GCancellable */
+ 
+-  if (search_is_possible (impl))
+-    {
+-      shortcuts_append_search (impl);
+-    }
++  shortcuts_append_search (impl);
+ 
+   if (impl->recent_manager)
+     {
+Index: b/gtk/gtksearchenginetracker.c
+===================================================================
+--- a/gtk/gtksearchenginetracker.c	2010-04-10 14:52:04.605942397 +0200
++++ b/gtk/gtksearchenginetracker.c	2010-04-10 14:52:08.421944080 +0200
+@@ -30,13 +30,15 @@
+ 
+ typedef enum
+ {
++  TRACKER_UNAVAILABLE = 0,
+   TRACKER_0_6 = 1 << 0,
+   TRACKER_0_7 = 1 << 1,
+-  TRACKER_0_8 = 1 << 2
++  TRACKER_0_8 = 1 << 2,
++  TRACKER_0_9 = 1 << 3
+ } TrackerVersion;
+ 
+ 
+-/* tracker 0.6 API */
++/* Tracker 0.6 API */
+ typedef void (*TrackerArrayReply) (char **result, GError *error, gpointer user_data);
+ 
+ static TrackerClient * (*tracker_connect) (gboolean enable_warnings, gint timeout) = NULL;
+@@ -53,7 +55,7 @@
+ 								   const char *location, 
+ 								   TrackerArrayReply callback, 
+ 								   gpointer user_data) = NULL;
+-/* tracker 0.8 API */
++/* Tracker 0.7->0.9 API */
+ typedef enum {
+ 	TRACKER_CLIENT_ENABLE_WARNINGS = 1 << 0
+ } TrackerClientFlags;
+@@ -82,12 +84,12 @@
+   MAP (tracker_connect, TRACKER_0_6 | TRACKER_0_7),
+   MAP (tracker_disconnect, TRACKER_0_6 | TRACKER_0_7),
+   MAP (tracker_get_version, TRACKER_0_6),
+-  MAP (tracker_cancel_last_call, TRACKER_0_6 | TRACKER_0_7 | TRACKER_0_8),
++  MAP (tracker_cancel_last_call, TRACKER_0_6 | TRACKER_0_7 | TRACKER_0_8 | TRACKER_0_9),
+   MAP (tracker_search_metadata_by_text_async, TRACKER_0_6 | TRACKER_0_7),
+   MAP (tracker_search_metadata_by_text_and_location_async, TRACKER_0_6 | TRACKER_0_7),
+-  MAP (tracker_client_new, TRACKER_0_8),
+-  MAP (tracker_sparql_escape, TRACKER_0_8),
+-  MAP (tracker_resources_sparql_query_async, TRACKER_0_8)
++  MAP (tracker_client_new, TRACKER_0_8 | TRACKER_0_9),
++  MAP (tracker_sparql_escape, TRACKER_0_8 | TRACKER_0_9),
++  MAP (tracker_resources_sparql_query_async, TRACKER_0_8 | TRACKER_0_9)
+ #undef MAP
+ };
+ 
+@@ -95,47 +97,46 @@
+ open_libtracker (void)
+ {
+   static gboolean done = FALSE;
+-  static TrackerVersion version = 0;
++  static TrackerVersion version = TRACKER_UNAVAILABLE;
+   gpointer x;
+ 
+   if (!done)
+     {
+-      int i;
++      gint i;
+       GModule *tracker;
+       GModuleFlags flags;
+       
+       done = TRUE;
+       flags = G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL;
+ 
+-      tracker = g_module_open ("libtracker-client-0.7.so.0", flags);
+-      version = TRACKER_0_7;
+-
+-      if (tracker && g_module_symbol (tracker, "tracker_resources_sparql_query_async", &x))
+-        {
+-            version = TRACKER_0_8;
+-        }
+-
+-      if (!tracker)
+-        {
+-          tracker = g_module_open ("libtrackerclient.so.0", flags);
+-          version = TRACKER_0_6;
+-        }
+-
+-      if (!tracker)
+-        {
+-          tracker = g_module_open ("libtracker.so.0", flags);
+-          version = TRACKER_0_6;
+-        }
++      /* So this is the order:
++       *
++       * - 0.9 (latest unstable)
++       * - 0.8 (stable)
++       * - 0.7 (unstable, 0.6 sucks so badly)
++       * - 0.6 (stable)
++       */
++      if ((tracker = g_module_open ("libtracker-client-0.9.so.0", flags)) != NULL)
++	version = TRACKER_0_9;
++      else if ((tracker = g_module_open ("libtracker-client-0.8.so.0", flags)) != NULL)
++	version = TRACKER_0_8;
++      else if ((tracker = g_module_open ("libtracker-client-0.7.so.0", flags)) != NULL)
++	version = TRACKER_0_7;
++      else if ((tracker = g_module_open ("libtrackerclient.so.0", flags)) != NULL)
++	version = TRACKER_0_6;
++      else
++	{
++	  g_debug ("No tracker backend available");
++	  return TRACKER_UNAVAILABLE;
++	}
+ 
+-      if (!tracker)
+-	return 0;
+-      
+       for (i = 0; i < G_N_ELEMENTS (tracker_dl_mapping); i++)
+ 	{
+ 	  if ((tracker_dl_mapping[i].versions & version) == 0)
+ 	    continue;
+ 
+-	  if (!g_module_symbol (tracker, tracker_dl_mapping[i].fn_name,
++	  if (!g_module_symbol (tracker, 
++				tracker_dl_mapping[i].fn_name,
+ 				tracker_dl_mapping[i].fn_ptr_ref))
+ 	    {
+ 	      g_warning ("Missing symbol '%s' in libtracker\n",
+@@ -145,7 +146,7 @@
+ 	      for (i = 0; i < G_N_ELEMENTS (tracker_dl_mapping); i++)
+ 		tracker_dl_mapping[i].fn_ptr_ref = NULL;
+ 
+-	      return 0;
++	      return TRACKER_UNAVAILABLE;
+ 	    }
+ 	}
+     }
+@@ -177,7 +178,8 @@
+       tracker->priv->query = NULL;
+     }
+ 
+-  if (tracker->priv->version == TRACKER_0_8)
++  if (tracker->priv->version == TRACKER_0_8 ||
++      tracker->priv->version == TRACKER_0_9)
+     g_object_unref (tracker->priv->client);
+   else
+     tracker_disconnect (tracker->priv->client);
+@@ -191,7 +193,7 @@
+ sparql_append_string_literal (GString     *sparql,
+                               const gchar *str)
+ {
+-  char *s;
++  gchar *s;
+ 
+   s = tracker_sparql_escape (str);
+ 
+@@ -230,7 +232,8 @@
+   if (!results)
+     return;
+ 
+-  if (tracker->priv->version == TRACKER_0_8)
++  if (tracker->priv->version == TRACKER_0_8 ||
++      tracker->priv->version == TRACKER_0_9)
+     {
+       OUT_result = (GPtrArray*) results;
+ 
+@@ -297,17 +300,18 @@
+         location = location_uri;
+     }
+ 
+-  if (tracker->priv->version == TRACKER_0_8)
++  if (tracker->priv->version == TRACKER_0_8 ||
++      tracker->priv->version == TRACKER_0_9)
+     {
+-      sparql = g_string_new ("SELECT ?url WHERE { ?file a nfo:FileDataObject; nie:url ?url; fts:match ");
++      sparql = g_string_new ("SELECT nie:url(?urn) WHERE { ?urn a nfo:FileDataObject; fts:match ");
+       sparql_append_string_literal (sparql, search_text);
+       if (location)
+         {
+-          g_string_append (sparql, " . FILTER (fn:starts-with(?url,");
++          g_string_append (sparql, " . FILTER (fn:starts-with(nie:url(?urn),");
+           sparql_append_string_literal (sparql, location);
+           g_string_append (sparql, "))");
+         }
+-      g_string_append (sparql, " }");
++      g_string_append (sparql, " } ORDER BY DESC(fts:rank(?urn)) ASC(nie:url(?urn))");
+ 
+       tracker_resources_sparql_query_async (tracker->priv->client,
+                                             sparql->str,
+@@ -411,7 +415,8 @@
+ 
+   version = open_libtracker ();
+ 
+-  if (version == TRACKER_0_8)
++  if (version == TRACKER_0_8 ||
++      version == TRACKER_0_9)
+     {
+       tracker_client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, G_MAXINT);
+     }

Modified: desktop/unstable/gtk+2.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B2.0/debian/patches/series?rev=23689&op=diff
==============================================================================
--- desktop/unstable/gtk+2.0/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gtk+2.0/debian/patches/series [utf-8] Sat Apr 10 12:58:58 2010
@@ -3,6 +3,7 @@
 003_gdk.pc_privates.patch
 004_gtk+-ximian-gtk2-filesel-navbutton-5.patch
 005_support_disabling_x11_extensions.patch
+006_support-for-tracker-0.8-stable-releases.patch
 009_gtk-export-filechooser.patch
 010_gdkpixbuf_-lm.patch
 015_default-fallback-icon-theme.patch




More information about the pkg-gnome-commits mailing list