Author: hawk                         Date: Thu Nov 25 09:39:38 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- merged from OpenSUSE: forward startup notification information when
  there's no authentication dialog

---- Files affected:
packages/libgnomesu:
   libgnomesu-startup-notification.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/libgnomesu/libgnomesu-startup-notification.patch
diff -u /dev/null packages/libgnomesu/libgnomesu-startup-notification.patch:1.1
--- /dev/null   Thu Nov 25 10:39:38 2010
+++ packages/libgnomesu/libgnomesu-startup-notification.patch   Thu Nov 25 
10:39:33 2010
@@ -0,0 +1,56 @@
+Index: libgnomesu-1.0.0/pam-backend/pam.c
+===================================================================
+--- libgnomesu-1.0.0.orig/pam-backend/pam.c
++++ libgnomesu-1.0.0/pam-backend/pam.c
+@@ -53,6 +53,7 @@
+ 
+ 
+ static FILE *inf, *outf;
++static gboolean interacted = FALSE;
+ static gboolean Abort = FALSE;
+ const gchar *new_user;
+ 
+@@ -77,6 +78,7 @@ su_conv (int num_msg, const struct pam_m
+               {
+                       gchar password[1024];
+ 
++                      interacted = TRUE;
+                       fprintf (outf, PROTOCOL_ASK_PASS);
+                       safe_memset (password, 0, sizeof (password));
+                       if (!fgets (password, sizeof (password), inf)) {
+@@ -286,6 +288,12 @@ main (int argc, char *argv[])
+                       outf = NULL;
+                       break;
+               case 0:
++                      if (!interacted) {
++                              const char *desktop_startup_id;
++                              desktop_startup_id = g_getenv 
("_GNOMESU_DESKTOP_STARTUP_ID");
++                              if (desktop_startup_id)
++                                      g_setenv ("DESKTOP_STARTUP_ID", 
desktop_startup_id, FALSE);
++                      }
+                       execvp (command[0], command);
+                       _exit (1);
+                       break;
+Index: libgnomesu-1.0.0/tools/gnomesu.c
+===================================================================
+--- libgnomesu-1.0.0.orig/tools/gnomesu.c
++++ libgnomesu-1.0.0/tools/gnomesu.c
+@@ -61,11 +61,18 @@ main (int argc, char *argv[])
+       GnomeProgram *program;
+       GValue value = { 0 };
+       poptContext pctx;
++      const char *desktop_startup_id;
+ 
+       bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       textdomain (GETTEXT_PACKAGE);
+ 
++      /* get the startup id before GTK+ unsets it, so we can forward it if
++       * there's no authentication dialog */
++      desktop_startup_id = g_getenv ("DESKTOP_STARTUP_ID");
++      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,
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to