From aef79b542b15f7c3eb2d4ef205aaa7bcc9fb7190 Mon Sep 17 00:00:00 2001 From: Christoph Wickert Date: Feb 14 2010 21:38:44 +0000 Subject: - Update to 0.4.3 --- diff --git a/.cvsignore b/.cvsignore index 3c4483b..eef00d5 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -xfburn-0.4.2.tar.bz2 +xfburn-0.4.3.tar.bz2 diff --git a/sources b/sources index b86ad2a..d93628c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -67533208e2f487bdf6c779cfedae809d xfburn-0.4.2.tar.bz2 +147cdc2d909e751125be16103b8dc81f xfburn-0.4.3.tar.bz2 diff --git a/xfburn-0.4.2-fix-crash-on-iso-burning.patch b/xfburn-0.4.2-fix-crash-on-iso-burning.patch deleted file mode 100644 index 3a5ff2f..0000000 --- a/xfburn-0.4.2-fix-crash-on-iso-burning.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff -dur xfburn-0.4.2.orig/xfburn/xfburn-burn-image-dialog.c xfburn-0.4.2/xfburn/xfburn-burn-image-dialog.c ---- xfburn-0.4.2.orig/xfburn/xfburn-burn-image-dialog.c 2009-07-13 05:24:06.000000000 +0200 -+++ xfburn-0.4.2/xfburn/xfburn-burn-image-dialog.c 2009-10-29 23:27:12.000000000 +0100 -@@ -66,12 +66,16 @@ - - GtkWidget *burn_button; - -+ XfburnDeviceList *devlist; -+ gulong handler_volchange; -+ - ThreadBurnIsoParams *params; - } XfburnBurnImageDialogPrivate; - - /* prototypes */ - static void xfburn_burn_image_dialog_class_init (XfburnBurnImageDialogClass * klass); - static void xfburn_burn_image_dialog_init (XfburnBurnImageDialog * sp); -+static void xfburn_burn_image_dialog_finalize (GObject *object); - - void burn_image_dialog_error (XfburnBurnImageDialog * dialog, const gchar * msg_error); - static void cb_volume_change_end (XfburnDeviceList *devlist, gboolean device_changed, XfburnDevice *device, XfburnBurnImageDialog * dialog); -@@ -115,8 +119,13 @@ - static void - xfburn_burn_image_dialog_class_init (XfburnBurnImageDialogClass * klass) - { -+ GObjectClass *object_class = G_OBJECT_CLASS (klass); -+ - g_type_class_add_private (klass, sizeof (XfburnBurnImageDialogPrivate)); -+ - parent_class = g_type_class_peek_parent (klass); -+ -+ object_class->finalize = xfburn_burn_image_dialog_finalize; - } - - static void -@@ -130,7 +139,6 @@ - GtkWidget *frame; - GtkWidget *vbox; - GtkWidget *button; -- XfburnDeviceList *devlist; - XfburnDevice *device; - - gtk_window_set_title (GTK_WINDOW (obj), _("Burn image")); -@@ -208,19 +216,28 @@ - gtk_widget_grab_focus (priv->burn_button); - gtk_widget_grab_default (priv->burn_button); - -- devlist = xfburn_device_list_new (); -+ priv->devlist = xfburn_device_list_new (); - -- g_signal_connect (G_OBJECT (devlist), "volume-change-end", G_CALLBACK (cb_volume_change_end), obj); -+ priv->handler_volchange = g_signal_connect (G_OBJECT (priv->devlist), "volume-change-end", G_CALLBACK (cb_volume_change_end), obj); - g_signal_connect (G_OBJECT (obj), "response", G_CALLBACK (cb_dialog_response), obj); -- device = xfburn_device_list_get_current_device (devlist); -+ device = xfburn_device_list_get_current_device (priv->devlist); - -- cb_volume_change_end (devlist, TRUE, device, obj); -+ cb_volume_change_end (priv->devlist, TRUE, device, obj); - - if (device) - gtk_widget_set_sensitive (priv->check_dummy, xfburn_device_can_dummy_write (device)); -+} - -- g_object_unref (G_OBJECT (devlist)); -+static void -+xfburn_burn_image_dialog_finalize (GObject *object) -+{ -+ XfburnBurnImageDialog *dialog = XFBURN_BURN_IMAGE_DIALOG (object); -+ XfburnBurnImageDialogPrivate *priv = XFBURN_BURN_IMAGE_DIALOG_GET_PRIVATE (dialog); - -+ g_signal_handler_disconnect (priv->devlist, priv->handler_volchange); -+ g_object_unref (priv->devlist); -+ -+ G_OBJECT_CLASS (parent_class)->finalize (object); - } - - /*************/ diff --git a/xfburn-0.4.2-fix-unmount.patch b/xfburn-0.4.2-fix-unmount.patch deleted file mode 100644 index c09ee5a..0000000 --- a/xfburn-0.4.2-fix-unmount.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 4bf5494c29d3fa87657c99251e57bd5a999d1285 Mon Sep 17 00:00:00 2001 -From: David Mohr -Date: Fri, 29 Jan 2010 04:45:35 +0000 -Subject: Remove accessible attribute of xfburn_device, since this can change - -pretty much at any time. Now check for unmount whenever we try to grab -the drive. ---- -diff --git a/xfburn/xfburn-device.c b/xfburn/xfburn-device.c -index 18cc275..73727db 100644 ---- a/xfburn/xfburn-device.c -+++ b/xfburn/xfburn-device.c -@@ -70,7 +70,7 @@ typedef struct _XfburnDevicePrivate XfburnDevicePrivate; - struct _XfburnDevicePrivate { - gchar *name; - gchar *addr; -- gboolean accessible; -+ gboolean details_known; - - gint buffer_size; - gboolean dummy_write; -@@ -107,9 +107,6 @@ xfburn_device_get_property (GObject *object, guint property_id, - case PROP_ADDRESS: - g_value_set_string (value, priv->addr); - break; -- case PROP_ACCESSIBLE: -- g_value_set_boolean (value, priv->accessible); -- break; - case PROP_SUPPORTED_SPEEDS: - g_value_set_pointer (value, priv->supported_speeds); - break; -@@ -170,9 +167,6 @@ xfburn_device_set_property (GObject *object, guint property_id, - case PROP_ADDRESS: - priv->addr = g_value_dup_string (value); - break; -- case PROP_ACCESSIBLE: -- priv->accessible = g_value_get_boolean (value); -- break; - case PROP_SUPPORTED_SPEEDS: - priv->supported_speeds = g_value_get_pointer (value); - break; -@@ -250,9 +244,6 @@ xfburn_device_class_init (XfburnDeviceClass *klass) - g_object_class_install_property (object_class, PROP_ADDRESS, - g_param_spec_string ("address", _("Device address"), - _("Device address"), "", G_PARAM_READWRITE)); -- g_object_class_install_property (object_class, PROP_ACCESSIBLE, -- g_param_spec_string ("accessible", _("Is the device accessible"), -- _("Is the device accessible"), FALSE, G_PARAM_READABLE)); - g_object_class_install_property (object_class, PROP_SUPPORTED_SPEEDS, - g_param_spec_pointer ("supported-speeds", _("Burn speeds supported by the device"), - _("Burn speeds supported by the device"), G_PARAM_READABLE)); -@@ -411,7 +402,7 @@ xfburn_device_fillin_libburn_info (XfburnDevice *device, struct burn_drive_info - { - XfburnDevicePrivate *priv = GET_PRIVATE (device); - -- priv->accessible = TRUE; -+ priv->details_known = TRUE; - - priv->cdr = drive->write_cdr; - priv->cdrw = drive->write_cdrw; -@@ -439,6 +430,9 @@ xfburn_device_grab (XfburnDevice * device, struct burn_drive_info **drive_info) - gchar drive_addr[BURN_DRIVE_ADR_LEN]; - int i; - const int max_checks = 4; -+#ifdef HAVE_HAL -+ XfburnHalManager *halman = xfburn_hal_manager_get_global (); -+#endif - - ret = burn_drive_convert_fs_adr (priv->addr, drive_addr); - if (ret <= 0) { -@@ -453,8 +447,14 @@ xfburn_device_grab (XfburnDevice * device, struct burn_drive_info **drive_info) - //DBG ("grab (%s)-> %d", drive_addr, ret); - if (ret > 0) - break; -- else if (i < max_checks) -+ else if (i < max_checks) { -+#ifdef HAVE_HAL -+ if (!xfburn_hal_manager_check_ask_umount (halman, device)) -+ usleep(i*100001); -+#else - usleep(i*100001); -+#endif -+ } - } - - if (ret <= 0) { -@@ -472,9 +472,6 @@ xfburn_device_refresh_info (XfburnDevice * device, gboolean get_speed_info) - - struct burn_drive_info *drive_info = NULL; - gboolean ret; --#ifdef HAVE_HAL -- XfburnHalManager *halman = xfburn_hal_manager_get_global (); --#endif - - if (G_UNLIKELY (device == NULL)) { - g_warning ("Hmm, why can we refresh when there is no drive?"); -@@ -490,22 +487,14 @@ xfburn_device_refresh_info (XfburnDevice * device, gboolean get_speed_info) - g_slist_free (priv->supported_speeds); - priv->supported_speeds = NULL; - -- if (!priv->accessible) { --#ifdef HAVE_HAL -- if (!xfburn_hal_manager_check_ask_umount (halman, device)) -- return FALSE; --#else -- return FALSE; --#endif -- } -- - if (!xfburn_device_grab (device, &drive_info)) { - ret = FALSE; - g_warning ("Couldn't grab drive in order to update speed list."); - priv->disc_status = BURN_DISC_UNGRABBED; - } else { -- if (!priv->accessible) -+ if (!priv->details_known) - xfburn_device_fillin_libburn_info (device, drive_info); -+ - ret = TRUE; - refresh_disc (device, drive_info); - if (get_speed_info) -diff --git a/xfburn/xfburn-hal-manager.c b/xfburn/xfburn-hal-manager.c -index 803ce11..3d64cad 100644 ---- a/xfburn/xfburn-hal-manager.c -+++ b/xfburn/xfburn-hal-manager.c -@@ -483,6 +483,8 @@ is_a_device: - return n_devices; - } - -+/* @Return TRUE if the drive is now accessible, FALSE if not. -+ */ - gboolean - xfburn_hal_manager_check_ask_umount (XfburnHalManager *halman, XfburnDevice *device) - { --- -cgit v0.8.2.1 diff --git a/xfburn-0.4.2-mark-constructor-properties-make-some-constructor_o.patch b/xfburn-0.4.2-mark-constructor-properties-make-some-constructor_o.patch deleted file mode 100644 index becda8d..0000000 --- a/xfburn-0.4.2-mark-constructor-properties-make-some-constructor_o.patch +++ /dev/null @@ -1,139 +0,0 @@ -diff -dur xfburn-0.4.2.orig/xfburn/xfburn-device-box.c xfburn-0.4.2/xfburn/xfburn-device-box.c ---- xfburn-0.4.2.orig/xfburn/xfburn-device-box.c 2009-07-13 05:24:06.000000000 +0200 -+++ xfburn-0.4.2/xfburn/xfburn-device-box.c 2009-10-30 00:03:24.000000000 +0100 -@@ -1,6 +1,7 @@ - /* $Id: xfburn-device-box.c 7718 2009-07-13 03:24:04Z squisher $ */ - /* - * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) -+ * Copyright (c) 2008-2009 David Mohr - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -104,7 +105,7 @@ - static void xfburn_device_box_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); - static void xfburn_device_box_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); - --static guint ask_for_blanking (XfburnDeviceBoxPrivate *priv); -+static gboolean ask_for_blanking (XfburnDeviceBoxPrivate *priv); - static void status_label_update (XfburnDeviceBoxPrivate *priv); - static gboolean check_disc_validity (XfburnDeviceBoxPrivate *priv); - static void refresh_drive_info (XfburnDeviceBox *box, XfburnDevice *device); -@@ -171,15 +172,16 @@ - - g_object_class_install_property (object_class, PROP_SHOW_WRITERS_ONLY, - g_param_spec_boolean ("show-writers-only", _("Show writers only"), -- _("Show writers only"), FALSE, G_PARAM_READWRITE)); -+ _("Show writers only"), -+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property (object_class, PROP_SHOW_SPEED_SELECTION, - g_param_spec_boolean ("show-speed-selection", _("Show speed selection"), - _("Show speed selection combo"), -- FALSE, G_PARAM_READWRITE)); -+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property (object_class, PROP_SHOW_MODE_SELECTION, - g_param_spec_boolean ("show-mode-selection", _("Show mode selection"), - _("Show mode selection combo"), -- FALSE, G_PARAM_READWRITE)); -+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property (object_class, PROP_VALID, - g_param_spec_boolean ("valid", _("Is it a valid combination"), - _("Is the combination of hardware and disc valid to burn the composition?"), -@@ -187,11 +189,11 @@ - g_object_class_install_property (object_class, PROP_BLANK_MODE, - g_param_spec_boolean ("blank-mode", _("Blank mode"), - _("The blank mode shows different disc status messages than regular mode"), -- FALSE, G_PARAM_READWRITE)); -+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - g_object_class_install_property (object_class, PROP_ACCEPT_ONLY_CD, - g_param_spec_boolean ("accept-only-cd", _("Accept only CDs as valid discs"), - _("Accept only CDs as valid discs"), -- FALSE, G_PARAM_READWRITE)); -+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - } - - static GObject * -@@ -256,6 +258,10 @@ - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_speed), cell, "text", SPEED_TEXT_COLUMN, NULL); - gtk_widget_show (priv->combo_speed); - gtk_box_pack_start (GTK_BOX (priv->hbox_speed_selection), priv->combo_speed, TRUE, TRUE, BORDER); -+ if (priv->show_speed_selection) { -+ gtk_widget_show (priv->hbox_speed_selection); -+ fill_combo_speed (XFBURN_DEVICE_BOX (box), xfburn_device_list_get_current_device (devlist)); -+ } - - /* mode */ - priv->hbox_mode_selection = gtk_hbox_new (FALSE, 0); -@@ -278,6 +284,11 @@ - g_object_get (G_OBJECT (devlist), "num-burners", &n_burners, NULL); - gtk_widget_set_sensitive (priv->combo_mode, n_burners > 0); - -+ if (priv->show_mode_selection) { -+ gtk_widget_show (priv->hbox_mode_selection); -+ fill_combo_mode (XFBURN_DEVICE_BOX (box), xfburn_device_list_get_current_device (devlist)); -+ } -+ - /* status label */ - priv->status_label = gtk_label_new (""); - priv->status_text = ""; -@@ -345,19 +356,9 @@ - break; - case PROP_SHOW_SPEED_SELECTION: - priv->show_speed_selection = g_value_get_boolean (value); -- if (priv->show_speed_selection) { -- gtk_widget_show (priv->hbox_speed_selection); -- fill_combo_speed (XFBURN_DEVICE_BOX (object), xfburn_device_list_get_current_device (priv->devlist)); -- } else -- gtk_widget_hide (priv->hbox_speed_selection); - break; - case PROP_SHOW_MODE_SELECTION: - priv->show_mode_selection = g_value_get_boolean (value); -- if (priv->show_mode_selection) { -- gtk_widget_show (priv->hbox_mode_selection); -- fill_combo_mode (XFBURN_DEVICE_BOX (object), xfburn_device_list_get_current_device (priv->devlist)); -- } else -- gtk_widget_hide (priv->hbox_mode_selection); - break; - case PROP_BLANK_MODE: - priv->blank_mode = g_value_get_boolean (value); -@@ -503,7 +504,7 @@ - g_free (text); - } - --static guint -+static gboolean - ask_for_blanking (XfburnDeviceBoxPrivate *priv) - { - gboolean do_blank; -@@ -511,8 +512,9 @@ - if (priv->have_asked_for_blanking) - return FALSE; - -- gdk_threads_enter (); - priv->have_asked_for_blanking = TRUE; -+ -+ gdk_threads_enter (); - do_blank = xfburn_ask_yes_no (GTK_MESSAGE_QUESTION, "A full, but erasable disc is in the drive", - "Do you want to blank the disc, so that it can be used for the upcoming burn process?"); - -@@ -544,6 +546,8 @@ - gtk_label_set_text (GTK_LABEL (priv->disc_label), profile_name); - g_free (profile_name); - -+ DBG ("blank_mode = %d", priv->blank_mode); -+ - if (!priv->blank_mode) { - /* for burning */ - switch (profile_no) { -Nur in xfburn-0.4.2/xfburn: xfburn-device-box.c.orig. -diff -dur xfburn-0.4.2.orig/xfburn/xfburn-device-list.c xfburn-0.4.2/xfburn/xfburn-device-list.c ---- xfburn-0.4.2.orig/xfburn/xfburn-device-list.c 2009-07-13 05:24:06.000000000 +0200 -+++ xfburn-0.4.2/xfburn/xfburn-device-list.c 2009-10-30 00:03:24.000000000 +0100 -@@ -1,6 +1,7 @@ - /* $Id: xfburn-device-list.c 7718 2009-07-13 03:24:04Z squisher $ */ - /* - * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) -+ * Copyright (c) 2008-2009 David Mohr - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -Nur in xfburn-0.4.2/xfburn: xfburn-device-list.c.orig. diff --git a/xfburn.spec b/xfburn.spec index 0aa72b3..666db70 100644 --- a/xfburn.spec +++ b/xfburn.spec @@ -1,22 +1,12 @@ Name: xfburn -Version: 0.4.2 -Release: 3%{?dist} +Version: 0.4.3 +Release: 1%{?dist} Summary: Simple CD burning tool for Xfce Group: Applications/Archiving License: GPLv2+ URL: http://goodies.xfce.org/projects/applications/%{name} Source0: http://www.xfce.org/archive/src/apps/xfburn/0.4/%{name}-%{version}.tar.bz2 -# fix for https://bugzilla.redhat.com/show_bug.cgi?id=525515 -# http://git.xfce.org/apps/xfburn/commit/?id=78995b7eee0acde27bd0ea41137a7635174d362e -Patch0: xfburn-0.4.2-mark-constructor-properties-make-some-constructor_o.patch -# fix for https://bugzilla.redhat.com/show_bug.cgi?id=525518 -# created from several upstream commits as described in -# http://bugzilla.xfce.org/show_bug.cgi?id=5678#c23 -Patch1: xfburn-0.4.2-fix-crash-on-iso-burning.patch -# fix for https://bugzilla.redhat.com/show_bug.cgi?id=525514 -# http://git.xfce.org/apps/xfburn/commit/?id=4bf5494c29d3fa87657c99251e57bd5a999d1285 -Patch2: xfburn-0.4.2-fix-unmount.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libxfcegui4-devel >= 4.4.0 Thunar-devel >= 0.3.0 @@ -34,9 +24,6 @@ compositions of data to either CD or DVD. %prep %setup -q -%patch0 -p1 -b .mark-constructor-properties -%patch1 -p1 -b .crash-on-iso-burning -%patch2 -p1 -b .unmount %build @@ -90,6 +77,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Feb 14 2010 Christoph Wickert - 0.4.3-1 +- Update to 0.4.3 + * Fri Jan 31 2010 Christoph Wickert - 0.4.2-3 - Properly unmount drive before burning (#525514)