From e4871479826aa8eeba56ba74ce32cb24d08f3539 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Oct 07 2009 08:35:48 +0000 Subject: - Fix command-line parsing (#527484) --- diff --git a/0001-Fix-parsing-of-file-paths-on-the-command-line.patch b/0001-Fix-parsing-of-file-paths-on-the-command-line.patch new file mode 100644 index 0000000..ac696c1 --- /dev/null +++ b/0001-Fix-parsing-of-file-paths-on-the-command-line.patch @@ -0,0 +1,117 @@ +From 82a2336030c885bb5a74639d401ab3f2ec511af5 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 7 Oct 2009 09:16:50 +0100 +Subject: [PATCH] Fix parsing of file paths on the command-line + +Between 2.26.x and 2.28.x, Brasero lost its ability to have +file paths (as opposed to URIs) be used to pass arguments +on the command-line, breaking the existing Totem and Rhythmbox +burn plugins. + +Mark the relevant options as being passed filenames and get +the URI/path using GIO in the functions requiring it. + +https://bugzilla.gnome.org/show_bug.cgi?id=597584 +--- + src/brasero-project-parse.c | 16 +++++++++++++--- + src/main.c | 10 +++++----- + 2 files changed, 18 insertions(+), 8 deletions(-) + +diff --git a/src/brasero-project-parse.c b/src/brasero-project-parse.c +index 95c438d..ffacf46 100644 +--- a/src/brasero-project-parse.c ++++ b/src/brasero-project-parse.c +@@ -432,10 +432,13 @@ brasero_project_open_project_xml (const gchar *uri, + xmlDocPtr project; + xmlNodePtr item; + gboolean retval; ++ GFile *file; + gchar *path; + +- path = g_filename_from_uri (uri, NULL, NULL); +- if (!path) ++ file = g_file_new_for_commandline_arg (uri); ++ path = g_file_get_path (file); ++ g_object_unref (file); ++ if (!path) + return FALSE; + + /* start parsing xml doc */ +@@ -571,6 +574,12 @@ brasero_project_open_audio_playlist_project (const gchar *uri, + { + TotemPlParser *parser; + TotemPlParserResult result; ++ GFile *file; ++ char *_uri; ++ ++ file = g_file_new_for_commandline_arg (uri); ++ _uri = g_file_get_uri (file); ++ g_object_unref (file); + + parser = totem_pl_parser_new (); + g_object_set (parser, +@@ -588,12 +597,13 @@ brasero_project_open_audio_playlist_project (const gchar *uri, + G_CALLBACK (brasero_project_playlist_entry_parsed), + session); + +- result = totem_pl_parser_parse (parser, uri, FALSE); ++ result = totem_pl_parser_parse (parser, _uri, FALSE); + if (result != TOTEM_PL_PARSER_RESULT_SUCCESS) { + if (warn_user) + brasero_project_invalid_project_dialog (_("It does not seem to be a valid Brasero project")); + } + ++ g_free (_uri); + g_object_unref (parser); + + return (result == TOTEM_PL_PARSER_RESULT_SUCCESS); +diff --git a/src/main.c b/src/main.c +index 7de917c..e717ef5 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -70,13 +70,13 @@ gint open_ncb; + gint parent_window; + + static const GOptionEntry options [] = { +- { "project", 'p', 0, G_OPTION_ARG_STRING, &project_uri, ++ { "project", 'p', 0, G_OPTION_ARG_FILENAME, &project_uri, + N_("Open the specified project"), + N_("PROJECT") }, + + #ifdef BUILD_PLAYLIST + +- { "playlist", 'l', 0, G_OPTION_ARG_STRING, &playlist_uri, ++ { "playlist", 'l', 0, G_OPTION_ARG_FILENAME, &playlist_uri, + N_("Open the specified playlist as an audio project"), + N_("PLAYLIST") }, + +@@ -94,7 +94,7 @@ static const GOptionEntry options [] = { + N_("Copy a disc"), + N_("PATH TO DEVICE") }, + +- { "cover", 'j', 0, G_OPTION_ARG_STRING, &cover_project, ++ { "cover", 'j', 0, G_OPTION_ARG_FILENAME, &cover_project, + N_("Cover to use"), + N_("PATH TO COVER") }, + +@@ -102,7 +102,7 @@ static const GOptionEntry options [] = { + N_("Open a video project adding the URIs given on the command line"), + NULL }, + +- { "image", 'i', 0, G_OPTION_ARG_STRING, &iso_uri, ++ { "image", 'i', 0, G_OPTION_ARG_FILENAME, &iso_uri, + N_("URI of an image file to burn (autodetected)"), + N_("PATH TO PLAYLIST") }, + +@@ -122,7 +122,7 @@ static const GOptionEntry options [] = { + N_("Burn the contents of burn:// URI"), + NULL }, + +- { "burn-and-remove-project", 'r', 0, G_OPTION_ARG_STRING, &burn_project_uri, ++ { "burn-and-remove-project", 'r', 0, G_OPTION_ARG_FILENAME, &burn_project_uri, + N_("Burn the specified project and remove it.\nThis option is mainly useful for integration with other applications."), + N_("PATH") }, + +-- +1.6.4.4 + diff --git a/brasero.spec b/brasero.spec index 949ac4d..c44f1b7 100644 --- a/brasero.spec +++ b/brasero.spec @@ -1,6 +1,6 @@ Name: brasero Version: 2.28.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Gnome CD/DVD burning application Group: Applications/Multimedia License: GPLv2+ @@ -8,6 +8,9 @@ URL: http://www.gnome.org/projects/brasero/ Source0: http://ftp.gnome.org/pub/GNOME/sources/brasero/2.28/%{name}-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# https://bugzilla.gnome.org/show_bug.cgi?id=597584 +Patch0: 0001-Fix-parsing-of-file-paths-on-the-command-line.patch + BuildRequires: glib2-devel >= 2.15.6 BuildRequires: gettext intltool gtk-doc BuildRequires: desktop-file-utils @@ -86,6 +89,7 @@ developing brasero applications. %prep %setup -q +%patch0 -p1 -b .cmdline %build %configure \ @@ -203,6 +207,9 @@ fi %changelog +* Wed Oct 07 2009 Bastien Nocera 2.28.1-2 +- Fix command-line parsing (#527484) + * Mon Oct 5 2009 Matthias Clasen - 2.28.1-1 - Update to 2.28.1, fixes a number of crashes and other serious bugs: - Fix a crash when we try to download a missing gstreamer plugin through PK