[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