rpms/rhythmbox/F-8 rb-delete-ipod-tracks.patch, NONE, 1.1 rb-disable-local-uri-escaping-5.patch, NONE, 1.1 rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch, 1.1, 1.2 rhythmbox.spec, 1.135, 1.136

Bastien Nocera (hadess) fedora-extras-commits at redhat.com
Mon Oct 29 13:27:52 UTC 2007


Author: hadess

Update of /cvs/pkgs/rpms/rhythmbox/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25090

Modified Files:
	rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch 
	rhythmbox.spec 
Added Files:
	rb-delete-ipod-tracks.patch 
	rb-disable-local-uri-escaping-5.patch 
Log Message:
* Mon Oct 29 2007 - Bastien Nocera <bnocera at redhat.com> - 0.11.2-10
- Update patch for #242260, tooltips weren't working
- Add patch to fix problems importing files with spaces in them (#291571)
- Add patch to remove iPod tracks when removed, rather than put them
  in the trash (#330101)


rb-delete-ipod-tracks.patch:

--- NEW FILE rb-delete-ipod-tracks.patch ---
Index: rb-ipod-source.c
===================================================================
--- rb-ipod-source.c	(revision 5381)
+++ rb-ipod-source.c	(working copy)
@@ -1064,6 +1064,7 @@
 	for (tem = sel; tem != NULL; tem = tem->next) {
 		RhythmDBEntry *entry;
 		const gchar *uri;
+		gchar *file;
 		Itdb_Track *track;
 
 		entry = (RhythmDBEntry *)tem->data;
@@ -1077,7 +1078,11 @@
 
 		rb_ipod_db_remove_track (priv->ipod_db, track);
 		g_hash_table_remove (priv->entry_map, entry);
-		rhythmdb_entry_move_to_trash (db, entry);
+		file = g_filename_from_uri (uri, NULL, NULL);
+		if (file != NULL)
+			g_unlink (file);
+		g_free (file);
+		rhythmdb_entry_delete (db, entry);
 		rhythmdb_commit (db);
 	}
 

rb-disable-local-uri-escaping-5.patch:

--- NEW FILE rb-disable-local-uri-escaping-5.patch ---
Index: lib/rb-file-helpers.c
===================================================================
--- lib/rb-file-helpers.c	(revision 5418)
+++ lib/rb-file-helpers.c	(working copy)
@@ -1070,41 +1070,37 @@
 {
 	char *result = NULL;
 
+	g_return_val_if_fail (uri != NULL, NULL);
+
 	if (uri[0] == '/') {
 		/* local path */
 		char *tmp;
 		result = gnome_vfs_make_path_name_canonical (uri);
-		tmp = gnome_vfs_escape_path_string (result);
+		tmp = gnome_vfs_get_uri_from_local_path (result);
 		g_free (result);
 		if (tmp == NULL)
 			return NULL;
-		tmp = escape_extra_gnome_vfs_chars (tmp);
-		result = g_strconcat ("file://", tmp, NULL);
-		g_free (tmp);
-	} else  if (g_str_has_prefix (uri, "file://")) {
-	    	/* local file, rhythmdb wants this path escaped */
-		char *tmp1, *tmp2;
-		tmp1  = gnome_vfs_unescape_string (uri + 7, NULL);  /* ignore "file://" */
-		tmp2 = gnome_vfs_escape_path_string (tmp1);
-		g_free (tmp1);
-		if (tmp2 == NULL)
-			return NULL;
-		tmp2 = escape_extra_gnome_vfs_chars (tmp2);
-		result = g_strconcat ("file://", tmp2, NULL); /* re-add scheme */
-		g_free (tmp2);
-	} else {
-		GnomeVFSURI *vfsuri = gnome_vfs_uri_new (uri);
+		result = tmp;
+	} else if (strstr (uri, "://") == NULL) {
+		/* local relative path */
+		char *curdir, *escaped, *curdir_withslash;
 
-		if (vfsuri != NULL) {
-			/* non-local uri, leave as-is */
-			gnome_vfs_uri_unref (vfsuri);
+		curdir = g_get_current_dir ();
+		escaped = gnome_vfs_escape_path_string (curdir);
+		curdir_withslash = g_strdup_printf ("file://%s%c",
+						    escaped, G_DIR_SEPARATOR);
+		g_free (escaped);
+		g_free (curdir);
+
+		escaped = gnome_vfs_escape_path_string (uri);
+		result = gnome_vfs_uri_make_full_from_relative
+			(curdir_withslash, escaped);
+		g_free (curdir_withslash);
+		g_free (escaped);
+	} else {
+		result = gnome_vfs_make_uri_canonical (uri);
+		if (result == NULL)
 			result = g_strdup (uri);
-		} else {
-			/* this may just mean that gnome-vfs doesn't recognise the
-			 * uri scheme, so return it as is */
-			rb_debug ("Error processing probable URI %s", uri);
-			result = g_strdup (uri);
-		}
 	}
 
 	return result;
Index: rhythmdb/rhythmdb-tree.c
===================================================================
--- rhythmdb/rhythmdb-tree.c	(revision 5418)
+++ rhythmdb/rhythmdb-tree.c	(working copy)
@@ -107,7 +107,9 @@
 					RBTreePropertyItFunc genres_func,
 					gpointer data);
 
-#define RHYTHMDB_TREE_XML_VERSION "1.3"
+/* Update both of those! */
+#define RHYTHMDB_TREE_XML_VERSION "1.4"
+#define RHYTHMDB_TREE_XML_VERSION_INT 140
 
 static void destroy_tree_property (RhythmDBTreeProperty *prop);
 static RhythmDBTreeProperty *get_or_create_album (RhythmDBTree *db, RhythmDBTreeProperty *artist,
@@ -326,6 +328,20 @@
 	gboolean reload_all_metadata;
 };
 
+/* Returns the version as an int, multiplied by 100,
+ * eg. "1.4" becomes 140 */
+static int
+version_to_int (const char *version)
+{
+	float ver;
+
+	if (sscanf (version, "%f", &ver) != 1) {
+		return (int) (1.0 * 100);
+	}
+
+	return ver * 100;
+}
+
 static void
 rhythmdb_tree_parser_start_element (struct RhythmDBTreeLoadContext *ctx,
 				    const char *name,
@@ -351,22 +367,32 @@
 				if (!strcmp (*attrs, "version")) {
 					const char *version = *(attrs+1);
 
-					if (!strcmp (version, "1.0") || !strcmp (version, "1.1")) {
+					switch (version_to_int (version)) {
+					case 100:
+					case 110:
+						rb_debug ("old version of rhythmdb, performing URI canonicalisation for all entries (DB version 1.0 or 1.1)");
 						ctx->canonicalise_uris = TRUE;
-						rb_debug ("old version of rhythmdb, performing URI canonicalisation for all entries");
-					} else if (!strcmp (version, "1.2")) {
-						/* current version*/
-						rb_debug ("reloading all file metadata to get MusicBrainz tags");
+					case 120:
+						rb_debug ("reloading all file metadata to get MusicBrainz tags (DB version 1.2)");
 						ctx->reload_all_metadata = TRUE;
-					} else if (!strcmp (version, "1.3")) {
-						/* current version*/
-					} else {
-						g_set_error (ctx->error,
-							     RHYTHMDB_TREE_ERROR,
-							     RHYTHMDB_TREE_ERROR_DATABASE_TOO_NEW,
-							     _("The database was created by a later version of rhythmbox."
-							       "  This version of rhythmbox cannot read the database."));
-						xmlStopParser (ctx->xmlctx);
+					case 130:
+						/* Avoid being warned twice for very old DBs */
+						if (ctx->canonicalise_uris == FALSE) {
+							rb_debug ("old version of rhythmdb, performing URI canonicalisation for all entries (DB version 1.3)");
+							ctx->canonicalise_uris = TRUE;
+						}
+					case RHYTHMDB_TREE_XML_VERSION_INT:
+						/* current version */
+						break;
+					default:
+						if (version_to_int (version) > RHYTHMDB_TREE_XML_VERSION_INT) {
+							g_set_error (ctx->error,
+								     RHYTHMDB_TREE_ERROR,
+								     RHYTHMDB_TREE_ERROR_DATABASE_TOO_NEW,
+								     _("The database was created by a later version of rhythmbox."
+								       "  This version of rhythmbox cannot read the database."));
+							xmlStopParser (ctx->xmlctx);
+						}
 					}
 				} else {
 					g_assert_not_reached ();

rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch:

Index: rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch
===================================================================
RCS file: /cvs/pkgs/rpms/rhythmbox/F-8/rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch	11 Oct 2007 15:39:13 -0000	1.1
+++ rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch	29 Oct 2007 13:27:46 -0000	1.2
@@ -43,3 +43,65 @@
  
  	if (title != NULL)
  		shell->priv->cached_notify_primary = title;
+Index: rb-shell.c
+===================================================================
+--- rb-shell.c	(revision 5414)
++++ rb-shell.c	(working copy)
+@@ -1964,7 +1964,7 @@
+ 
+ 	rb_shell_notify_playing_entry (shell, entry, FALSE);
+ 
+-	rb_tray_icon_set_tooltip_primary_markup (shell->priv->tray_icon, shell->priv->cached_notify_primary);
++	rb_tray_icon_set_tooltip_primary_text (shell->priv->tray_icon, shell->priv->cached_notify_primary);
+ 	rb_tray_icon_set_tooltip_icon (shell->priv->tray_icon, shell->priv->cached_art_icon);
+ 	rb_shell_update_tray_tooltip_elapsed (shell);
+ }
+@@ -2044,7 +2044,7 @@
+ 	 */
+ 	entry = rb_shell_player_get_playing_entry (shell->priv->player_shell);
+ 	rb_shell_construct_notify_titles (shell, entry);
+-	rb_tray_icon_set_tooltip_primary_markup (shell->priv->tray_icon, shell->priv->cached_notify_primary);
++	rb_tray_icon_set_tooltip_primary_text (shell->priv->tray_icon, shell->priv->cached_notify_primary);
+ 	rb_shell_update_tray_tooltip_elapsed (shell);
+ 	
+ 	if (entry)
+Index: rb-tray-icon.c
+===================================================================
+--- rb-tray-icon.c	(revision 5414)
++++ rb-tray-icon.c	(working copy)
+@@ -640,16 +640,16 @@
+ }
+ 
+ void
+-rb_tray_icon_set_tooltip_primary_markup (RBTrayIcon *icon,
+-					 const char *primary_markup)
++rb_tray_icon_set_tooltip_primary_text (RBTrayIcon *icon,
++				       const char *primary_text)
+ {
+ 	/* hide, then reshow in the right position & size */
+ 	gtk_widget_hide (icon->priv->tooltip);
+ 
+-	if (primary_markup == NULL)
+-		primary_markup = TRAY_ICON_DEFAULT_TOOLTIP;
+-	gtk_label_set_markup (GTK_LABEL (icon->priv->tooltip_primary),
+-			      primary_markup);
++	if (primary_text == NULL)
++		primary_text = TRAY_ICON_DEFAULT_TOOLTIP;
++	gtk_label_set_text (GTK_LABEL (icon->priv->tooltip_primary),
++			    primary_text);
+ 
+ 	if (icon->priv->tooltip_unhide_id > 0)
+ 		g_source_remove (icon->priv->tooltip_unhide_id);
+Index: rb-tray-icon.h
+===================================================================
+--- rb-tray-icon.h	(revision 5414)
++++ rb-tray-icon.h	(working copy)
+@@ -66,7 +66,7 @@
+ 
+ void                    rb_tray_icon_cancel_notify (RBTrayIcon *icon);
+ 
+-void rb_tray_icon_set_tooltip_primary_markup (RBTrayIcon *icon, const char *primary_markup);
++void rb_tray_icon_set_tooltip_primary_text (RBTrayIcon *icon, const char *primary_text);
+ void rb_tray_icon_set_tooltip_icon (RBTrayIcon *icon, GtkWidget *msgicon);
+ void rb_tray_icon_set_tooltip_secondary_markup (RBTrayIcon *icon, const char *secondary_markup);
+ 


Index: rhythmbox.spec
===================================================================
RCS file: /cvs/pkgs/rpms/rhythmbox/F-8/rhythmbox.spec,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -r1.135 -r1.136
--- rhythmbox.spec	11 Oct 2007 15:39:13 -0000	1.135
+++ rhythmbox.spec	29 Oct 2007 13:27:46 -0000	1.136
@@ -3,7 +3,7 @@
 Name: rhythmbox
 Summary: Music Management Application 
 Version: 0.11.2
-Release: 9%{?dist}
+Release: 10%{?dist}
 License: GPLv2+ and GFDL+
 Group: Applications/Multimedia
 URL: http://www.gnome.org/projects/rhythmbox/
@@ -49,7 +49,12 @@
 Patch1: rhythmbox-upnp-assert.patch
 Patch2: rhythmbox-enable-stores.patch
 Patch3: rhythmbox-0.11.2-make-gpm-plugin-work.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=487415
 Patch4: rhythmbox-0.11.2-dont-escape-primary-in-notifications.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=445659
+Patch5: rb-disable-local-uri-escaping-5.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=346434
+Patch6: rb-delete-ipod-tracks.patch
 
 %description
 Rhythmbox is an integrated music management application based on the powerful
@@ -89,6 +94,10 @@
 pushd shell/
 %patch4 -p0 -b .notification-markup
 popd
+%patch5 -p0 -b .files-uri-escaping
+pushd plugins/ipod/
+%patch6 -p0 -b .ipod-trash
+popd
 
 %build
 
@@ -199,6 +208,12 @@
 %{_libdir}/rhythmbox/plugins/upnp_coherence
 
 %changelog
+* Mon Oct 29 2007 - Bastien Nocera <bnocera at redhat.com> - 0.11.2-10
+- Update patch for #242260, tooltips weren't working
+- Add patch to fix problems importing files with spaces in them (#291571)
+- Add patch to remove iPod tracks when removed, rather than put them
+  in the trash (#330101)
+
 * Thu Oct 11 2007 - Bastien Nocera <bnocera at redhat.com> - 0.11.2-9
 - Add patch to avoid Rhythmbox escaping the primary text in notifications
   as per the spec (#242260)




More information about the fedora-extras-commits mailing list