[rhythmbox/f18] fix build against grilo 0.2.0

Kalev Lember kalev at fedoraproject.org
Sat Sep 1 10:53:34 UTC 2012


commit 65bb1d7425219fdc402d82d7b3ec756a3ddad396
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Fri Aug 31 15:12:10 2012 -0400

    fix build against grilo 0.2.0

 rhythmbox-2.97-grilo-0.2.0.patch |  492 ++++++++++++++++++++++++++++++++++++++
 rhythmbox.spec                   |   11 +-
 2 files changed, 501 insertions(+), 2 deletions(-)
---
diff --git a/rhythmbox-2.97-grilo-0.2.0.patch b/rhythmbox-2.97-grilo-0.2.0.patch
new file mode 100644
index 0000000..df6f774
--- /dev/null
+++ b/rhythmbox-2.97-grilo-0.2.0.patch
@@ -0,0 +1,492 @@
+diff -up rhythmbox-2.97/configure.ac.grilo02 rhythmbox-2.97/configure.ac
+--- rhythmbox-2.97/configure.ac.grilo02	2012-08-30 10:21:30.636916649 -0400
++++ rhythmbox-2.97/configure.ac	2012-08-30 10:21:49.260916929 -0400
+@@ -58,7 +58,7 @@ LIBSOUP_REQS=2.26.0
+ GUDEV_REQS=143
+ LIBMTP_REQS=0.3.0
+ LIBPEAS_REQS=0.7.3
+-GRILO_REQS=0.1.17
++GRILO_REQS=0.2.0
+ LIBXML2_REQS=2.7.8
+ 
+ LIBNOTIFY_REQS=0.7.0
+@@ -758,7 +758,7 @@ AC_ARG_ENABLE(grilo,
+ 			     [Disable Grilo support]),,
+ 	      enable_grilo=auto)
+ if test "x$enable_grilo" != "xno"; then
+-	PKG_CHECK_MODULES(GRILO, grilo-0.1 >= $GRILO_REQS, have_grilo=yes, have_grilo=no)
++	PKG_CHECK_MODULES(GRILO, grilo-0.2 >= $GRILO_REQS, have_grilo=yes, have_grilo=no)
+ 	if test "x$have_grilo" = "xno" -a "x$enable_grilo" = "xyes"; then
+ 		AC_MSG_ERROR([Grilo support explicitly requested, but grilo couldn not be found])
+ 	fi
+diff -up rhythmbox-2.97/configure.grilo02 rhythmbox-2.97/configure
+--- rhythmbox-2.97/configure.grilo02	2012-08-30 10:22:08.889917222 -0400
++++ rhythmbox-2.97/configure	2012-08-30 10:22:44.869917763 -0400
+@@ -15085,7 +15085,7 @@ LIBSOUP_REQS=2.26.0
+ GUDEV_REQS=143
+ LIBMTP_REQS=0.3.0
+ LIBPEAS_REQS=0.7.3
+-GRILO_REQS=0.1.17
++GRILO_REQS=0.2.0
+ LIBXML2_REQS=2.7.8
+ 
+ LIBNOTIFY_REQS=0.7.0
+@@ -20437,12 +20437,12 @@ if test -n "$GRILO_CFLAGS"; then
+     pkg_cv_GRILO_CFLAGS="$GRILO_CFLAGS"
+  elif test -n "$PKG_CONFIG"; then
+     if test -n "$PKG_CONFIG" && \
+-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"grilo-0.1 >= \$GRILO_REQS\""; } >&5
+-  ($PKG_CONFIG --exists --print-errors "grilo-0.1 >= $GRILO_REQS") 2>&5
++    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"grilo-0.2 >= \$GRILO_REQS\""; } >&5
++  ($PKG_CONFIG --exists --print-errors "grilo-0.2 >= $GRILO_REQS") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; then
+-  pkg_cv_GRILO_CFLAGS=`$PKG_CONFIG --cflags "grilo-0.1 >= $GRILO_REQS" 2>/dev/null`
++  pkg_cv_GRILO_CFLAGS=`$PKG_CONFIG --cflags "grilo-0.2 >= $GRILO_REQS" 2>/dev/null`
+ else
+   pkg_failed=yes
+ fi
+@@ -20453,12 +20453,12 @@ if test -n "$GRILO_LIBS"; then
+     pkg_cv_GRILO_LIBS="$GRILO_LIBS"
+  elif test -n "$PKG_CONFIG"; then
+     if test -n "$PKG_CONFIG" && \
+-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"grilo-0.1 >= \$GRILO_REQS\""; } >&5
+-  ($PKG_CONFIG --exists --print-errors "grilo-0.1 >= $GRILO_REQS") 2>&5
++    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"grilo-0.2 >= \$GRILO_REQS\""; } >&5
++  ($PKG_CONFIG --exists --print-errors "grilo-0.2 >= $GRILO_REQS") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; then
+-  pkg_cv_GRILO_LIBS=`$PKG_CONFIG --libs "grilo-0.1 >= $GRILO_REQS" 2>/dev/null`
++  pkg_cv_GRILO_LIBS=`$PKG_CONFIG --libs "grilo-0.2 >= $GRILO_REQS" 2>/dev/null`
+ else
+   pkg_failed=yes
+ fi
+@@ -20478,9 +20478,9 @@ else
+         _pkg_short_errors_supported=no
+ fi
+         if test $_pkg_short_errors_supported = yes; then
+-	        GRILO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "grilo-0.1 >= $GRILO_REQS" 2>&1`
++	        GRILO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "grilo-0.2 >= $GRILO_REQS" 2>&1`
+         else
+-	        GRILO_PKG_ERRORS=`$PKG_CONFIG --print-errors "grilo-0.1 >= $GRILO_REQS" 2>&1`
++	        GRILO_PKG_ERRORS=`$PKG_CONFIG --print-errors "grilo-0.2 >= $GRILO_REQS" 2>&1`
+         fi
+ 	# Put the nasty error message in config.log where it belongs
+ 	echo "$GRILO_PKG_ERRORS" >&5
+diff -up rhythmbox-2.97/plugins/grilo/rb-grilo-plugin.c.grilo02 rhythmbox-2.97/plugins/grilo/rb-grilo-plugin.c
+--- rhythmbox-2.97/plugins/grilo/rb-grilo-plugin.c.grilo02	2012-05-30 18:51:09.000000000 -0400
++++ rhythmbox-2.97/plugins/grilo/rb-grilo-plugin.c	2012-08-30 10:48:04.564940566 -0400
+@@ -65,7 +65,7 @@ typedef struct
+ {
+ 	PeasExtensionBase parent;
+ 
+-	GrlPluginRegistry *registry;
++	GrlRegistry *registry;
+ 	GHashTable *sources;
+ 	RBShellPlayer *shell_player;
+ 	gulong emit_cover_art_id;
+@@ -93,43 +93,53 @@ rb_grilo_plugin_init (RBGriloPlugin *plu
+ static void
+ rb_grilo_plugin_source_deleted (RBGriloSource *source, RBGriloPlugin *plugin)
+ {
+-	GrlMediaSource *media_source;
++	GrlSource *grilo_source;
+ 
+-	g_object_get (source, "media-source", &media_source, NULL);
+-	g_hash_table_remove (plugin->sources, media_source);
+-	g_object_unref (media_source);
++	g_object_get (source, "media-source", &grilo_source, NULL);
++	g_hash_table_remove (plugin->sources, grilo_source);
++	g_object_unref (grilo_source);
+ }
+ 
+ static void
+-grilo_source_added_cb (GrlPluginRegistry *registry, GrlMediaPlugin *grilo_plugin, RBGriloPlugin *plugin)
++grilo_source_added_cb (GrlRegistry *registry, GrlSource *grilo_source, RBGriloPlugin *plugin)
+ {
+-	RBSource *grilo_source;
++	GrlPlugin *grilo_plugin;
++	GrlSupportedOps ops;
++	const GList *keys;
++	RBSource *source;
+ 	RBShell *shell;
+ 	int i;
+ 
+-	if (GRL_IS_MEDIA_SOURCE (grilo_plugin) == FALSE) {
+-		/* TODO use metadata sources for album art and lyrics */
+-		rb_debug ("grilo source %s is not interesting",
+-			  grl_media_plugin_get_name (grilo_plugin));
+-		return;
+-	}
+-
++	grilo_plugin = grl_source_get_plugin (grilo_source);
+ 	for (i = 0; i < G_N_ELEMENTS (ignored_plugins); i++) {
+-		if (g_str_equal (ignored_plugins[i], grl_media_plugin_get_id (grilo_plugin))) {
++		if (g_str_equal (ignored_plugins[i], grl_plugin_get_id (grilo_plugin))) {
+ 			rb_debug ("grilo source %s is blacklisted",
+-				  grl_media_plugin_get_name (grilo_plugin));
++				  grl_source_get_name (grilo_source));
+ 			return;
+ 		}
+ 	}
+ 
+-	rb_debug ("new grilo source: %s", grl_media_plugin_get_name (grilo_plugin));
++	ops = grl_source_supported_operations (grilo_source);
++	if (((ops & GRL_OP_BROWSE) == 0) && ((ops & GRL_OP_SEARCH) == 0)) {
++		rb_debug ("grilo source %s is not interesting",
++			  grl_source_get_name (grilo_source));
++		return;
++	}
++
++	keys = grl_source_supported_keys (grilo_source);
++	if (g_list_find ((GList *)keys, GINT_TO_POINTER (GRL_METADATA_KEY_URL)) == NULL) {
++		rb_debug ("grilo source %s doesn't do urls", grl_source_get_name (grilo_source));
++		return;
++	}
++
++	rb_debug ("new grilo source: %s", grl_source_get_name (grilo_source));
+ 
+-	grilo_source = rb_grilo_source_new (G_OBJECT (plugin), GRL_MEDIA_SOURCE (grilo_plugin));
+-	g_hash_table_insert (plugin->sources, grilo_plugin, grilo_source);
++	source = rb_grilo_source_new (G_OBJECT (plugin), grilo_source);
++	g_hash_table_insert (plugin->sources, grilo_source, source);
+ 
+ 	/* probably put some sources under 'shared', some under 'stores'? */
+ 	g_object_get (plugin, "object", &shell, NULL);
+-	rb_shell_append_display_page (shell, RB_DISPLAY_PAGE (grilo_source), RB_DISPLAY_PAGE_GROUP_SHARED);
++	rb_shell_append_display_page (shell, RB_DISPLAY_PAGE (source), RB_DISPLAY_PAGE_GROUP_SHARED);
+ 	g_object_unref (shell);
+ }
+ 
+@@ -177,9 +187,9 @@ impl_activate (PeasActivatable *plugin)
+ 					     g_object_unref);
+ 
+ 	grl_init (0, NULL);
+-	pi->registry = grl_plugin_registry_get_default ();
++	pi->registry = grl_registry_get_default ();
+ 	g_signal_connect (pi->registry, "source-added", G_CALLBACK (grilo_source_added_cb), pi);
+-	if (grl_plugin_registry_load_all (pi->registry, &error) == FALSE) {
++	if (grl_registry_load_all_plugins (pi->registry, &error) == FALSE) {
+ 		g_warning ("Failed to load Grilo plugins: %s", error->message);
+ 		g_clear_error (&error);
+ 	}
+@@ -194,8 +204,8 @@ impl_activate (PeasActivatable *plugin)
+ }
+ 
+ static void
+-_delete_cb (GVolume         *volume,
+-	    RBSource        *source,
++_delete_cb (GrlSource *grilo_source,
++	    RBSource *source,
+ 	    RBGriloPlugin *plugin)
+ {
+ 	/* block the source deleted handler so we don't modify the hash table
+diff -up rhythmbox-2.97/plugins/grilo/rb-grilo-source.c.grilo02 rhythmbox-2.97/plugins/grilo/rb-grilo-source.c
+--- rhythmbox-2.97/plugins/grilo/rb-grilo-source.c.grilo02	2012-05-30 18:51:09.000000000 -0400
++++ rhythmbox-2.97/plugins/grilo/rb-grilo-source.c	2012-08-30 10:53:53.035945795 -0400
+@@ -91,7 +91,7 @@ static RBEntryView *impl_get_entry_view
+ 
+ struct _RBGriloSourcePrivate
+ {
+-	GrlMediaSource *grilo_source;
++	GrlSource *grilo_source;
+ 	GList *grilo_keys;
+ 
+ 	RhythmDBEntryType *entry_type;
+@@ -189,7 +189,7 @@ rb_grilo_source_class_init (RBGriloSourc
+ 					 g_param_spec_object ("grilo-source",
+ 							      "grilo source",
+ 							      "grilo source object",
+-							      GRL_TYPE_MEDIA_SOURCE,
++							      GRL_TYPE_SOURCE,
+ 							      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ 
+ 	g_type_class_add_private (klass, sizeof (RBGriloSourcePrivate));
+@@ -286,51 +286,51 @@ rb_grilo_source_constructed (GObject *ob
+ 			  G_CALLBACK (notify_sort_order_cb),
+ 			  source);
+ 
+-	source_keys = grl_metadata_source_supported_keys (GRL_METADATA_SOURCE (source->priv->grilo_source));
++	source_keys = grl_source_supported_keys (source->priv->grilo_source);
+ 
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_TRACK_NUMBER)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_TRACK_NUMBER))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_TRACK_NUMBER, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_TRACK_NUMBER);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_TRACK_NUMBER));
+ 	}
+ 
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_TITLE)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_TITLE))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_TITLE, TRUE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_TITLE);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_TITLE));
+ 	}
+ 
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_GENRE)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_GENRE))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_GENRE, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_GENRE);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_GENRE));
+ 	}
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_ARTIST)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_ARTIST))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_ARTIST, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_ARTIST);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_ARTIST));
+ 	}
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_ALBUM)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_ALBUM))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_ALBUM, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_ALBUM);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_ALBUM));
+ 	}
+ 	/*
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_DATE)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_DATE))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_YEAR, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_DATE);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_DATE));
+ 	}
+ 	*/
+-	if (g_list_find ((GList *)source_keys, GRL_METADATA_KEY_DURATION)) {
++	if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_DURATION))) {
+ 		rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_DURATION, FALSE);
+ 		source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+-							   GRL_METADATA_KEY_DURATION);
++							   GUINT_TO_POINTER(GRL_METADATA_KEY_DURATION));
+ 	}
+ 
+-	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GRL_METADATA_KEY_CHILDCOUNT);
+-	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GRL_METADATA_KEY_URL);
+-	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GRL_METADATA_KEY_THUMBNAIL);
++	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_CHILDCOUNT));
++	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_URL));
++	source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_THUMBNAIL));
+ 
+ 	/* probably add an image column too? */
+ 	source->priv->browser_model = gtk_tree_store_new (4, GRL_TYPE_MEDIA, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT);
+@@ -365,7 +365,7 @@ rb_grilo_source_constructed (GObject *ob
+ 	browserbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+ 
+ 	/* search bar (if the source supports searching) */
+-	if (grl_metadata_source_supported_operations (GRL_METADATA_SOURCE (source->priv->grilo_source)) & GRL_OP_SEARCH) {
++	if (grl_source_supported_operations (source->priv->grilo_source) & GRL_OP_SEARCH) {
+ 		source->priv->search_entry = rb_search_entry_new (FALSE);
+ 		g_object_set (source->priv->search_entry, "explicit-mode", TRUE, NULL);
+ 		g_signal_connect (source->priv->search_entry, "search", G_CALLBACK (search_cb), source);
+@@ -405,7 +405,7 @@ rb_grilo_source_constructed (GObject *ob
+ }
+ 
+ RBSource *
+-rb_grilo_source_new (GObject *plugin, GrlMediaSource *grilo_source)
++rb_grilo_source_new (GObject *plugin, GrlSource *grilo_source)
+ {
+ 	GObject *source;
+ 	RBShell *shell;
+@@ -414,7 +414,7 @@ rb_grilo_source_new (GObject *plugin, Gr
+ 	RhythmDB *db;
+ 	char *name;
+ 
+-	name = g_strdup_printf ("grilo:%s", grl_media_plugin_get_id (GRL_MEDIA_PLUGIN (grilo_source)));
++	name = g_strdup_printf ("grilo:%s", grl_source_get_id (grilo_source));
+ 
+ 	g_object_get (plugin, "object", &shell, NULL);
+ 	g_object_get (shell, "db", &db, NULL);
+@@ -431,7 +431,7 @@ rb_grilo_source_new (GObject *plugin, Gr
+ 
+ 	settings = g_settings_new ("org.gnome.rhythmbox.plugins.grilo");
+ 	source = g_object_new (RB_TYPE_GRILO_SOURCE,
+-			       "name", grl_metadata_source_get_name (GRL_METADATA_SOURCE (grilo_source)),
++			       "name", grl_source_get_name (grilo_source),
+ 			       "entry-type", entry_type,
+ 			       "shell", shell,
+ 			       "plugin", plugin,
+@@ -506,6 +506,24 @@ _rb_grilo_source_register_type (GTypeMod
+ 	rb_grilo_entry_type_register_type (module);
+ }
+ 
++static GrlOperationOptions *
++make_operation_options (RBGriloSource *source, GrlSupportedOps op, int position)
++{
++	GrlOperationOptions *options;
++	GrlCaps *caps;
++
++	caps = grl_source_get_caps (source->priv->grilo_source, op);
++
++	options = grl_operation_options_new (caps);
++	grl_operation_options_set_skip (options, position);
++	grl_operation_options_set_count (options,
++					 CONTAINER_FETCH_SIZE);
++	grl_operation_options_set_type_filter (options, GRL_TYPE_FILTER_AUDIO);
++	grl_operation_options_set_flags (options, GRL_RESOLVE_NORMAL);
++
++	return options;
++}
++
+ /* grilo media -> rhythmdb entry */
+ 
+ static void
+@@ -546,7 +564,7 @@ create_entry_for_media (RhythmDB *db, Rh
+ 	set_string_prop_from_key (db, entry, RHYTHMDB_PROP_GENRE, data, GRL_METADATA_KEY_GENRE);
+ 	set_string_prop_from_key (db, entry, RHYTHMDB_PROP_TITLE, data, GRL_METADATA_KEY_TITLE);
+ 
+-	if (grl_data_has_key (data, GRL_METADATA_KEY_DATE)) {
++	if (grl_data_has_key (data, GRL_METADATA_KEY_PUBLICATION_DATE)) {
+ 		/* something - grilo has this as a string? */
+ 	}
+ 
+@@ -643,7 +661,7 @@ set_container_type (RBGriloSource *sourc
+ }
+ 
+ static void
+-grilo_browse_cb (GrlMediaSource *grilo_source, guint operation_id, GrlMedia *media, guint remaining, RBGriloSource *source, const GError *error)
++grilo_browse_cb (GrlSource *grilo_source, guint operation_id, GrlMedia *media, guint remaining, RBGriloSource *source, const GError *error)
+ {
+ 	if (operation_id != source->priv->browse_op) {
+ 		return;
+@@ -651,7 +669,8 @@ grilo_browse_cb (GrlMediaSource *grilo_s
+ 
+ 	if (error != NULL) {
+ 		/* do something? */
+-		rb_debug ("got error for %s: %s", grl_metadata_source_get_name (GRL_METADATA_SOURCE (grilo_source)), error->message);
++		rb_debug ("got error for %s: %s", grl_source_get_name (grilo_source), error->message);
++		source->priv->browse_op = 0;
+ 		return;
+ 	}
+ 
+@@ -741,24 +760,24 @@ grilo_browse_cb (GrlMediaSource *grilo_s
+ static void
+ browse_next (RBGriloSource *source)
+ {
++	GrlOperationOptions *options;
+ 	rb_debug ("next browse op for %s (%d)",
+-		  grl_metadata_source_get_name (GRL_METADATA_SOURCE (source->priv->grilo_source)),
++		  grl_source_get_name (source->priv->grilo_source),
+ 		  source->priv->browse_position);
+ 	source->priv->browse_got_results = FALSE;
+-	source->priv->browse_op = grl_media_source_browse (source->priv->grilo_source,
+-							   source->priv->browse_container,
+-							   source->priv->grilo_keys,
+-							   source->priv->browse_position,
+-							   CONTAINER_FETCH_SIZE,
+-							   GRL_RESOLVE_NORMAL,
+-							   (GrlMediaSourceResultCb) grilo_browse_cb,
+-							   source);
++	options = make_operation_options (source, GRL_OP_BROWSE, source->priv->browse_position);
++	source->priv->browse_op = grl_source_browse (source->priv->grilo_source,
++						     source->priv->browse_container,
++						     source->priv->grilo_keys,
++						     options,
++						     (GrlSourceResultCb) grilo_browse_cb,
++						     source);
+ }
+ 
+ static void
+ start_browse (RBGriloSource *source, GrlMedia *container, GtkTreeIter *container_iter, int position)
+ {
+-	rb_debug ("starting browse op for %s", grl_metadata_source_get_name (GRL_METADATA_SOURCE (source->priv->grilo_source)));
++	rb_debug ("starting browse op for %s", grl_source_get_name (source->priv->grilo_source));
+ 
+ 	/* cancel existing operation? */
+ 	if (source->priv->browse_op != 0) {
+@@ -784,7 +803,7 @@ start_browse (RBGriloSource *source, Grl
+ static void media_browse_next (RBGriloSource *source);
+ 
+ static void
+-grilo_media_browse_cb (GrlMediaSource *grilo_source, guint operation_id, GrlMedia *media, guint remaining, RBGriloSource *source, const GError *error)
++grilo_media_browse_cb (GrlSource *grilo_source, guint operation_id, GrlMedia *media, guint remaining, RBGriloSource *source, const GError *error)
+ {
+ 	if (operation_id != source->priv->media_browse_op) {
+ 		return;
+@@ -793,7 +812,7 @@ grilo_media_browse_cb (GrlMediaSource *g
+ 	if (error != NULL) {
+ 		/* do something? */
+ 		rb_debug ("got error for %s: %s",
+-			  grl_metadata_source_get_name (GRL_METADATA_SOURCE (grilo_source)),
++			  grl_source_get_name (grilo_source),
+ 			  error->message);
+ 		return;
+ 	}
+@@ -858,31 +877,35 @@ grilo_media_browse_cb (GrlMediaSource *g
+ static void
+ media_browse_next (RBGriloSource *source)
+ {
++	GrlOperationOptions *options;
++
+ 	rb_debug ("next media_browse op for %s (%d)",
+-		  grl_metadata_source_get_name (GRL_METADATA_SOURCE (source->priv->grilo_source)),
++		  grl_source_get_name (source->priv->grilo_source),
+ 		  source->priv->media_browse_position);
+ 
+ 	source->priv->media_browse_got_results = FALSE;
+ 	if (source->priv->media_browse_container != NULL) {
++		options = make_operation_options (source,
++						  GRL_OP_BROWSE,
++						  source->priv->media_browse_position);
+ 		source->priv->media_browse_op =
+-			grl_media_source_browse (source->priv->grilo_source,
+-						 source->priv->media_browse_container,
+-						 source->priv->grilo_keys,
+-						 source->priv->media_browse_position,
+-						 CONTAINER_FETCH_SIZE,
+-						 GRL_RESOLVE_NORMAL,
+-						 (GrlMediaSourceResultCb) grilo_media_browse_cb,
+-						 source);
++			grl_source_browse (source->priv->grilo_source,
++					   source->priv->media_browse_container,
++					   source->priv->grilo_keys,
++					   options,
++					   (GrlSourceResultCb) grilo_media_browse_cb,
++					   source);
+ 	} else {
++		options = make_operation_options (source,
++						  GRL_OP_SEARCH,
++						  source->priv->media_browse_position);
+ 		source->priv->media_browse_op =
+-			grl_media_source_search (source->priv->grilo_source,
+-						 source->priv->search_text,
+-						 source->priv->grilo_keys,
+-						 source->priv->media_browse_position,
+-						 CONTAINER_FETCH_SIZE,
+-						 GRL_RESOLVE_NORMAL,
+-						 (GrlMediaSourceResultCb) grilo_media_browse_cb,
+-						 source);
++			grl_source_search (source->priv->grilo_source,
++					   source->priv->search_text,
++					   source->priv->grilo_keys,
++					   options,
++					   (GrlSourceResultCb) grilo_media_browse_cb,
++					   source);
+ 	}
+ }
+ 
+@@ -890,7 +913,7 @@ static void
+ start_media_browse (RBGriloSource *source, GrlMedia *container, GtkTreeIter *container_iter, guint limit)
+ {
+ 	rb_debug ("starting media browse for %s",
+-		  grl_metadata_source_get_name (GRL_METADATA_SOURCE (source->priv->grilo_source)));
++		  grl_source_get_name (source->priv->grilo_source));
+ 
+ 	/* cancel existing operation? */
+ 	if (source->priv->media_browse_op != 0) {
+diff -up rhythmbox-2.97/plugins/grilo/rb-grilo-source.h.grilo02 rhythmbox-2.97/plugins/grilo/rb-grilo-source.h
+--- rhythmbox-2.97/plugins/grilo/rb-grilo-source.h.grilo02	2012-04-26 06:31:19.000000000 -0400
++++ rhythmbox-2.97/plugins/grilo/rb-grilo-source.h	2012-08-30 10:32:07.150926199 -0400
+@@ -72,7 +72,7 @@ typedef struct
+ } RBGriloEntryData;
+ 
+ RBSource *		rb_grilo_source_new	(GObject *plugin,
+-						 GrlMediaSource *grilo_source);
++						 GrlSource *grilo_source);
+ GType			rb_grilo_source_get_type (void);
+ void			_rb_grilo_source_register_type	(GTypeModule *module);
+ 
diff --git a/rhythmbox.spec b/rhythmbox.spec
index c5e80f2..482ddc3 100644
--- a/rhythmbox.spec
+++ b/rhythmbox.spec
@@ -3,7 +3,7 @@
 Name: rhythmbox
 Summary: Music Management Application
 Version: 2.97
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+ with exceptions and GFDL
 Group: Applications/Multimedia
 URL: http://projects.gnome.org/rhythmbox/
@@ -54,12 +54,15 @@ BuildRequires: gnome-common
 BuildRequires: clutter-gtk-devel
 BuildRequires: clutter-gst-devel
 BuildRequires: libmx-devel
-BuildRequires: grilo-devel
+BuildRequires: grilo-devel >= 0.2
 BuildRequires: libtdb-devel
 
 # https://bugzilla.gnome.org/show_bug.cgi?id=677286
 Patch0: 0001-audiocd-Port-to-libmusicbrainz5.patch
 
+# commit 86eb47f705b2f0e6e8ba8d90073c961d47dbfb95
+Patch1: rhythmbox-2.97-grilo-0.2.0.patch
+
 ExcludeArch:    s390 s390x
 
 Obsoletes: rhythmbox-upnp < %{version}-%{release}
@@ -95,6 +98,7 @@ a Rhythmbox plugin.
 %prep
 %setup -q
 %patch0 -p1 -b .mb5
+%patch1 -p1 -b .grilo02
 
 %build
 
@@ -205,6 +209,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas >&/dev/null || :
 %{_datadir}/gir-1.0/*.gir
 
 %changelog
+* Thu Aug 30 2012 Tom Callaway <spot at fedoraproject.org> 2.97-5
+- rebuild for grilo 0.2.0
+
 * Thu Aug 30 2012 Bastien Nocera <bnocera at redhat.com> 2.97-4
 - Port to libmusicbrainz5
 


More information about the scm-commits mailing list