From 43d4b2a95e7ce7f03da2d45d701ce16fde924dc7 Mon Sep 17 00:00:00 2001 From: Denis Leroy Date: Jan 11 2008 01:11:40 +0000 Subject: - Update to upstream 0.7.0, fixes #427985 - Forward ported open() patch --- diff --git a/.cvsignore b/.cvsignore index bd80019..540d66b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -brasero-0.6.1.tar.bz2 +brasero-0.7.0.tar.bz2 diff --git a/brasero-0.6.0-open.patch b/brasero-0.6.0-open.patch deleted file mode 100644 index 3648119..0000000 --- a/brasero-0.6.0-open.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- brasero-0.6.0/src/burn-transcode.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/burn-transcode.c 2007-08-17 09:17:31.000000000 +0200 -@@ -1402,7 +1402,8 @@ - int fd; - gboolean result; - -- fd = open (transcode->priv->current->dest, O_WRONLY | O_CREAT | O_APPEND); -+ fd = open (transcode->priv->current->dest, O_WRONLY | O_CREAT | O_APPEND, -+ S_IRWXU | S_IRGRP | S_IROTH); - if (fd == -1) { - g_set_error (error, - BRASERO_BURN_ERROR, diff --git a/brasero-0.6.0-tooltips.patch b/brasero-0.6.0-tooltips.patch deleted file mode 100644 index 633fe02..0000000 --- a/brasero-0.6.0-tooltips.patch +++ /dev/null @@ -1,623 +0,0 @@ ---- brasero-0.6.0/src/project-type-chooser.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/project-type-chooser.c 2007-08-10 19:35:00.000000000 +0200 -@@ -36,7 +36,6 @@ - #include - #include - #include --#include - - #include "project-type-chooser.h" - #include "utils.h" -@@ -98,8 +97,6 @@ - GdkPixbuf *background; - GtkWidget *selected; - GtkWidget *hovered; -- -- GtkTooltips *tooltips; - }; - - static gboolean -@@ -208,10 +205,8 @@ - chooser); - - if (description->tooltip) { -- gtk_tooltips_set_tip (chooser->priv->tooltips, -- event, -- _(description->tooltip), -- NULL); -+ gtk_widget_set_tooltip_text (event, -+ _(description->tooltip)); - } - - eventbox = gtk_event_box_new (); -@@ -265,10 +260,6 @@ - - obj->priv = g_new0 (BraseroProjectTypeChooserPrivate, 1); - -- obj->priv->tooltips = gtk_tooltips_new (); -- g_object_ref_sink (obj->priv->tooltips); -- gtk_tooltips_enable (obj->priv->tooltips); -- - obj->priv->background = gdk_pixbuf_new_from_file (BRASERO_DATADIR "/logo.png", &error); - if (error) { - g_warning ("ERROR loading background pix : %s\n", error->message); -@@ -369,11 +360,6 @@ - - cobj = BRASERO_PROJECT_TYPE_CHOOSER (object); - -- if (cobj->priv->tooltips) { -- g_object_unref (cobj->priv->tooltips); -- cobj->priv->tooltips = NULL; -- } -- - if (cobj->priv->background) { - g_object_unref (G_OBJECT (cobj->priv->background)); - cobj->priv->background = NULL; ---- brasero-0.6.0/src/brasero-project-size.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/brasero-project-size.c 2007-08-10 19:18:03.000000000 +0200 -@@ -93,7 +93,6 @@ - - struct _BraseroProjectSizePrivate { - GtkWidget *menu; -- GtkTooltips *tooltips; - - GtkWidget *frame; - GtkWidget *arrow; -@@ -232,15 +231,11 @@ - obj->priv = g_new0 (BraseroProjectSizePrivate, 1); - obj->priv->text_layout = gtk_widget_create_pango_layout (GTK_WIDGET (obj), ""); - -- obj->priv->tooltips = gtk_tooltips_new (); -- - brasero_project_size_add_default_medias (obj); - - obj->priv->button = gtk_toggle_button_new (); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->button, -- _("Show the available media to be burnt"), -- _("Show the available media to be burnt")); -+ gtk_widget_set_tooltip_text (obj->priv->button, -+ _("Show the available media to be burnt")); - gtk_container_set_border_width (GTK_CONTAINER (obj->priv->button), 0); - g_signal_connect (obj->priv->button, - "toggled", -@@ -275,11 +270,6 @@ - - cobj = BRASERO_PROJECT_SIZE (object); - -- if (cobj->priv->tooltips) { -- g_object_ref_sink (GTK_OBJECT (cobj->priv->tooltips)); -- cobj->priv->tooltips = NULL; -- } -- - if (cobj->priv->frame) { - gtk_widget_unparent (cobj->priv->frame); - cobj->priv->frame = NULL; ---- brasero-0.6.0/src/audio-disc.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/audio-disc.c 2007-08-10 19:13:07.000000000 +0200 -@@ -274,7 +274,6 @@ - - gint64 sectors; - -- GtkTooltips *tooltip; - GdkDragContext *drag_context; - - int activity_counter; -@@ -518,10 +517,8 @@ - "changed", - G_CALLBACK (brasero_audio_disc_selection_changed), - button); -- gtk_tooltips_set_tip (audio_disc->priv->tooltip, -- button, -- _("Add a 2 second pause after the track"), -- NULL); -+ gtk_widget_set_tooltip_text (button, -+ _("Add a 2 second pause after the track")); - gtk_widget_show (button); - - alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0); -@@ -542,9 +539,6 @@ - obj->priv = g_new0 (BraseroAudioDiscPrivate, 1); - gtk_box_set_spacing (GTK_BOX (obj), 8); - -- obj->priv->tooltip = gtk_tooltips_new (); -- g_object_ref_sink (obj->priv->tooltip); -- - /* notebook to display information about how to use the tree */ - obj->priv->notebook = brasero_utils_get_use_info_notebook (); - gtk_box_pack_start (GTK_BOX (obj), obj->priv->notebook, TRUE, TRUE, 0); -@@ -816,11 +810,6 @@ - } - - #endif -- if (cobj->priv->tooltip) { -- g_object_unref (cobj->priv->tooltip); -- cobj->priv->tooltip = NULL; -- } -- - if (cobj->priv->vfs) { - brasero_vfs_cancel (cobj->priv->vfs, G_OBJECT (cobj)); - g_object_unref (cobj->priv->vfs); ---- brasero-0.6.0/src/project.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/project.c 2007-08-10 19:34:02.000000000 +0200 -@@ -141,7 +141,6 @@ - GtkWidget *remove; - GtkWidget *burn; - -- GtkTooltips *tooltip; - GtkActionGroup *project_group; - GtkActionGroup *action_group; - -@@ -328,9 +327,6 @@ - obj->priv = g_new0 (BraseroProjectPrivate, 1); - gtk_box_set_spacing (GTK_BOX (obj), BRASERO_PROJECT_SPACING); - -- obj->priv->tooltip = gtk_tooltips_new (); -- g_object_ref_sink (obj->priv->tooltip); -- - /* header */ - box = gtk_hbox_new (FALSE, 8); - gtk_box_pack_start (GTK_BOX (obj), box, FALSE, FALSE, 0); -@@ -372,10 +368,8 @@ - "clicked", - G_CALLBACK (brasero_project_add_clicked_cb), - obj); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->add, -- _("Add selected files"), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->add, -+ _("Add selected files")); - - alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0); - gtk_container_add (GTK_CONTAINER (alignment), obj->priv->add); -@@ -392,10 +386,8 @@ - "clicked", - G_CALLBACK (brasero_project_remove_clicked_cb), - obj); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->remove, -- _("Remove files selected in project"), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->remove, -+ _("Remove files selected in project")); - alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0); - gtk_container_add (GTK_CONTAINER (alignment), obj->priv->remove); - gtk_box_pack_start (GTK_BOX (box), alignment, FALSE, FALSE, 0); -@@ -474,10 +466,8 @@ - "clicked", - G_CALLBACK (brasero_project_burn_clicked_cb), - obj); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->burn, -- _("Start to burn the contents of the selection"), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->burn, -+ _("Start to burn the contents of the selection")); - alignment = gtk_alignment_new (1.0, 0.0, 0.0, 0.0); - gtk_container_add (GTK_CONTAINER (alignment), obj->priv->burn); - gtk_box_pack_end (GTK_BOX (box), alignment, FALSE, FALSE, 0); -@@ -492,11 +482,6 @@ - if (cobj->priv->project) - g_free (cobj->priv->project); - -- if (cobj->priv->tooltip) { -- g_object_unref (cobj->priv->tooltip); -- cobj->priv->tooltip = NULL; -- } -- - g_free(cobj->priv); - G_OBJECT_CLASS(parent_class)->finalize(object); - } ---- brasero-0.6.0/src/song-properties.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/song-properties.c 2007-08-10 19:36:43.000000000 +0200 -@@ -38,7 +38,6 @@ - #include - #include - #include --#include - - #include - -@@ -50,8 +49,6 @@ - static void brasero_song_props_finalize (GObject *object); - - struct BraseroSongPropsPrivate { -- GtkTooltips *tooltips; -- - GtkWidget *title; - GtkWidget *artist; - GtkWidget *composer; -@@ -109,10 +106,6 @@ - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (obj)->vbox), 0); - gtk_window_set_default_size (GTK_WINDOW (obj), 400, 300); - -- obj->priv->tooltips = gtk_tooltips_new (); -- g_object_ref (obj->priv->tooltips); -- g_object_ref_sink (GTK_OBJECT (obj->priv->tooltips)); -- - table = gtk_table_new (4, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 6); -@@ -135,30 +128,25 @@ - obj->priv->title = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach_defaults (GTK_TABLE (table), obj->priv->title, 1, 2, 0, 1); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->title, -- _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players."), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->title, -+ _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players.")); -+ - - label = gtk_label_new (_("Artist:")); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - obj->priv->artist = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach_defaults (GTK_TABLE (table), obj->priv->artist, 1, 2, 1, 2); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->artist, -- _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players."), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->artist, -+ _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players.")); - - label = gtk_label_new (_("Composer:\t")); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - obj->priv->composer = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach_defaults (GTK_TABLE (table), obj->priv->composer, 1, 2, 2, 3); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->composer, -- _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players."), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->composer, -+ _("This information will be written to the disc using CD-TEXT technology. It can be read and displayed by some audio CD players.")); - - label = gtk_label_new ("ISRC:"); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); -@@ -181,10 +169,8 @@ - obj->priv->gap = gtk_spin_button_new_with_range (0.0, 100.0, 1.0); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach (GTK_TABLE (table), obj->priv->gap, 1, 2, 0, 1, 0, 0, 0, 0); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->gap, -- _("Gives the length of the pause that should follow the track"), -- NULL); -+ gtk_widget_set_tooltip_text (obj->priv->gap, -+ _("Gives the length of the pause that should follow the track")); - - /* buttons */ - gtk_dialog_add_buttons (GTK_DIALOG (obj), -@@ -202,7 +188,6 @@ - - cobj = BRASERO_SONG_PROPS(object); - -- g_object_unref (cobj->priv->tooltips); - g_free (cobj->priv); - - G_OBJECT_CLASS (parent_class)->finalize (object); ---- brasero-0.6.0/src/data-disc.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/data-disc.c 2007-08-10 19:12:03.000000000 +0200 -@@ -57,7 +57,6 @@ - #include - #include - #include --#include - - #include - -@@ -104,7 +103,6 @@ - GtkWidget *tree; - GtkTreeModel *model; - GtkTreeModel *sort; -- GtkTooltips *tooltip; - GtkWidget *filter_dialog; - GtkWidget *filter_button; - GtkWidget *notebook; -@@ -1081,10 +1079,8 @@ - FALSE, - 0); - -- gtk_tooltips_set_tip (data_disc->priv->tooltip, -- data_disc->priv->filter_button, -- _("Display the files filtered from the project"), -- NULL); -+ gtk_widget_set_tooltip_text (data_disc->priv->filter_button, -+ _("Display the files filtered from the project")); - - /* Import session */ - button = gtk_toggle_button_new (); -@@ -1099,10 +1095,8 @@ - "clicked", - G_CALLBACK (brasero_data_disc_import_session_cb), - disc); -- gtk_tooltips_set_tip (data_disc->priv->tooltip, -- button, -- _("Import session"), -- NULL); -+ gtk_widget_set_tooltip_text (button, -+ _("Import session")); - gtk_box_pack_end (GTK_BOX (toolbar), - button, - FALSE, -@@ -1132,10 +1126,8 @@ - "clicked", - G_CALLBACK (brasero_data_disc_new_folder_clicked_cb), - data_disc); -- gtk_tooltips_set_tip (data_disc->priv->tooltip, -- button, -- _("Create a new empty folder"), -- NULL); -+ gtk_widget_set_tooltip_text (button, -+ _("Create a new empty folder")); - gtk_box_pack_end (GTK_BOX (toolbar), - button, - FALSE, -@@ -1157,8 +1149,6 @@ - - obj->priv->vfs = brasero_vfs_get_default (); - -- obj->priv->tooltip = gtk_tooltips_new (); -- - /* the information displayed about how to use this tree */ - obj->priv->notebook = brasero_utils_get_use_info_notebook (); - gtk_box_pack_start (GTK_BOX (obj), obj->priv->notebook, TRUE, TRUE, 0); -@@ -1431,11 +1421,6 @@ - g_hash_table_destroy (cobj->priv->dirs); - g_hash_table_destroy (cobj->priv->files); - -- if (cobj->priv->tooltip) { -- g_object_ref_sink (GTK_OBJECT (cobj->priv->tooltip)); -- g_object_unref (cobj->priv->tooltip); -- } -- - if (cobj->priv->path_refs) - g_hash_table_destroy (cobj->priv->path_refs); - -@@ -3075,7 +3060,7 @@ - NULL); - - /* we can now signal the user that some files were removed */ -- gtk_tooltips_enable (disc->priv->tooltip); -+ /* gtk_tooltips_enable (disc->priv->tooltip); */ - - if (filter_notify) - brasero_data_disc_notify_user (disc, ---- brasero-0.6.0/src/brasero-disc-option-dialog.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/brasero-disc-option-dialog.c 2007-08-10 19:16:17.000000000 +0200 -@@ -67,8 +67,6 @@ - GtkWidget *selection; - GtkWidget *label; - -- GtkTooltips *tooltips; -- - gint label_modified:1; - }; - -@@ -246,10 +244,8 @@ - /* DVD don't need that */ - dont_close_check = gtk_check_button_new_with_label (_("Leave the disc open to add other files later")); - dialog->priv->close_check = dont_close_check; -- gtk_tooltips_set_tip (dialog->priv->tooltips, -- dont_close_check, -- _("Allow to add more data to the disc later"), -- _("Allow to add more data to the disc later")); -+ gtk_widget_set_tooltip_text (dont_close_check, -+ _("Allow to add more data to the disc later")); - - options = brasero_utils_pack_properties (_("Multisession"), - dont_close_check, -@@ -386,10 +382,8 @@ - - /* general options */ - dialog->priv->joliet_toggle = gtk_check_button_new_with_label (_("Increase compatibility with Windows systems")); -- gtk_tooltips_set_tip (dialog->priv->tooltips, -- dialog->priv->joliet_toggle, -- _("Improve compatibility with Windows systems by allowing to display long filenames (maximum 64 characters)"), -- _("Improve compatibility with Windows systems by allowing to display long filenames (maximum 64 characters)")); -+ gtk_widget_set_tooltip_text (dialog->priv->joliet_toggle, -+ _("Improve compatibility with Windows systems by allowing to display long filenames (maximum 64 characters)")); - - /* NOTE: we take for granted that if the source does not require - * to have the joliet extension, it's because it does have some -@@ -403,10 +397,8 @@ - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->joliet_toggle), TRUE); - - dialog->priv->checksum_toggle = gtk_check_button_new_with_label (_("Check data integrity")); -- gtk_tooltips_set_tip (dialog->priv->tooltips, -- dialog->priv->checksum_toggle, -- _("Allow to check the integrity of files on the disc"), -- _("Allow to check the integrity of files on the disc")); -+ gtk_widget_set_tooltip_text (dialog->priv->checksum_toggle, -+ _("Allow to check the integrity of files on the disc")); - - client = gconf_client_get_default (); - checksum = gconf_client_get_bool (client, KEY_ACTIVATE_CHECKSUM, NULL); -@@ -424,10 +416,8 @@ - G_CALLBACK (brasero_disc_option_dialog_video_clicked), - dialog); - -- gtk_tooltips_set_tip (dialog->priv->tooltips, -- dialog->priv->video_toggle, -- _("Create a video DVD that can be played by all DVD readers"), -- _("Create a video DVD that can be played by all DVD readers")); -+ gtk_widget_set_tooltip_text (dialog->priv->video_toggle, -+ _("Create a video DVD that can be played by all DVD readers")); - } - - options = brasero_utils_pack_properties (_("Disc options"), -@@ -461,10 +451,8 @@ - /* multisession options */ - dont_close_check = gtk_check_button_new_with_label (_("Leave the disc open to add a data session later")); - dialog->priv->close_check = dont_close_check; -- gtk_tooltips_set_tip (dialog->priv->tooltips, -- dont_close_check, -- _("Allow create what is called an enhanced CD or CD+"), -- _("Allow create what is called an enhanced CD or CD+")); -+ gtk_widget_set_tooltip_text (dont_close_check, -+ _("Allow create what is called an enhanced CD or CD+")); - - options = brasero_utils_pack_properties (_("Multisession"), - dont_close_check, -@@ -657,9 +645,6 @@ - obj->priv = g_new0 (BraseroDiscOptionDialogPrivate, 1); - gtk_dialog_set_has_separator (GTK_DIALOG (obj), FALSE); - -- obj->priv->tooltips = gtk_tooltips_new (); -- g_object_ref_sink (GTK_OBJECT (obj->priv->tooltips)); -- - obj->priv->caps = brasero_burn_caps_get_default (); - - /* first box */ -@@ -683,10 +668,8 @@ - - brasero_recorder_selection_select_default_drive (BRASERO_RECORDER_SELECTION (obj->priv->selection), - BRASERO_MEDIUM_WRITABLE); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->selection, -- _("Choose which drive holds the disc to write to"), -- _("Choose which drive holds the disc to write to")); -+ gtk_widget_set_tooltip_text (obj->priv->selection, -+ _("Choose which drive holds the disc to write to")); - - g_signal_connect (obj->priv->selection, - "media-changed", -@@ -726,11 +709,6 @@ - cobj->priv->caps = NULL; - } - -- if (cobj->priv->tooltips) { -- g_object_unref (cobj->priv->tooltips); -- cobj->priv->tooltips = NULL; -- } -- - if (cobj->priv->track) { - brasero_track_source_free (cobj->priv->track); - cobj->priv->track = NULL; ---- brasero-0.6.0/src/brasero-image-option-dialog.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/brasero-image-option-dialog.c 2007-08-10 19:17:30.000000000 +0200 -@@ -59,8 +59,6 @@ - GtkWidget *format_chooser; - GtkWidget *selection; - GtkWidget *chooser; -- -- GtkTooltips *tooltips; - }; - - static GtkDialogClass *parent_class = NULL; -@@ -397,9 +395,6 @@ - obj->priv = g_new0 (BraseroImageOptionDialogPrivate, 1); - gtk_dialog_set_has_separator (GTK_DIALOG (obj), FALSE); - -- obj->priv->tooltips = gtk_tooltips_new (); -- g_object_ref_sink (GTK_OBJECT (obj->priv->tooltips)); -- - /* first box */ - obj->priv->selection = brasero_recorder_selection_new (); - g_object_set (G_OBJECT (obj->priv->selection), -@@ -420,10 +415,8 @@ - - brasero_recorder_selection_select_default_drive (BRASERO_RECORDER_SELECTION (obj->priv->selection), - BRASERO_MEDIUM_WRITABLE); -- gtk_tooltips_set_tip (obj->priv->tooltips, -- obj->priv->selection, -- _("Choose which drive holds the disc to write to"), -- _("Choose which drive holds the disc to write to")); -+ gtk_widget_set_tooltip_text (obj->priv->selection, -+ _("Choose which drive holds the disc to write to")); - - g_object_set (obj->priv->selection, "file-image", FALSE, NULL); - -@@ -495,11 +488,6 @@ - cobj->priv->track = NULL; - } - -- if (cobj->priv->tooltips) { -- g_object_unref (cobj->priv->tooltips); -- cobj->priv->tooltips = NULL; -- } -- - g_free (cobj->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); - } ---- brasero-0.6.0/src/search-entry.c~ 2007-07-11 14:48:14.000000000 +0200 -+++ brasero-0.6.0/src/search-entry.c 2007-08-10 19:07:45.000000000 +0200 -@@ -51,7 +51,6 @@ - #include - #include - #include --#include - #include - #include - -@@ -76,8 +75,6 @@ - GtkWidget *pictures; - GtkWidget *music; - GtkWidget *video; -- -- GtkTooltips *tooltip; - }; - - /* cut and pasted from nautilus */ -@@ -460,33 +457,20 @@ - obj); - - /* add tooltips */ -- obj->priv->tooltip = gtk_tooltips_new (); -- g_object_ref_sink (obj->priv->tooltip); -- -- gtk_tooltips_set_tip (obj->priv->tooltip, -- GTK_BIN (obj->priv->combo)->child, -- _("Type your keywords or choose 'All files' from the menu"), -- NULL); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->pictures, -- _("Select if you want to search among image files only"), -- NULL); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->video, -- _("Select if you want to search among video files only"), -- NULL); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->music, -- _("Select if you want to search among audio files only"), -- NULL); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->documents, -- _("Select if you want to search among your text documents only"), -- NULL); -- gtk_tooltips_set_tip (obj->priv->tooltip, -- obj->priv->button, -- _("Click to start the search"), -- NULL); -+ gtk_widget_set_tooltip_text (GTK_BIN (obj->priv->combo)->child, -+ _("Type your keywords or choose 'All files' from the menu")); -+ gtk_widget_set_tooltip_text (GTK_BIN (obj->priv->combo)->child, -+ _("Type your keywords or choose 'All files' from the menu")); -+ gtk_widget_set_tooltip_text(obj->priv->pictures, -+ _("Select if you want to search among image files only")); -+ gtk_widget_set_tooltip_text (obj->priv->video, -+ _("Select if you want to search among video files only")); -+ gtk_widget_set_tooltip_text (obj->priv->music, -+ _("Select if you want to search among audio files only")); -+ gtk_widget_set_tooltip_text (obj->priv->documents, -+ _("Select if you want to search among your text documents only")); -+ gtk_widget_set_tooltip_text (obj->priv->button, -+ _("Click to start the search")); - - /* Set up GConf Client */ - obj->priv->client = gconf_client_get_default (); -@@ -557,11 +541,6 @@ - cobj->priv->search_id = 0; - } - -- if (cobj->priv->tooltip) { -- g_object_unref (cobj->priv->tooltip); -- cobj->priv->tooltip = NULL; -- } -- - g_free (cobj->priv); - cobj->priv = NULL; - diff --git a/brasero-0.6.1-patchset.patch b/brasero-0.6.1-patchset.patch deleted file mode 100644 index c4dfb06..0000000 --- a/brasero-0.6.1-patchset.patch +++ /dev/null @@ -1,1010 +0,0 @@ -Index: ChangeLog -=================================================================== ---- a/ChangeLog (revision 311) -+++ b/ChangeLog (working copy) -@@ -1,3 +1,30 @@ -+2007-09-30 Luis Medinas -+ -+ * src/burn-medium.c: (brasero_medium_init_real): -+ -+ Revert broken merge. -+ -+2007-09-28 Rouquier Philippe -+ -+ Increased debugging output for SCSI -+ -+2007-09-25 Rouquier Philippe -+ -+ Backported changes from trunk as an attempt to fix some recurring scsi -+ errors -+ -+2007-09-25 Rouquier Philippe -+ -+ fix stupid mistake in scsi error handling -+ -+2007-09-24 Rouquier Philippe -+ -+ fix 475442 -+ -+2007-09-24 Rouquier Philippe -+ -+ fix 465203 -+ - 2007-08-25 Rouquier Philippe - - fixes for libisofs 0.2.5 and 0.2.8 -Index: src/burn.c -=================================================================== ---- a/src/burn.c (revision 311) -+++ b/src/burn.c (working copy) -@@ -943,7 +943,8 @@ - GError **error) - { - gchar *failure; -- gint64 media_size; -+ gint64 img_sectors; -+ gint64 media_sectors; - BraseroBurnError berror; - BraseroMediumInfo media; - BraseroBurnResult result; -@@ -1045,7 +1046,7 @@ - * one exception if we don't have enough space left on - * the disc. - * NOTE: if MERGE or APPEND flag is on then don't check -- */ -+ * NOTE: it's safe to compare size in bytes here */ - NCB_MEDIA_GET_FREE_SPACE (drive, &size, NULL); - if (!(flags & (BRASERO_BURN_FLAG_MERGE|BRASERO_BURN_FLAG_APPEND)) - && size > burn->priv->image_size -@@ -1106,17 +1107,36 @@ - } - } - -- /* we check that the image will fit on the media */ -+ /* we check that the image will fit on the media -+ * NOTE: we must use the sectors for comparison */ - if (flags & (BRASERO_BURN_FLAG_MERGE|BRASERO_BURN_FLAG_APPEND)) -- NCB_MEDIA_GET_FREE_SPACE (drive, &media_size, NULL); -+ NCB_MEDIA_GET_FREE_SPACE (drive, NULL, &media_sectors); - else -- NCB_MEDIA_GET_CAPACITY (drive, &media_size, NULL); -+ NCB_MEDIA_GET_CAPACITY (drive, NULL, &media_sectors); - -+ if (source->type == BRASERO_TRACK_SOURCE_DATA) -+ img_sectors = burn->priv->image_size / 2048; -+ else if (source->type == BRASERO_TRACK_SOURCE_AUDIO) -+ img_sectors = burn->priv->image_size / 2352; -+ else if (source->type == BRASERO_TRACK_SOURCE_IMAGE) { -+ if (source->format == BRASERO_IMAGE_FORMAT_CLONE) -+ img_sectors = burn->priv->image_size / 2448; -+ else if (source->format == BRASERO_IMAGE_FORMAT_CUE -+ || source->format == BRASERO_IMAGE_FORMAT_CDRDAO) -+ img_sectors = burn->priv->image_size / 2352; -+ else -+ img_sectors = burn->priv->image_size / 2048; -+ } -+ else if (source->type == BRASERO_TRACK_SOURCE_DISC) -+ NCB_MEDIA_GET_DATA_SIZE (source->contents.drive.disc, NULL, &img_sectors); -+ else -+ img_sectors = 0; -+ - /* NOTE: this is useful only for reloads since otherwise we still don't - * know what's the image size yet */ - if (!(flags & BRASERO_BURN_FLAG_OVERBURN) - && (flags & BRASERO_BURN_FLAG_CHECK_SIZE) -- && media_size < burn->priv->image_size) { -+ && media_sectors < img_sectors) { - /* This is a recoverable error so try to ask the user again */ - result = BRASERO_BURN_NEED_RELOAD; - berror = BRASERO_BURN_ERROR_MEDIA_SPACE; -@@ -1497,6 +1517,7 @@ - } - gnome_vfs_uri_unref (uri); - -+ /* it's safe here to check with sizes */ - if (burn->priv->image_size > vol_size) { - g_set_error (error, - BRASERO_BURN_ERROR, -@@ -1824,6 +1845,7 @@ - const gchar *output, - GError **error) - { -+ gint64 img_sectors; - GError *ret_error = NULL; - BraseroBurnResult result; - -@@ -1842,13 +1864,31 @@ - } - - if (NCB_DRIVE_GET_TYPE (drive) != NAUTILUS_BURN_DRIVE_TYPE_FILE) { -- gint64 media_size; -+ gint64 media_sectors; - -- NCB_MEDIA_GET_CAPACITY (drive, &media_size, NULL); -+ NCB_MEDIA_GET_CAPACITY (drive, NULL, &media_sectors); - -+ if (source->type == BRASERO_TRACK_SOURCE_DATA) -+ img_sectors = burn->priv->image_size / 2048; -+ else if (source->type == BRASERO_TRACK_SOURCE_AUDIO) -+ img_sectors = burn->priv->image_size / 2352; -+ else if (source->type == BRASERO_TRACK_SOURCE_IMAGE) { -+ if (source->format == BRASERO_IMAGE_FORMAT_CLONE) -+ img_sectors = burn->priv->image_size / 2448; -+ else if (source->format == BRASERO_IMAGE_FORMAT_CUE -+ || source->format == BRASERO_IMAGE_FORMAT_CDRDAO) -+ img_sectors = burn->priv->image_size / 2352; -+ else -+ img_sectors = burn->priv->image_size / 2048; -+ } -+ else if (source->type == BRASERO_TRACK_SOURCE_DISC) -+ NCB_MEDIA_GET_DATA_SIZE (source->contents.drive.disc, NULL, &img_sectors); -+ else -+ img_sectors = 0; -+ - /* check that the image can fit on the media */ - if (!(flags & BRASERO_BURN_FLAG_OVERBURN) -- && media_size < burn->priv->image_size) { -+ && media_sectors < img_sectors) { - /* This is a recoverable error so try to ask the user again */ - result = brasero_burn_reload_dest_media (burn, - BRASERO_BURN_ERROR_MEDIA_SPACE, -Index: src/burn-medium.c -=================================================================== ---- a/src/burn-medium.c (revision 311) -+++ b/src/burn-medium.c (working copy) -@@ -308,6 +308,8 @@ - - priv = BRASERO_MEDIUM_PRIVATE (self); - -+ BRASERO_BURN_LOG ("Retrieving capacity from atip"); -+ - result = brasero_mmc1_read_atip (fd, - &atip_data, - sizeof (atip_data), -@@ -336,6 +338,8 @@ - BraseroScsiResult result; - gint size; - -+ BRASERO_BURN_LOG ("Retrieving format capacity"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - result = brasero_mmc2_read_format_capacities (fd, - &hdr, -@@ -424,6 +428,8 @@ - BraseroScsiWrtSpdDesc *desc; - BraseroScsiGetPerfData *wrt_perf = NULL; - -+ BRASERO_BURN_LOG ("Retrieving speed (Get Performance)"); -+ - /* NOTE: this only work if there is RT streaming feature with - * wspd bit set to 1. At least an MMC3 drive. */ - priv = BRASERO_MEDIUM_PRIVATE (self); -@@ -471,7 +477,7 @@ - * function but don't report any speed. So if our top speed is 0 then - * use the other way to get the speed. It was a Teac */ - if (!priv->max_wrt) -- return BRASERO_BURN_RETRY; -+ return BRASERO_BURN_ERR; - - return BRASERO_BURN_OK; - } -@@ -491,6 +497,8 @@ - gint max_num; - int size = 0; - -+ BRASERO_BURN_LOG ("Retrieving speed (2A speeds)"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - result = brasero_spc1_mode_sense_get_page (fd, - BRASERO_SPC_PAGE_STATUS, -@@ -506,6 +514,7 @@ - - page_2A = (BraseroScsiStatusPage *) &data->page; - -+ /* FIXME: the following is not necessarily true */ - if (size < sizeof (BraseroScsiStatusPage)) { - g_free (data); - -@@ -554,6 +563,8 @@ - BraseroScsiResult result; - int size = 0; - -+ BRASERO_BURN_LOG ("Retrieving speed (2A max)"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - - result = brasero_spc1_mode_sense_get_page (fd, -@@ -590,11 +601,12 @@ - BraseroScsiErrCode *code) - { - BraseroScsiGetConfigHdr *hdr = NULL; -- BraseroScsiRTStreamDesc *stream; - BraseroMediumPrivate *priv; - BraseroScsiResult result; - int size; - -+ BRASERO_BURN_LOG ("Retrieving media profile"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - result = brasero_mmc2_get_configuration_feature (fd, - BRASERO_SCSI_FEAT_REAL_TIME_STREAM, -@@ -749,39 +761,35 @@ - return BRASERO_BURN_NOT_SUPPORTED; - } - -- BRASERO_BURN_LOG ("medium is %d", priv->info); -+ /* try all SCSI functions to get write/read speeds in order */ -+ if (hdr->desc->add_len >= sizeof (BraseroScsiRTStreamDesc)) { -+ BraseroScsiRTStreamDesc *stream; - -- /* see how we should get the speeds */ -- if (hdr->desc->add_len != sizeof (BraseroScsiRTStreamDesc)) { -- g_free (hdr); -+ /* means it's at least an MMC3 drive */ -+ stream = (BraseroScsiRTStreamDesc *) hdr->desc->data; -+ if (stream->wrt_spd) { -+ result = brasero_medium_get_speed_mmc3 (self, fd, code); -+ if (result == BRASERO_BURN_OK) -+ goto end; -+ } - -- BRASERO_BURN_LOG ("wrong size for Stream descriptor"); -- return BRASERO_BURN_ERR; -+ if (stream->mp2a) { -+ result = brasero_medium_get_page_2A_write_speed_desc (self, fd, code); -+ if (result == BRASERO_BURN_OK) -+ goto end; -+ } - } - -- /* try all SCSI functions to get write/read speeds in order */ -- stream = (BraseroScsiRTStreamDesc *) hdr->desc->data; -- if (stream->wrt_spd) { -- /* NOTE: the next function returns either OK or RETRY to make -- * sure we always go and get over an error. There are other ways -- * to get the information we want */ -- result = brasero_medium_get_speed_mmc3 (self, fd, code); -- if (result != BRASERO_BURN_RETRY) -- goto end; -- } -+ /* fallback for speeds */ -+ result = brasero_medium_get_page_2A_max_speed (self, fd, code); - -- if (stream->mp2a) -- result = brasero_medium_get_page_2A_write_speed_desc (self, fd, code); -- else -- result = brasero_medium_get_page_2A_max_speed (self, fd, code); - -- - end: - - g_free (hdr); - - if (result != BRASERO_BURN_OK) -- return BRASERO_BURN_ERR; -+ return result; - - return BRASERO_BURN_OK; - } -@@ -797,6 +805,8 @@ - int size; - - priv = BRASERO_MEDIUM_PRIVATE (self); -+ -+ BRASERO_BURN_LOG ("Testing for Css encrypted media"); - result = brasero_mmc2_get_configuration_feature (fd, - BRASERO_SCSI_FEAT_DVD_CSS, - &hdr, -@@ -809,14 +819,16 @@ - return BRASERO_BURN_ERR; - } - -- if (hdr->desc->add_len != sizeof (BraseroScsiDVDCssDesc)) { -+ if (hdr->desc->add_len < sizeof (BraseroScsiDVDCssDesc)) { - g_free (hdr); -- return BRASERO_BURN_ERR; -+ return BRASERO_BURN_OK; - } - - /* here we just need to see if this feature is current or not */ -- if (hdr->desc->current) -+ if (hdr->desc->current) { - priv->info |= BRASERO_MEDIUM_PROTECTED; -+ BRASERO_BURN_LOG ("media is Css protected"); -+ } - - g_free (hdr); - return BRASERO_BURN_OK; -@@ -877,13 +889,26 @@ - BraseroScsiTrackInfo track_info; - BraseroMediumPrivate *priv; - BraseroScsiResult result; -+ int size; - -+ BRASERO_BURN_LOG ("Retrieving track information for %i", track_num); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - -+ /* at this point we know the type of the disc that's why we set the -+ * size according to this type. That may help to avoid outrange address -+ * errors. */ -+ if (BRASERO_MEDIUM_IS (priv->info, BRASERO_MEDIUM_DL|BRASERO_MEDIUM_WRITABLE)) -+ size = 48; -+ else if (BRASERO_MEDIUM_IS (priv->info, BRASERO_MEDIUM_PLUS|BRASERO_MEDIUM_WRITABLE)) -+ size = 40; -+ else -+ size = 36; -+ - result = brasero_mmc1_read_track_info (fd, - track_num, - &track_info, -- sizeof (BraseroScsiTrackInfo), -+ &size, - code); - - if (result != BRASERO_SCSI_OK) { -@@ -921,6 +946,8 @@ - BraseroMediumPrivate *priv; - BraseroScsiFormattedTocData *toc = NULL; - -+ BRASERO_BURN_LOG ("Reading toc"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - result = brasero_mmc1_read_toc_formatted (fd, - 0, -@@ -937,6 +964,8 @@ - num = (size - sizeof (BraseroScsiFormattedTocData)) / - sizeof (BraseroScsiTocDesc); - -+ BRASERO_BURN_LOG ("%i track(s) found", num); -+ - desc = toc->desc; - for (i = 0; i < num; i ++, desc ++) { - BraseroMediumTrack *track; -@@ -1056,6 +1085,8 @@ - BraseroMediumPrivate *priv; - BraseroScsiDiscInfoStd *info = NULL; - -+ BRASERO_BURN_LOG ("Retrieving media status"); -+ - priv = BRASERO_MEDIUM_PRIVATE (self); - - result = brasero_mmc1_read_disc_information_std (fd, -@@ -1075,6 +1106,8 @@ - if (info->status == BRASERO_SCSI_DISC_EMPTY) { - BraseroMediumTrack *track; - -+ BRASERO_BURN_LOG ("Empty media"); -+ - priv->info |= BRASERO_MEDIUM_BLANK; - priv->block_size = 2048; - -@@ -1086,8 +1119,12 @@ - goto end; - } - -- if (info->status == BRASERO_SCSI_DISC_INCOMPLETE) -+ if (info->status == BRASERO_SCSI_DISC_INCOMPLETE) { - priv->info |= BRASERO_MEDIUM_APPENDABLE; -+ BRASERO_BURN_LOG ("Appendable media"); -+ } -+ else if (info->status == BRASERO_SCSI_DISC_FINALIZED) -+ BRASERO_BURN_LOG ("Closed media"); - - result = brasero_medium_get_sessions_info (self, fd, code); - if (result != BRASERO_BURN_OK) -@@ -1112,17 +1149,17 @@ - if (result != BRASERO_BURN_OK) - return; - -- if (priv->info & BRASERO_MEDIUM_DVD) { -- result = brasero_medium_get_css_feature (object, fd, &code); -- if (result != BRASERO_BURN_OK) -- return; -- } -- - result = brasero_medium_get_contents (object, fd, &code); - if (result != BRASERO_BURN_OK) - return; - -+ /* assume that css feature is only for DVD-ROM which might be wrong but some drives -+ * wrongly reports that css is enabled for some blank DVD+R */ -+ if (BRASERO_MEDIUM_IS (priv->info, (BRASERO_MEDIUM_DVD/*|BRASERO_MEDIUM_ROM*/))) -+ brasero_medium_get_css_feature (object, fd, &code); -+ - brasero_medium_get_capacity_by_type (object, fd, &code); -+ BRASERO_BURN_LOG ("media is %i", priv->info); - } - - static gboolean -Index: src/data-disc.c -=================================================================== ---- a/src/data-disc.c (revision 311) -+++ b/src/data-disc.c (working copy) -@@ -8048,6 +8048,9 @@ - } - - if (disc->priv->is_loading) { -+ /* Translators: the following text is the reason why brasero -+ * failed to load a project: because it is already loading -+ * another project */ - brasero_data_disc_import_session_error (disc, _("loading project")); - return; - } -Index: src/scsi/scsi-read-track-information.c -=================================================================== ---- a/src/scsi/scsi-read-track-information.c (revision 311) -+++ b/src/scsi/scsi-read-track-information.c (working copy) -@@ -26,6 +26,8 @@ - - #include - -+#include "burn-debug.h" -+ - #include "scsi-error.h" - #include "scsi-utils.h" - #include "scsi-base.h" -@@ -85,115 +87,87 @@ - - #define BRASERO_SCSI_INCOMPLETE_TRACK 0xFF - --/** -- * -- * NOTE: if media is a CD and track_num = 0 then returns leadin -- * but since the other media don't have a leadin they error out. -- * if track_num = 255 returns last incomplete track. -- */ -- --BraseroScsiResult --brasero_mmc1_read_track_info (int fd, -- int track_num, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error) -+static BraseroScsiResult -+brasero_read_track_info (BraseroRdTrackInfoCDB *cdb, -+ BraseroScsiTrackInfo *info, -+ int *size, -+ BraseroScsiErrCode *error) - { -- BraseroRdTrackInfoCDB *cdb; -+ BraseroScsiTrackInfo hdr; - BraseroScsiResult res; -+ int datasize; - -- cdb = brasero_scsi_command_new (&info, fd); -- cdb->addr_num_type = BRASERO_FIELD_TRACK_NUM; -- BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, track_num); -- BRASERO_SET_16 (cdb->alloc_len, size); -+ if (!info || !size) { -+ BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_BAD_ARGUMENT); -+ return BRASERO_SCSI_FAILURE; -+ } - -- memset (track_info, 0, sizeof (BraseroScsiTrackInfo)); -- res = brasero_scsi_command_issue_sync (cdb, track_info, size, error); -- brasero_scsi_command_free (cdb); -- return res; --} -+ /* first ask the drive how long should the data be and then ... */ -+ datasize = 4; -+ memset (&hdr, 0, sizeof (info)); -+ BRASERO_SET_16 (cdb->alloc_len, datasize); -+ res = brasero_scsi_command_issue_sync (cdb, &hdr, datasize, error); -+ if (res) -+ return res; - --BraseroScsiResult --brasero_mmc1_read_track_info_for_block (int fd, -- int block, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error) --{ -- BraseroRdTrackInfoCDB *cdb; -- BraseroScsiResult res; -+ /* ... check the size in case of a buggy firmware ... */ -+ if (BRASERO_GET_16 (hdr.len) + sizeof (hdr.len) >= datasize) { -+ datasize = BRASERO_GET_16 (hdr.len) + sizeof (hdr.len); - -- cdb = brasero_scsi_command_new (&info, fd); -+ if (datasize > *size) { -+ BRASERO_BURN_LOG ("Oversized data received (%i) setting to %i", datasize, *size); -+ datasize = *size; -+ } -+ else if (*size < datasize) { -+ BRASERO_BURN_LOG ("Oversized data required (%i) setting to %i", *size, datasize); -+ *size = datasize; -+ } -+ } -+ else { -+ BRASERO_BURN_LOG ("Undersized data received (%i) setting to %i", datasize, *size); -+ datasize = *size; -+ } - -- cdb->addr_num_type = BRASERO_FIELD_LBA; -- BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, block); -- BRASERO_SET_16 (cdb->alloc_len, size); -+ /* ... and re-issue the command */ -+ memset (info, 0, sizeof (BraseroScsiTrackInfo)); -+ BRASERO_SET_16 (cdb->alloc_len, datasize); -+ res = brasero_scsi_command_issue_sync (cdb, info, datasize, error); - -- memset (track_info, 0, sizeof (BraseroScsiTrackInfo)); -- res = brasero_scsi_command_issue_sync (cdb, track_info, size, error); -- brasero_scsi_command_free (cdb); -- return res; --} -+ if (!res) { -+ if (datasize != BRASERO_GET_16 (info->len) + sizeof (info->len)) -+ BRASERO_BURN_LOG ("Sizes mismatch asked %i / received %i", -+ datasize, -+ BRASERO_GET_16 (info->len) + sizeof (info->len)); - --BraseroScsiResult --brasero_mmc1_read_session_first_track_info (int fd, -- int session, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error) --{ -- BraseroRdTrackInfoCDB *cdb; -- BraseroScsiResult res; -+ *size = MIN (datasize, BRASERO_GET_16 (info->len) + sizeof (info->len)); -+ } - -- cdb = brasero_scsi_command_new (&info, fd); -- -- BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, session); -- cdb->addr_num_type = BRASERO_FIELD_SESSION_NUM; -- BRASERO_SET_16 (cdb->alloc_len, size); -- -- memset (track_info, 0, sizeof (BraseroScsiTrackInfo)); -- res = brasero_scsi_command_issue_sync (cdb, track_info, size, error); -- brasero_scsi_command_free (cdb); - return res; - } - -+/** -+ * -+ * NOTE: if media is a CD and track_num = 0 then returns leadin -+ * but since the other media don't have a leadin they error out. -+ * if track_num = 255 returns last incomplete track. -+ */ -+ - BraseroScsiResult --brasero_mmc1_read_first_open_session_track_info (int fd, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error) -+brasero_mmc1_read_track_info (int fd, -+ int track_num, -+ BraseroScsiTrackInfo *track_info, -+ int *size, -+ BraseroScsiErrCode *error) - { - BraseroRdTrackInfoCDB *cdb; - BraseroScsiResult res; - - cdb = brasero_scsi_command_new (&info, fd); - cdb->addr_num_type = BRASERO_FIELD_TRACK_NUM; -- BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, BRASERO_SCSI_INCOMPLETE_TRACK); -- BRASERO_SET_16 (cdb->alloc_len, size); -+ BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, track_num); - -- memset (track_info, 0, sizeof (BraseroScsiTrackInfo)); -- res = brasero_scsi_command_issue_sync (cdb, track_info, size, error); -+ res = brasero_read_track_info (cdb, track_info, size, error); - brasero_scsi_command_free (cdb); -- return res; --} - --BraseroScsiResult --brasero_mmc5_read_first_open_session_track_info (int fd, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error) --{ -- BraseroRdTrackInfoCDB *cdb; -- BraseroScsiResult res; -- -- cdb = brasero_scsi_command_new (&info, fd); -- cdb->open = 1; -- cdb->addr_num_type = BRASERO_FIELD_TRACK_NUM; -- BRASERO_SET_32 (cdb->blk_addr_trk_ses_num, 1); -- BRASERO_SET_16 (cdb->alloc_len, size); -- -- memset (track_info, 0, sizeof (BraseroScsiTrackInfo)); -- res = brasero_scsi_command_issue_sync (cdb, track_info, size, error); -- brasero_scsi_command_free (cdb); - return res; - } -Index: src/scsi/scsi-read-track-information.h -=================================================================== ---- a/src/scsi/scsi-read-track-information.h (revision 311) -+++ b/src/scsi/scsi-read-track-information.h (working copy) -@@ -29,10 +29,7 @@ - #ifndef _SCSI_READ_TRACK_INFORMATION_H - #define _SCSI_READ_TRACK_INFORMATION_H - --#ifdef __cplusplus --extern "C" --{ --#endif -+G_BEGIN_DECLS - - typedef enum { - BRASERO_SCSI_DATA_MODE_1 = 0x01, -@@ -135,9 +132,7 @@ - #define BRASERO_SCSI_TRACK_NUM_PTR(track) (((track)->track_num_high << 8) + (track)->track_num_low) - #define BRASERO_SCSI_SESSION_NUM_PTR(track) (((track)->session_num_high << 8) + (track)->session_num_low) - --#ifdef __cplusplus --} --#endif -+G_END_DECLS - - #endif /* _SCSI_READ_TRACK_INFORMATION_H */ - -Index: src/scsi/scsi-utils.h -=================================================================== ---- a/src/scsi/scsi-utils.h (revision 311) -+++ b/src/scsi/scsi-utils.h (working copy) -@@ -55,7 +55,7 @@ - strerror (errno)); \ - } else { \ - BRASERO_BURN_LOG ("SCSI command error: %s", \ -- brasero_scsi_strerror (errno)); \ -+ brasero_scsi_strerror (code)); \ - } \ - if (err) \ - *(err) = code; \ -Index: src/scsi/scsi-read-disc-info.c -=================================================================== ---- a/src/scsi/scsi-read-disc-info.c (revision 311) -+++ b/src/scsi/scsi-read-disc-info.c (working copy) -@@ -30,6 +30,8 @@ - - #include - -+#include "burn-debug.h" -+ - #include "scsi-error.h" - #include "scsi-utils.h" - #include "scsi-base.h" -@@ -93,6 +95,7 @@ - BraseroRdDiscInfoCDB *cdb; - BraseroScsiResult res; - int request_size; -+ int buffer_size; - - if (!info_return || !size) { - BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_BAD_ARGUMENT); -@@ -122,16 +125,16 @@ - goto end; - } - -- if (request_size != BRASERO_GET_16 (buffer->len) + sizeof (buffer->len)) { -- BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_SIZE_MISMATCH); -+ buffer_size = BRASERO_GET_16 (buffer->len) + -+ sizeof (buffer->len); - -- res = BRASERO_SCSI_FAILURE; -- g_free (buffer); -- goto end; -- } -+ if (request_size != buffer_size) -+ BRASERO_BURN_LOG ("Sizes mismatch asked %i / received %i", -+ request_size, -+ buffer_size); - - *info_return = buffer; -- *size = request_size; -+ *size = MIN (request_size, buffer_size); - - end: - -Index: src/scsi/scsi-get-configuration.c -=================================================================== ---- a/src/scsi/scsi-get-configuration.c (revision 311) -+++ b/src/scsi/scsi-get-configuration.c (working copy) -@@ -26,6 +26,8 @@ - - #include - -+#include "burn-debug.h" -+ - #include "scsi-error.h" - #include "scsi-utils.h" - #include "scsi-base.h" -@@ -99,18 +101,29 @@ - return BRASERO_SCSI_FAILURE; - } - -+ /* first issue the command once ... */ - memset (&hdr, 0, sizeof (hdr)); -- - BRASERO_SET_16 (cdb->alloc_len, sizeof (hdr)); - res = brasero_scsi_command_issue_sync (cdb, &hdr, sizeof (hdr), error); - if (res) - return res; - -- /* ... allocate a buffer and re-issue the command */ -+ /* ... check the size returned ... */ - request_size = BRASERO_GET_32 (hdr.len) + - G_STRUCT_OFFSET (BraseroScsiGetConfigHdr, len) + - sizeof (hdr.len); - -+ /* NOTE: if size is not valid use the maximum possible size */ -+ if ((request_size - sizeof (hdr)) % 8) { -+ BRASERO_BURN_LOG ("Unaligned data (%i) setting to max (65530)", request_size); -+ request_size = 65530; -+ } -+ else if (request_size <= sizeof (hdr)) { -+ BRASERO_BURN_LOG ("Undersized data (%i) setting to max (65530)", request_size); -+ request_size = 65530; -+ } -+ -+ /* ... allocate a buffer and re-issue the command */ - buffer = (BraseroScsiGetConfigHdr *) g_new0 (uchar, request_size); - - BRASERO_SET_16 (cdb->alloc_len, request_size); -@@ -125,16 +138,13 @@ - G_STRUCT_OFFSET (BraseroScsiGetConfigHdr, len) + - sizeof (hdr.len); - -- if (buffer_size != request_size) { -- g_free (buffer); -+ if (buffer_size != request_size) -+ BRASERO_BURN_LOG ("Sizes mismatch asked %i / received %i", -+ request_size, -+ buffer_size); - -- BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_SIZE_MISMATCH); -- return BRASERO_SCSI_FAILURE; -- } -- - *data = buffer; -- *size = request_size; -- -+ *size = MIN (buffer_size, request_size); - return BRASERO_SCSI_OK; - } - -@@ -148,34 +158,24 @@ - BraseroGetConfigCDB *cdb; - BraseroScsiResult res; - -+ g_return_val_if_fail (data != NULL, BRASERO_SCSI_FAILURE); -+ g_return_val_if_fail (size != NULL, BRASERO_SCSI_FAILURE); -+ - cdb = brasero_scsi_command_new (&info, fd); - BRASERO_SET_16 (cdb->feature_num, type); - cdb->returned_data = BRASERO_GET_CONFIG_RETURN_ONLY_FEATURE; - - res = brasero_get_configuration (cdb, data, size, error); - brasero_scsi_command_free (cdb); -- return res; --} - --BraseroScsiResult --brasero_mmc2_get_configuration_all_features (int fd, -- int only_current, -- BraseroScsiGetConfigHdr **data, -- int *size, -- BraseroScsiErrCode *error) --{ -- BraseroGetConfigCDB *cdb; -- BraseroScsiResult res; -+ /* make sure the desc is the one we want */ -+ if ((*data) && BRASERO_GET_16 ((*data)->desc->code) != type) { -+ BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_TYPE_MISMATCH); - -- cdb = brasero_scsi_command_new (&info, fd); -- BRASERO_SET_16 (cdb->feature_num, BRASERO_SCSI_FEAT_PROFILES); -+ g_free (*data); -+ *size = 0; -+ return BRASERO_SCSI_FAILURE; -+ } - -- if (only_current) -- cdb->returned_data = BRASERO_GET_CONFIG_RETURN_ALL_CURRENT; -- else -- cdb->returned_data = BRASERO_GET_CONFIG_RETURN_ALL_FEATURES; -- -- res = brasero_get_configuration (cdb, data, size, error); -- brasero_scsi_command_free (cdb); - return res; - } -Index: src/scsi/scsi-get-configuration.h -=================================================================== ---- a/src/scsi/scsi-get-configuration.h (revision 311) -+++ b/src/scsi/scsi-get-configuration.h (working copy) -@@ -177,7 +177,6 @@ - uchar inq2 :1; - uchar reserved0 :6; - -- uchar mmc4 [0]; - uchar reserved1 [3]; - }; - -Index: src/scsi/scsi-mmc1.h -=================================================================== ---- a/src/scsi/scsi-mmc1.h (revision 311) -+++ b/src/scsi/scsi-mmc1.h (working copy) -@@ -52,16 +52,10 @@ - BraseroScsiErrCode *error); - - BraseroScsiResult --brasero_mmc1_read_first_open_session_track_info (int fd, -- BraseroScsiTrackInfo *track_info, -- int size, -- BraseroScsiErrCode *error); -- --BraseroScsiResult - brasero_mmc1_read_track_info (int fd, - int track_num, - BraseroScsiTrackInfo *track_info, -- int size, -+ int *size, - BraseroScsiErrCode *error); - - G_END_DECLS -Index: src/scsi/scsi-get-performance.c -=================================================================== ---- a/src/scsi/scsi-get-performance.c (revision 311) -+++ b/src/scsi/scsi-get-performance.c (working copy) -@@ -25,6 +25,8 @@ - #include - #include - -+#include "burn-debug.h" -+ - #include "scsi-error.h" - #include "scsi-utils.h" - #include "scsi-command.h" -@@ -112,22 +114,37 @@ - return BRASERO_SCSI_FAILURE; - } - -+ /* Issue the command once to get the size ... */ - memset (&hdr, 0, sizeof (hdr)); - BRASERO_SET_16 (cdb->max_desc, 0); - res = brasero_scsi_command_issue_sync (cdb, &hdr, sizeof (hdr), error); - if (res) - return res; - -- /* ... allocate a buffer and re-issue the command */ -+ /* ... check the request size ... */ - request_size = BRASERO_GET_32 (hdr.len) + - G_STRUCT_OFFSET (BraseroScsiGetPerfHdr, len) + - sizeof (hdr.len); - -- desc_num = (request_size - sizeof (BraseroScsiGetPerfHdr)) / sizeof_descriptors; -- BRASERO_SET_16 (cdb->max_desc, desc_num); -+ if (request_size > 2048) { -+ BRASERO_BURN_LOG ("Oversized data (%i) setting to max (2048)", request_size); -+ request_size = 2048; -+ } -+ else if ((request_size - sizeof (hdr)) % sizeof_descriptors) { -+ BRASERO_BURN_LOG ("Unaligned data (%i) setting to max (2048)", request_size); -+ request_size = 2048; -+ } -+ else if (request_size < sizeof (hdr)) { -+ BRASERO_BURN_LOG ("Undersized data (%i) setting to max (2048)", request_size); -+ request_size = 2048; -+ } - -+ desc_num = (request_size - sizeof (hdr)) / sizeof_descriptors; -+ -+ /* ... allocate a buffer and re-issue the command */ - buffer = (BraseroScsiGetPerfData *) g_new0 (uchar, request_size); - -+ BRASERO_SET_16 (cdb->max_desc, desc_num); - res = brasero_scsi_command_issue_sync (cdb, buffer, request_size, error); - if (res) { - g_free (buffer); -@@ -139,48 +156,18 @@ - G_STRUCT_OFFSET (BraseroScsiGetPerfHdr, len) + - sizeof (buffer->hdr.len); - -- if (buffer_size != request_size) { -- g_free (buffer); -+ if (request_size != buffer_size) -+ BRASERO_BURN_LOG ("Sizes mismatch asked %i / received %i", -+ request_size, -+ buffer_size); - -- BRASERO_SCSI_SET_ERRCODE (error, BRASERO_SCSI_SIZE_MISMATCH); -- return BRASERO_SCSI_FAILURE; -- } -- - *data = buffer; -- *data_size = request_size; -+ *data_size = MIN (buffer_size, request_size); - - return res; - } - - /** -- * MMC2 command extension -- */ -- --BraseroScsiResult --brasero_mmc2_get_performance_perf (int fd, -- BraseroScsiPerfParam param, -- BraseroScsiGetPerfData **data, -- int *size, -- BraseroScsiErrCode *error) --{ -- BraseroGetPerformanceCDB *cdb; -- BraseroScsiResult res; -- -- cdb = brasero_scsi_command_new (&info, fd); -- cdb->type = BRASERO_GET_PERFORMANCE_PERF_TYPE; -- -- if (param & BRASERO_SCSI_PERF_LIST) -- cdb->except= 0x01; -- -- if (param & BRASERO_SCSI_PERF_WRITE) -- cdb->write = 0x01; -- -- res = brasero_get_performance (cdb, sizeof (BraseroScsiPerfDesc), data, size, error); -- brasero_scsi_command_free (cdb); -- return res; --} -- --/** - * MMC3 command extension - */ - -Index: src/scsi/scsi-get-performance.h -=================================================================== ---- a/src/scsi/scsi-get-performance.h (revision 311) -+++ b/src/scsi/scsi-get-performance.h (working copy) -@@ -29,10 +29,7 @@ - #ifndef _BURN_GET_PERFORMANCE_H - #define _BURN_GET_PERFORMANCE_H - --#ifdef __cplusplus --extern "C" --{ --#endif -+G_BEGIN_DECLS - - #if G_BYTE_ORDER == G_LITTLE_ENDIAN - -@@ -88,15 +85,7 @@ - - #endif - --struct _BraseroScsiPerfDesc { -- uchar start_lba [4]; -- uchar start_perf [4]; -- uchar end_lba [4]; -- uchar end_perf [4]; --}; -- - typedef struct _BraseroScsiGetPerfHdr BraseroScsiGetPerfHdr; --typedef struct _BraseroScsiPerfDesc BraseroScsiPerfDesc; - typedef struct _BraseroScsiWrtSpdDesc BraseroScsiWrtSpdDesc; - - struct _BraseroScsiGetPerfData { -@@ -105,16 +94,8 @@ - }; - typedef struct _BraseroScsiGetPerfData BraseroScsiGetPerfData; - --typedef enum { -- BRASERO_SCSI_PERF_READ = 0, -- BRASERO_SCSI_PERF_WRITE = 1, -- BRASERO_SCSI_PERF_LIST = 1 << 1, --} BraseroScsiPerfParam; -+G_END_DECLS - --#ifdef __cplusplus --} --#endif -- - #endif /* _BURN_GET_PERFORMANCE_H */ - - diff --git a/brasero-0.7.0-open.patch b/brasero-0.7.0-open.patch new file mode 100644 index 0000000..55230a3 --- /dev/null +++ b/brasero-0.7.0-open.patch @@ -0,0 +1,11 @@ +--- brasero-0.7.0/src/plugins/transcode/burn-transcode.c.orig 2007-12-30 11:17:45.000000000 +0100 ++++ brasero-0.7.0/src/plugins/transcode/burn-transcode.c 2007-12-30 11:18:02.000000000 +0100 +@@ -931,7 +931,7 @@ + + output = NULL; + brasero_job_get_audio_output (BRASERO_JOB (transcode), &output); +- fd = open (output, O_WRONLY | O_CREAT | O_APPEND); ++ fd = open (output, O_WRONLY | O_CREAT | O_APPEND, S_IRWXU | S_IRGRP | S_IROTH); + g_free (output); + + if (fd == -1) { diff --git a/brasero.spec b/brasero.spec index 32c0a13..81d50ea 100644 --- a/brasero.spec +++ b/brasero.spec @@ -1,15 +1,13 @@ Name: brasero -Version: 0.6.1 -Release: 2%{?dist} +Version: 0.7.0 +Release: 1%{?dist} Summary: Gnome CD/DVD burning application Group: Applications/Multimedia License: GPLv2+ URL: http://www.gnome.org/projects/brasero/ -Source0: http://ftp.gnome.org/pub/GNOME/sources/brasero/0.6/%{name}-%{version}.tar.bz2 -Patch0: brasero-0.6.0-tooltips.patch -Patch1: brasero-0.6.0-open.patch -Patch2: brasero-0.6.1-patchset.patch +Source0: http://ftp.gnome.org/pub/GNOME/sources/brasero/0.7/%{name}-%{version}.tar.bz2 +Patch0: brasero-0.7.0-open.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gettext intltool @@ -18,11 +16,14 @@ BuildRequires: libgnomeui-devel >= 2.10.0 BuildRequires: gstreamer-devel >= 0.10.6 BuildRequires: gstreamer-plugins-base-devel >= 0.10.0 BuildRequires: nautilus-cd-burner-devel >= 2.16.0 +BuildRequires: gnome-vfs2-devel >= 2.14.2 %ifnarch ppc64 BuildRequires: libbeagle-devel >= 0.1.1 %endif BuildRequires: totem-devel >= 1.2.0 BuildRequires: libnotify-devel >= 0.3.0 +BuildRequires: libxml2-devel >= 2.6.0 +BuildRequires: dbus-glib-devel >= 0.7.2 Requires: dvd+rw-tools Requires: cdrecord @@ -44,13 +45,13 @@ desktop. %prep %setup -q -%patch0 -p1 -b .tooltips -%patch1 -p1 -b .open -%patch2 -p1 -b .patchset +%patch0 -p1 -b .open %build %configure \ + --enable-dbus \ + --enable-preview \ --disable-caches \ --disable-static \ --disable-schemas-install \ @@ -116,6 +117,7 @@ fi %{_mandir}/man1/%{name}.* %{_bindir}/* %{_datadir}/%{name} +%{_libdir}/%{name} %{_datadir}/applications/brasero.desktop %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/mime/packages/* @@ -123,6 +125,10 @@ fi %changelog +* Tue Jan 8 2008 Denis Leroy - 0.7.0-1 +- Update to upstream 0.7.0, fixes #427985 +- Forward ported open() patch + * Tue Jan 1 2008 Denis Leroy - 0.6.1-2 - Added patchset from 0.6 branch - Includes fix for audio CD size computation (#397951) diff --git a/sources b/sources index 2b2eb71..e2a472a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -fa3b59f06b93bd831805a73a81f3293f brasero-0.6.1.tar.bz2 +b6ef754a108e2f2b64b815b283f51756 brasero-0.7.0.tar.bz2