rpms/brasero/F-12 0001-Fix-parsing-of-file-paths-on-the-command-line.patch, NONE, 1.1 brasero.spec, 1.66, 1.67

Bastien Nocera hadess at fedoraproject.org
Wed Oct 7 08:35:48 UTC 2009


Author: hadess

Update of /cvs/pkgs/rpms/brasero/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2362

Modified Files:
	brasero.spec 
Added Files:
	0001-Fix-parsing-of-file-paths-on-the-command-line.patch 
Log Message:
* Wed Oct 07 2009 Bastien Nocera <bnocera at redhat.com> 2.28.1-2
- Fix command-line parsing (#527484)


0001-Fix-parsing-of-file-paths-on-the-command-line.patch:
 brasero-project-parse.c |   16 +++++++++++++---
 main.c                  |   11 +++++------
 2 files changed, 18 insertions(+), 9 deletions(-)

--- NEW FILE 0001-Fix-parsing-of-file-paths-on-the-command-line.patch ---
>From 82a2336030c885bb5a74639d401ab3f2ec511af5 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess at hadess.net>
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



Index: brasero.spec
===================================================================
RCS file: /cvs/pkgs/rpms/brasero/F-12/brasero.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -p -r1.66 -r1.67
--- brasero.spec	5 Oct 2009 17:25:38 -0000	1.66
+++ brasero.spec	7 Oct 2009 08:35:48 -0000	1.67
@@ -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
 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 <bnocera at redhat.com> 2.28.1-2
+- Fix command-line parsing (#527484)
+
 * Mon Oct  5 2009 Matthias Clasen <mclasen at redhat.com> - 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




More information about the fedora-extras-commits mailing list