rpms/gnome-volume-manager/devel gnome-volume-manager-1.5.9-goption.patch, NONE, 1.1 gnome-volume-manager.spec, 1.29, 1.30

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Jan 18 20:54:43 UTC 2006


Author: johnp

Update of /cvs/dist/rpms/gnome-volume-manager/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv22085

Modified Files:
	gnome-volume-manager.spec 
Added Files:
	gnome-volume-manager-1.5.9-goption.patch 
Log Message:
- Switch to using goptions instead of popt which is causing a crash


gnome-volume-manager-1.5.9-goption.patch:
 manager.c |   63 +++++++++++++++++++++++++++++---------------------------------
 1 files changed, 30 insertions(+), 33 deletions(-)

--- NEW FILE gnome-volume-manager-1.5.9-goption.patch ---
--- gnome-volume-manager-1.5.9/src/manager.c.goption	2006-01-18 15:51:23.000000000 -0500
+++ gnome-volume-manager-1.5.9/src/manager.c	2006-01-18 15:48:51.000000000 -0500
@@ -2462,16 +2462,21 @@
 #define POPT_TABLEEND { NULL, '\0', 0, NULL, '\0', NULL, NULL }
 #endif
 
-static const struct poptOption options[] = {
-	{ "version", 'v', POPT_ARG_NONE | POPT_ARGFLAG_ONEDASH, NULL, 'v',
+static gboolean print_version;
+static char *make_daemon;
+static gboolean no_daemon;
+static gboolean secret_mode;
+
+static GOptionEntry options[] = {
+	{ "version", 'v', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_NONE, &print_version,
 	  N_("Print version and exit"), NULL },
-	{ "daemon", 'd', POPT_ARG_STRING | POPT_ARGFLAG_ONEDASH, NULL, 'd',
+	{ "daemon", 'd', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_STRING, &make_daemon,
 	  N_("Run as a daemon"), "<yes|no>" },
-	{ "no-daemon", 'n', POPT_ARG_NONE | POPT_ARGFLAG_ONEDASH, NULL, 'n',
+	{ "no-daemon", 'n', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_NONE, &no_daemon,
 	  N_("Don't run as a daemon"), NULL },
-	{ "secret-mode", 's', POPT_ARG_NONE | POPT_ARGFLAG_ONEDASH, NULL, 's',
+	{ "secret-mode", 's', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_NONE, &secret_mode,
 	  N_("Run in secret mode"), NULL },
-	POPT_TABLEEND
+	{ NULL, '\0', 0, 0, NULL, NULL, NULL}
 };
 
 int
@@ -2480,41 +2485,34 @@
 	gboolean daemonize = TRUE;
 	GnomeProgram *program;
 	GnomeClient *client;
-	poptContext ctx;
+	GOptionContext *context;
 	const char *arg;
 	int rc;
 	
 	bindtextdomain (PACKAGE, GNOMELOCALEDIR);
 	bind_textdomain_codeset (PACKAGE, "UTF-8");
 	textdomain (PACKAGE);
+
+	context = g_option_context_new (PACKAGE);
+	g_option_context_add_main_entries (context, options, NULL);
 	
 	program = gnome_program_init (PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv,
-				      GNOME_PARAM_POPT_FLAGS, POPT_CONTEXT_POSIXMEHARDER,
-				      GNOME_PARAM_POPT_TABLE, options, GNOME_PARAM_NONE);
-	
-	g_object_get ((GObject *) program, GNOME_PARAM_POPT_CONTEXT, &ctx, NULL);
-	
-	poptResetContext (ctx);
-	
-	while ((rc = poptGetNextOpt (ctx)) > 0) {
-		switch (rc) {
-		case 'v':
-			fprintf (stdout, "%s version %s\n", PACKAGE, VERSION);
-			poptFreeContext (ctx);
-			exit (0);
-		case 'd':
-			if (!(arg = poptGetOptArg (ctx)) || (!strcmp (arg, "true") || !strcmp (arg, "yes"))) {
-				daemonize = TRUE;
-				break;
-			}
-		case 'n':
-			daemonize = FALSE;
-			break;
-		case 's':
-			fprintf (stdout, "Managing volumes since the summer of '89\n");
-			break;
-		}
+				      GNOME_PARAM_GOPTION_CONTEXT, context, GNOME_PARAM_NONE);
+
+	if (print_version) {
+		fprintf (stdout, "%s version %s\n", PACKAGE, VERSION);
+		exit (0);
 	}
+
+	daemonize = FALSE;
+	if (make_daemon == NULL || (strcmp (arg, "true") == 0) || (strcmp (arg, "yes") == 0))
+		daemonize = TRUE;
+
+	if (no_daemon)
+		daemonize = FALSE;
+	
+	if (secret_mode)
+		fprintf (stdout, "Managing volumes since the summer of '89\n");
 	
 	if (daemonize && daemon (0, 0) < 0) {
 		warn ("daemonizing failed: %s", g_strerror (errno));
@@ -2562,7 +2560,6 @@
 	gtk_main ();
 	
 	g_object_unref (program);
-	poptFreeContext (ctx);
 	
 	return 0;
 }


Index: gnome-volume-manager.spec
===================================================================
RCS file: /cvs/dist/rpms/gnome-volume-manager/devel/gnome-volume-manager.spec,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- gnome-volume-manager.spec	18 Jan 2006 18:38:04 -0000	1.29
+++ gnome-volume-manager.spec	18 Jan 2006 20:54:38 -0000	1.30
@@ -1,7 +1,7 @@
 Summary: The GNOME Volume Manager
 Name: gnome-volume-manager
 Version: 1.5.9
-Release: 2 
+Release: 3 
 License: GPL
 Group: Applications/System
 Source0: gnome-volume-manager-%{version}.tar.bz2
@@ -12,6 +12,7 @@
 Patch0: gnome-volume-manager-0.9.10.add-to-base.patch
 Patch1: gnome-volume-manager-1.5.1.rh-defaults.patch
 Patch2: gvm-no-mount-ui-on-startup.patch 
+Patch3: gnome-volume-manager-1.5.9-goption.patch 
 BuildRoot: /var/tmp/%{name}-root
 BuildPrereq: libgnomeui-devel, libglade2-devel, dbus-devel >= 0.60
 BuildPrereq: hal-devel >= 0.5.0
@@ -41,6 +42,7 @@
 %patch0 -p1 -b .add-to-base
 %patch1 -p1 -b .rh-defaults
 %patch2 -p0 -b .no-ui
+%patch3 -p1 -b .goption
 
 %build
 %configure
@@ -78,6 +80,9 @@
 %{_libexecdir}/gnome-cdda-handler
 
 %changelog
+* Wed Jan 18 2006 John (J5) Palmieri <johnp at redhat.com> - 1.5.9-3
+- Switch to using goptions instead of popt which is causing a crash
+
 * Wed Jan 18 2006 John (J5) Palmieri <johnp at redhat.com> - 1.5.9-2
 - Add the no-ui patch from upstream. Next release should have this.
 




More information about the fedora-cvs-commits mailing list