File libgnomesu-drop-libgnomeui.patch of Package libgnomesu.1421

Index: libgnomesu-1.0.0/tools/gnomesu.c
===================================================================
--- libgnomesu-1.0.0.orig/tools/gnomesu.c
+++ libgnomesu-1.0.0/tools/gnomesu.c
@@ -18,8 +18,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <gnome.h>
 #include <gconf/gconf-client.h>
 
 #include <string.h>
@@ -36,17 +36,12 @@ static gchar *user = NULL;
 static gint   final_status = 0;
 GMainLoop    *main_loop;
 
-static struct poptOption options[] = {
-	{ "command", 'c', POPT_ARG_STRING, &command, 0,
-	  N_("Pass the command to execute as one single string."),
-	  N_("COMMAND") },
-
-	{ "user", 'u', POPT_ARG_STRING, &user, 0,
-	  N_("Run as this user instead of as root."),
-	  N_("USERNAME") },
-
-	{ NULL, '\0', 0, NULL, 0 }
-};
+static GOptionEntry entries[] =
+{
+  { "command", 'c', 0, G_OPTION_ARG_STRING, &command, N_("Pass the command to execute as one single string."), N_("COMMAND") },
+  { "user", 'u', 0, G_OPTION_ARG_STRING, &user, N_("Run as this user instead of as root."), N_("USERNAME") },
+  { NULL }
+  };
 
 static void
 child_exit_cb (GPid pid, gint status, gpointer data)
@@ -58,9 +53,7 @@ child_exit_cb (GPid pid, gint status, gp
 int
 main (int argc, char *argv[])
 {
-	GnomeProgram *program;
-	GValue value = { 0 };
-	poptContext pctx;
+	GError *error;
 	const char *desktop_startup_id;
 
 	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
@@ -73,30 +66,38 @@ main (int argc, char *argv[])
 	if (desktop_startup_id)
 		g_setenv ("_GNOMESU_DESKTOP_STARTUP_ID", desktop_startup_id, TRUE);
 
-	program = gnome_program_init ("gnomesu", VERSION,
-			LIBGNOMEUI_MODULE, argc, argv,
-			GNOME_PARAM_POPT_TABLE, options,
-			GNOME_PARAM_HUMAN_READABLE_NAME, _("GNOME SuperUser"),
-			GNOME_PARAM_APP_PREFIX, GNOMESU_PREFIX,
-			NULL);
-	g_object_get_property (G_OBJECT (program),
-		GNOME_PARAM_POPT_CONTEXT,
-		g_value_init (&value, G_TYPE_POINTER));
-	pctx = g_value_get_pointer (&value);
+	error = NULL;
+	if (!gtk_init_with_args (&argc, &argv, NULL, entries, GETTEXT_PACKAGE, &error)) {
+		if (error) {
+			g_printerr ("%s\n", error->message);
+			g_error_free (error);
+		} else
+			g_printerr (_("An unknown error occurred.\n"));
+
+		return 1;
+	}
 
+	g_set_application_name (_("GNOME SuperUser"));
 	gtk_window_set_default_icon_name (GTK_STOCK_DIALOG_AUTHENTICATION);
 
 	main_loop = g_main_loop_new (NULL, FALSE);
 
 	if (!command) {
-		GList *arglist = NULL;
-		gchar *arg, **args;
-		int status, pid, i = 0;
+		gchar **args;
+		int pid, i = 0;
 
-		while ((arg = (gchar *) poptGetArg (pctx)) != NULL)
-			arglist = g_list_append (arglist, arg);
+		/* skipping the program at argv[0] */
+		argc--;
+		argv++;
+
+		/* Skip any potential leading "--" in argv.
+		 * This can happen with "gnomesu -- gnomesu -- ls" */
+		while (argc > 0 && argv[0] && strcmp (argv[0], "--") == 0) {
+			argc--;
+			argv++;
+		}
 
-		if (g_list_length (arglist) == 0) {
+		if (argc == 0) {
 			gchar *terminal;
 
 			terminal = gconf_client_get_string (gconf_client_get_default (),
@@ -114,11 +115,10 @@ main (int argc, char *argv[])
 			return WEXITSTATUS (final_status);
 		}
 
-		args = g_new0 (gchar *, g_list_length (arglist) + 1);
-		for (arglist = g_list_first (arglist); arglist != NULL; arglist = arglist->next) {
-			args[i] = arglist->data;
-			i++;
-		}
+		/* we have to copy argv to have a NULL-terminated array */
+		args = g_new0 (gchar *, argc + 1);
+		for (i = 0; i < argc; i++)
+			args[i] = argv[i];
 
 		if (!gnomesu_spawn_async (user, args, &pid))
 			return 255;
@@ -126,12 +126,11 @@ main (int argc, char *argv[])
 		g_child_watch_add (pid, child_exit_cb, NULL);
 		g_main_loop_run (main_loop);
 
-		g_list_free (arglist);
 		g_free (args);
 		return WEXITSTATUS (final_status);
 
 	} else {
-		int status, pid;
+		int pid;
 
 		if (!gnomesu_spawn_command_async (user, command, &pid))
 			return 255;
Index: libgnomesu-1.0.0/configure.in
===================================================================
--- libgnomesu-1.0.0.orig/configure.in
+++ libgnomesu-1.0.0/configure.in
@@ -48,7 +48,6 @@ AC_TRY_LINK(
 
 
 PKG_CHECK_MODULES(GNOMESU,[
-	libgnomeui-2.0
 	gconf-2.0
 ])
 AC_SUBST(GNOMESU_CFLAGS)
openSUSE Build Service is sponsored by