Your message dated Thu, 9 Sep 2010 18:15:58 +0200
with message-id <20100909161558.gp2...@radis.liafa.jussieu.fr>
and subject line Re: Bug#596090: unblock: brasero/2.30.3-1
has caused the Debian Bug report #596090,
regarding unblock: brasero/2.30.3-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
596090: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=596090
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: freeze-exception

brasero (2.30.3-1) unstable; urgency=low
 .
   * Recommend cdrdao 1.2.3 so that it can actually work.
     + This restores CD copying functionality. Closes: #587408.
     + And audio CD burning without brasero-cdrkit. Closes: #580874.
   * New upstream bugfix and translation release.
     + Drops CD text support. Closes: #578366.
   * 90_relibtoolize.patch: updated for the new version.

The upstream changes are only bug fixes and translation updates:

        30-08-2010 2.30.3
        
        Bug fix release:
        
        #627687 - Rhythmbox create audio CD does not work
        #627005 - Starting brasero with --device=/dev/sr0 floating point 
exception
        #606010 - crashes at audio CD insertion
        #622394  - make check fails: The following files contain translations 
and are currently not in use
        #622968  - Add File Selector mis-behaves: No Places pane. Ctrl/click 
action wrong
        #623484  - No estimated drive speed shown
        + miscellaneous other fixes.
        
        Translations:
        
        Updated Hungarian translation (Gabor Kelemen <kelem...@gnome.hu>)
        Updated Indonesian translation (Andika Triwidada <and...@gmail.com>)
        Update Simplified Chinese translation (lainme <lainme...@gmail.com>)

The diff for non-{documentation,translation} files is attached. 

Cheers,
-- 
 .''`.
: :' :     “You would need to ask a lawyer if you don't know
`. `'       that a handshake of course makes a valid contract.”
  `-        --  J???rg Schilling
--- brasero-2.30.2/libbrasero-burn/brasero-blank-dialog.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-blank-dialog.c	2010-08-30 13:53:49.000000000 +0000
@@ -44,6 +44,7 @@
 #include "burn-basics.h"
 
 #include "brasero-session.h"
+#include "brasero-session-helper.h"
 #include "brasero-burn.h"
 
 #include "burn-plugin-manager.h"
@@ -202,6 +203,7 @@
 	priv = BRASERO_BLANK_DIALOG_PRIVATE (self);
 
 	burn = brasero_tool_dialog_get_burn (dialog);
+	brasero_burn_session_start (priv->session);
 	result = brasero_burn_blank (burn,
 				     priv->session,
 				     &error);
--- brasero-2.30.2/libbrasero-burn/brasero-burn-lib.h	2010-06-22 00:14:35.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-burn-lib.h	2010-08-30 14:03:40.000000000 +0000
@@ -48,7 +48,7 @@
 #define LIBBRASERO_BURN_VERSION_MINOR						\
 	30
 #define LIBBRASERO_BURN_VERSION_MICRO						\
-	2
+	3
 #define LIBBRASERO_BURN_AGE							\
 	202
 
--- brasero-2.30.2/libbrasero-burn/brasero-session.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-session.c	2010-08-30 13:53:49.000000000 +0000
@@ -2135,6 +2135,7 @@
 			   va_list arg_list)
 {
 	int len;
+	int wlen;
 	gchar *message;
 	gchar *offending;
 	BraseroBurnSessionPrivate *priv;
@@ -2156,8 +2157,14 @@
 		*offending = '\0';
 
 	len = strlen (message);
-	if (write (priv->session, message, len) != len)
-		g_warning ("Some log data couldn't be written: %s\n", message);
+	wlen = write (priv->session, message, len);
+	if (wlen != len) {
+		int errnum = errno;
+
+		g_warning ("Some log data couldn't be written: %s (%i out of %i) (%s)\n",
+		           message, wlen, len,
+		           strerror (errnum));
+	}
 
 	g_free (message);
 
--- brasero-2.30.2/libbrasero-burn/brasero-sum-dialog.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-sum-dialog.c	2010-08-30 13:53:49.000000000 +0000
@@ -60,6 +60,8 @@
 
 #include "brasero-tags.h"
 #include "brasero-track-disc.h"
+
+#include "brasero-session-helper.h"
 #include "brasero-burn.h"
 
 G_DEFINE_TYPE (BraseroSumDialog, brasero_sum_dialog, BRASERO_TYPE_TOOL_DIALOG);
@@ -622,6 +624,7 @@
 	self = BRASERO_SUM_DIALOG (dialog);
 	priv = BRASERO_SUM_DIALOG_PRIVATE (dialog);
 
+	brasero_burn_session_start (priv->session);
 	if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->md5_check)))
 		result = brasero_sum_dialog_check_disc_sum (self, brasero_medium_get_drive (medium));
 	else
--- brasero-2.30.2/libbrasero-burn/brasero-tool-dialog.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-tool-dialog.c	2010-07-05 18:24:32.000000000 +0000
@@ -45,7 +45,6 @@
 
 #include "brasero-misc.h"
 
-#include "brasero-session.h"
 #include "brasero-burn.h"
 
 #include "brasero-medium.h"
--- brasero-2.30.2/libbrasero-burn/brasero-track-data.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/brasero-track-data.c	2010-07-05 19:14:42.000000000 +0000
@@ -479,7 +479,7 @@
 		BraseroGraftPt *graft;
 		gchar newpath [MAXPATHLEN];
 
-		graft = grafts->data;
+		graft = iter->data;
 		mangle = brasero_track_data_mangle_joliet_name (mangle,
 								graft->path,
 								newpath);
--- brasero-2.30.2/libbrasero-burn/burn-dbus.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/burn-dbus.c	2010-08-30 13:53:49.000000000 +0000
@@ -118,7 +118,7 @@
 
 	res = dbus_g_proxy_call (proxy,
 				 "Inhibit", &error,
-				 G_TYPE_STRING, "Brasero", /* app_id */
+				 G_TYPE_STRING, g_get_application_name (), /* This is the human readable name of the application */
 				 G_TYPE_UINT, 0,           /* toplevel_xid */
 				 G_TYPE_STRING, reason,    /* reason */
 				 G_TYPE_UINT, 1 | 4,       /* flags (prevent logout, suspend) */
--- brasero-2.30.2/libbrasero-burn/burn-task-ctx.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/libbrasero-burn/burn-task-ctx.c	2010-08-30 13:53:49.000000000 +0000
@@ -682,20 +682,19 @@
 		return BRASERO_BURN_OK;
 	}
 
-	if (priv->progress < progress)
-		priv->progress = progress;
-
-	if (!priv->timer)
-		return BRASERO_BURN_OK;
-
-	elapsed = g_timer_elapsed (priv->timer, NULL);
+	if (priv->timer) {
+		elapsed = g_timer_elapsed (priv->timer, NULL);
 
-	if ((elapsed - priv->last_elapsed) > 0.5) {
-		priv->last_progress = priv->progress;
-		priv->last_elapsed = priv->current_elapsed;
-		priv->current_elapsed = elapsed;
+		if ((elapsed - priv->last_elapsed) > 0.5) {
+			priv->last_progress = priv->progress;
+			priv->last_elapsed = priv->current_elapsed;
+			priv->current_elapsed = elapsed;
+		}
 	}
 
+	if (priv->progress < progress)
+		priv->progress = progress;
+
 	return BRASERO_BURN_OK;
 }
 
--- brasero-2.30.2/libbrasero-media/brasero-media.h	2010-06-22 00:14:35.000000000 +0000
+++ brasero-2.30.3/libbrasero-media/brasero-media.h	2010-08-30 14:03:40.000000000 +0000
@@ -44,7 +44,7 @@
 #define LIBBRASERO_MEDIA_VERSION_MINOR						\
 	30
 #define LIBBRASERO_MEDIA_VERSION_MICRO						\
-	2
+	3
 #define LIBBRASERO_MEDIA_AGE							\
 	202
 #define LIBBRASERO_MEDIA_INSTALL							\
--- brasero-2.30.2/libbrasero-media/brasero-medium.c	2010-06-21 22:49:09.000000000 +0000
+++ brasero-2.30.3/libbrasero-media/brasero-medium.c	2010-07-23 08:30:38.000000000 +0000
@@ -2791,10 +2791,19 @@
 		return;
 	}
 
-	/* Get the number of CD-Text Data Packs */
-	num = (BRASERO_GET_16 (cd_text->hdr->len) -
-	      (sizeof (BraseroScsiTocPmaAtipHdr) - sizeof (cd_text->hdr->len)))  /
-	       sizeof (BraseroScsiCDTextPackData);
+	/* Get the number of CD-Text Data Packs.
+	 * Some drives seem to report an idiotic cd_text->hdr->len. So use size
+	 * to be on a safer side. */
+	if (size < sizeof (BraseroScsiTocPmaAtipHdr)) {
+		g_free (cd_text);
+		return;
+	}
+
+	num = (size - sizeof (BraseroScsiTocPmaAtipHdr)) / sizeof (BraseroScsiCDTextPackData);
+	if (num <= 0) {
+		g_free (cd_text);
+		return;
+	}
 
 	priv = BRASERO_MEDIUM_PRIVATE (self);
 
--- brasero-2.30.2/libbrasero-utils/brasero-misc.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/libbrasero-utils/brasero-misc.c	2010-08-30 13:53:49.000000000 +0000
@@ -409,15 +409,14 @@
 	GtkWidget *message;
 
 	message = gtk_message_dialog_new (GTK_WINDOW (parent),
-					  GTK_DIALOG_MODAL |
-					  GTK_DIALOG_DESTROY_WITH_PARENT,
+					  0,
 					  type,
 					  GTK_BUTTONS_CLOSE,
 					  "%s",
 					  primary_message);
 
 	gtk_window_set_icon_name (GTK_WINDOW (message),
-	                          gtk_window_get_icon_name (GTK_WINDOW (parent)));
+	                          parent? gtk_window_get_icon_name (GTK_WINDOW (parent)):"brasero");
 
 	gtk_window_set_title (GTK_WINDOW (message), "");
 
--- brasero-2.30.2/plugins/cdrkit/burn-wodim.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/plugins/cdrkit/burn-wodim.c	2010-08-30 13:53:49.000000000 +0000
@@ -276,7 +276,7 @@
                         int speed_1,
                         int speed_2)
 {
-	gdouble current_rate;
+	gdouble current_rate = -1.0;
 	BraseroMedia media;
 
 	if (brasero_job_get_media (BRASERO_JOB (process), &media) != BRASERO_BURN_OK)
--- brasero-2.30.2/plugins/cdrtools/burn-cdrecord.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/plugins/cdrtools/burn-cdrecord.c	2010-08-30 13:53:49.000000000 +0000
@@ -265,7 +265,7 @@
                            int speed_1,
                            int speed_2)
 {
-	gdouble current_rate;
+	gdouble current_rate = -1.0;
 	BraseroMedia media;
 
 	if (brasero_job_get_media (BRASERO_JOB (process), &media) != BRASERO_BURN_OK)
--- brasero-2.30.2/plugins/growisofs/burn-growisofs.c	2010-06-21 22:56:08.000000000 +0000
+++ brasero-2.30.3/plugins/growisofs/burn-growisofs.c	2010-08-30 13:53:49.000000000 +0000
@@ -138,10 +138,9 @@
 			   (gdouble) 100.0;
 
 		brasero_job_set_progress (BRASERO_JOB (process), fraction);
-
 		brasero_job_get_current_action (BRASERO_JOB (process), &action);
-		if (action == BRASERO_BURN_ACTION_BLANKING
-		&&  fraction >= 0.01) {
+
+		if (action == BRASERO_BURN_ACTION_BLANKING && fraction >= 0.01) {
 			/* we nullified 1% of the medium (more than 65536)
 			 * that's enough to make the filesystem unusable and
 			 * looking blank. A signal SIGTERM will be sent to stop
--- brasero-2.30.2/src/brasero-app.c	2010-06-21 22:56:11.000000000 +0000
+++ brasero-2.30.3/src/brasero-app.c	2010-08-30 13:53:49.000000000 +0000
@@ -1879,7 +1879,7 @@
 	/* Connect to session */
 	brasero_session_connect (object);
 
-	g_set_application_name (_("Brasero Disc Burner"));
+	g_set_application_name (_("Disc Burner"));
 	gtk_window_set_default_icon_name ("brasero");
 
 	brasero_io_set_parent_window_callback (brasero_app_get_io_parent_window, object);
--- brasero-2.30.2/src/brasero-audio-disc.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/src/brasero-audio-disc.c	2010-08-30 13:53:49.000000000 +0000
@@ -239,7 +239,7 @@
 
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (BRASERO_AUDIO_DISC (disc)->priv->tree));
 	if (!model)
-		return TRUE;
+		return FALSE;
 
 	return gtk_tree_model_iter_n_children (model, NULL) != 0;
 }
--- brasero-2.30.2/src/brasero-project.c	2010-06-21 22:56:12.000000000 +0000
+++ brasero-2.30.3/src/brasero-project.c	2010-08-30 13:53:49.000000000 +0000
@@ -1163,7 +1163,6 @@
 			    0);
 
 	g_object_unref (size_group);
-	
 }
 
 static void
@@ -2012,6 +2011,9 @@
 brasero_project_set_source (BraseroProject *project,
 			    BraseroURIContainer *source)
 {
+	if (project->priv->chooser)
+		gtk_dialog_response (GTK_DIALOG (project->priv->chooser), GTK_RESPONSE_CANCEL);
+
 	if (project->priv->activated_id) {
 		g_signal_handler_disconnect (project->priv->current_source,
 					     project->priv->activated_id);
--- brasero-2.30.2/src/eggtreemultidnd.c	2010-06-18 00:10:26.000000000 +0000
+++ brasero-2.30.3/src/eggtreemultidnd.c	2010-07-06 14:21:50.000000000 +0000
@@ -196,7 +196,7 @@
     priv_data->button_release_handler = 0;
   }
 
-  for (l = priv_data->event_list; l != NULL; l = l->next) 
+  for (l = priv_data->event_list; l != NULL && gtk_widget_get_realized (widget); l = l->next)
     gtk_propagate_event (widget, l->data);
 
   stop_drag_check (widget);
@@ -234,6 +234,15 @@
                           (GDestroyNotify) path_list_free);
 }
 
+static void
+egg_tree_multi_drag_begin (GtkWidget *tree,
+                           GdkDragContext *context,
+                           gpointer user_data)
+{
+  gtk_drag_set_icon_default (context);
+  g_signal_stop_emission_by_name (tree, "drag-begin");
+}
+
 static GList *
 get_context_data (GdkDragContext *context)
 {
@@ -332,14 +341,22 @@
       model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
       if (egg_tree_multi_drag_source_row_draggable (EGG_TREE_MULTI_DRAG_SOURCE (model), path_list))
 	{
+	  gulong sig;
+
+	  /* This is to disconnect the default signal handler for treeviews as
+  	   * it sometimes gives a warning. The default handler just sets the
+	   * icon which we do as well in our callback so it is fine. */
+	  sig = g_signal_connect (widget,
+	                          "drag-begin",
+	                          G_CALLBACK (egg_tree_multi_drag_begin),
+	                          NULL);
 	  context = gtk_drag_begin (widget,
 				    gtk_drag_source_get_target_list (widget),
 				    di->source_actions,
-				    priv_data->pressed_button,
+	                            priv_data->pressed_button,
 				    (GdkEvent*)event);
+	  g_signal_handler_disconnect (widget, sig);
 	  set_context_data (context, path_list);
-	  gtk_drag_set_icon_default (context);
-
 	}
       else
 	{
@@ -349,15 +366,6 @@
   return TRUE;
 }
 
-static void
-_treeview_destroyed (GtkWidget *widget,
-                     gpointer user_data)
-{
-	gboolean *called = user_data;
-	*called = TRUE;
-	g_object_ref (widget);
-}
-
 static gboolean
 egg_tree_multi_drag_button_press_event (GtkWidget      *widget,
 					GdkEventButton *event,
@@ -369,7 +377,7 @@
   gint cell_x, cell_y;
   GtkTreeSelection *selection;
   EggTreeMultiDndData *priv_data;
-
+  
   tree_view = GTK_TREE_VIEW (widget);
   priv_data = g_object_get_data (G_OBJECT (tree_view), EGG_TREE_MULTI_DND_STRING);
   if (priv_data == NULL)
@@ -378,18 +386,18 @@
       g_object_set_data (G_OBJECT (tree_view), EGG_TREE_MULTI_DND_STRING, priv_data);
     }
 
-  if (g_slist_find (priv_data->event_list, event)) 
+  if (g_slist_find (priv_data->event_list, event))
     return FALSE;
 
-  if (priv_data->event_list) 
+  if (priv_data->event_list)
     {
       /* save the event to be propagated in order */
       priv_data->event_list = g_slist_append (priv_data->event_list, gdk_event_copy ((GdkEvent*)event));
       return TRUE;
     }
-  
+
   if (event->type == GDK_2BUTTON_PRESS)
-   	return FALSE;
+    return FALSE;
   
   if (event->button == 3)
     return FALSE;
@@ -400,45 +408,8 @@
 				 &cell_x, &cell_y);
 
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
-
   if (path && gtk_tree_selection_path_is_selected (selection, path))
     {
-      GList *iter;
-      gulong sig_id;
-      GList *selected;
-      gboolean called = FALSE;
-      GtkWidgetClass *widget_klass;
-
-      /* The call to ::button_press_event will unselect all selected rows so
-       * we must save the selection and select all previously selected rows
-       * again. */
-      selected = gtk_tree_selection_get_selected_rows (selection, NULL);
-
-      /* In some rare cases (like for a GtkFileChooserDialog when the user
-       * double-clicks a row) "destroy" is called during ::button_press_event
-       * calls which makes widget and selection invalid afterwards.
-       * Note: it seems that a call to "destroy" makes all signals invalid as
-       * well so do not disconnect */
-      sig_id = g_signal_connect (widget,
-                                 "destroy",
-                                 G_CALLBACK (_treeview_destroyed),
-                                 &called);
-
-      widget_klass = GTK_WIDGET_GET_CLASS (tree_view);
-      widget_klass->button_press_event (widget, event);
-
-      if (!called)
-	g_signal_handler_disconnect (widget, sig_id);
-
-      selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
-      if (selection) {
-	      for (iter = selected; iter; iter = iter->next) {
-		gtk_tree_selection_select_path (selection, iter->data);
-		gtk_tree_path_free (iter->data);
-	      }
-	      g_list_free (selected);
-      }
-
       priv_data->pressed_button = event->button;
       priv_data->x = event->x;
       priv_data->y = event->y;
--- brasero-2.30.2/src/main.c	2010-06-21 22:56:12.000000000 +0000
+++ brasero-2.30.3/src/main.c	2010-08-30 13:53:49.000000000 +0000
@@ -236,7 +236,7 @@
 		if (!brasero_drive_can_write (burner)) {
 			gchar *string;
 
-			/* Translators: %s is the path of drive */
+			/* Translators: %s is the path of a drive */
 			string = g_strdup_printf (_("\"%s\" cannot write."), value);
 			brasero_utils_message_dialog (NULL,
 						      _("Wrong command line option."),
@@ -348,12 +348,17 @@
 			return;
 	}
 	else if (burn_project_uri) {
-		brasero_app_open_project (app,
-					  burner,
-					  burn_project_uri,
-					  FALSE,
-					  TRUE,
-					  burn_immediately != 0 /* This is to keep the current behavior which is open main window */);
+		gboolean res;
+
+		res = brasero_app_open_project (app,
+		                                burner,
+		                                burn_project_uri,
+		                                FALSE,
+		                                TRUE,
+		                                FALSE /* This is to keep the current behavior which is open main window */);
+		if (res)
+			brasero_app_run_mainwin (app);
+
 		if (g_remove (burn_project_uri) != 0) {
 			gchar *path;
 
@@ -463,6 +468,11 @@
 	g_thread_init (NULL);
 	g_type_init ();
 
+	/* Though we use gtk_get_option_group we nevertheless want gtk+ to be
+	 * in a usable state to display our error messages while brasero
+	 * specific options are parsed. Otherwise on error that crashes. */
+	gtk_init (&argc, &argv);
+
 	context = g_option_context_new (_("[URI] [URI] …"));
 	g_option_context_add_main_entries (context,
 					   options,

--- End Message ---
--- Begin Message ---
Unblocked.

One comment though:

On Wed, Sep  8, 2010 at 17:57:53 +0200, Josselin Mouette wrote:

> --- brasero-2.30.2/libbrasero-burn/brasero-session.c  2010-06-21 
> 22:56:08.000000000 +0000
> +++ brasero-2.30.3/libbrasero-burn/brasero-session.c  2010-08-30 
> 13:53:49.000000000 +0000
> @@ -2135,6 +2135,7 @@
>                          va_list arg_list)
>  {
>       int len;
> +     int wlen;
>       gchar *message;
>       gchar *offending;
>       BraseroBurnSessionPrivate *priv;
> @@ -2156,8 +2157,14 @@
>               *offending = '\0';
>  
>       len = strlen (message);
> -     if (write (priv->session, message, len) != len)
> -             g_warning ("Some log data couldn't be written: %s\n", message);
> +     wlen = write (priv->session, message, len);
> +     if (wlen != len) {
> +             int errnum = errno;
> +
> +             g_warning ("Some log data couldn't be written: %s (%i out of 
> %i) (%s)\n",
> +                        message, wlen, len,
> +                        strerror (errnum));
> +     }
>  
>       g_free (message);
>  
write(2) returns ssize_t, not int.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply via email to