* patches/xscreensaver-06-gtk-lock.diff,
authoralanc
Thu, 27 May 2010 07:20:44 +0000
changeset 18044 c733815d6bee
parent 18043 b5b67e481f98
child 18045 dbf849ca434c
* patches/xscreensaver-06-gtk-lock.diff, * patches/xscreensaver-09-xinput.diff, * patches/xscreensaver-13-trusted.diff, * patches/xscreensaver-14-pam_audit.diff: Remove some unneeded changes (like includes of Xt headers) and fix some warnings.
ChangeLog
patches/xscreensaver-06-gtk-lock.diff
patches/xscreensaver-09-xinput.diff
patches/xscreensaver-13-trusted.diff
patches/xscreensaver-14-pam_audit.diff
--- a/ChangeLog	Thu May 27 05:18:04 2010 +0000
+++ b/ChangeLog	Thu May 27 07:20:44 2010 +0000
@@ -1,3 +1,12 @@
+2010-05-27  Alan Coopersmith  <[email protected]>
+
+	* patches/xscreensaver-06-gtk-lock.diff,
+	* patches/xscreensaver-09-xinput.diff,
+	* patches/xscreensaver-13-trusted.diff,
+	* patches/xscreensaver-14-pam_audit.diff:
+	Remove some unneeded changes (like includes of Xt headers) and
+	fix some warnings.
+
 2010-05-27  Halton Huo  <[email protected]>
 
 	Remove gdm-19-set-console.diff and reorder since CR #6942816 and
--- a/patches/xscreensaver-06-gtk-lock.diff	Thu May 27 05:18:04 2010 +0000
+++ b/patches/xscreensaver-06-gtk-lock.diff	Thu May 27 07:20:44 2010 +0000
@@ -262,22 +262,11 @@
  	$(SAVER_UTIL_OBJS)
  test-passwd.o: XScreenSaver_ad.h
  
-diff --git xscreensaver-5.11/driver/dpms.c xscreensaver-5.11/driver/dpms.c
---- xscreensaver-5.11/driver/dpms.c
-+++ xscreensaver-5.11/driver/dpms.c
-@@ -50,6 +50,7 @@
- 
- #include <stdio.h>
- #include <X11/Xlib.h>
-+# include <X11/Intrinsic.h>
- 
- #ifdef HAVE_DPMS_EXTENSION   /* almost the whole file */
- 
 diff --git xscreensaver-5.11/driver/lock-Gtk.c xscreensaver-5.11/driver/lock-Gtk.c
 new file mode 100644
 --- /dev/null
 +++ xscreensaver-5.11/driver/lock-Gtk.c
-@@ -0,0 +1,1294 @@
+@@ -0,0 +1,1296 @@
 +/* lock-Gtk.c -- a GTK+ password dialog for xscreensaver
 + * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <[email protected]>
 + *
@@ -406,10 +395,11 @@
 +
 +  g_return_val_if_fail (s != NULL, -1);
 +
-+ do_write:
-+  len = write (FD_TO_PARENT, s, strlen (s));
-+  if (len < 0 && errno == EINTR)
-+    goto do_write;
++  do
++    {
++      len = write (FD_TO_PARENT, s, strlen (s));
++    }
++  while (len < 0 && errno == EINTR);
 +
 +  return len;
 +}
@@ -1137,10 +1127,11 @@
 +  if (cond & G_IO_HUP) /* daemon crashed/exited/was killed */
 +    gtk_main_quit();
 +
-+  read_line:
-+  status = g_io_channel_read_line (source, &str, NULL, NULL, NULL);
-+  if (status == G_IO_STATUS_AGAIN)
-+    goto read_line;
++  do
++    {
++      status = g_io_channel_read_line (source, &str, NULL, NULL, NULL);
++    }
++  while (status == G_IO_STATUS_AGAIN);
 +
 +/* debug only
 +  if (status == G_IO_STATUS_ERROR)
@@ -1707,7 +1698,7 @@
  static void undo_vp_motion (saver_info *si);
  static void finished_typing_passwd (saver_info *si, passwd_dialog_data *pw);
  static void cleanup_passwd_window (saver_info *si);
-@@ -179,6 +107,425 @@ static void restore_background (saver_info *si);
+@@ -179,6 +107,427 @@ static void restore_background (saver_info *si);
  
  extern void xss_authenticate(saver_info *si, Bool verbose_p);
  
@@ -1832,10 +1823,11 @@
 +	  fprintf (stderr, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
 +	}
 +
-+      write_msg:
-+      len = write (si->pw_data->stdin_fd, nlmsg, strlen (nlmsg));
-+      if (len < 0 && errno == EINTR)
-+	goto write_msg;
++      do
++	{
++	  len = write (si->pw_data->stdin_fd, nlmsg, strlen (nlmsg));
++	}
++      while (len < 0 && errno == EINTR);
 +
 +      free (nlmsg);
 +      return (1);
@@ -1848,10 +1840,11 @@
 +{
 +  int ret;
 +
-+  retry:
-+  ret = dup2 (fd1, fd2);
-+  if (ret < 0 && errno == EINTR)
-+    goto retry;
++  do
++    {
++      ret = dup2 (fd1, fd2);
++    }
++  while (ret < 0 && errno == EINTR);
 +
 +  return ret;
 +}
@@ -2133,7 +2126,7 @@
  static int
  new_passwd_window (saver_info *si)
  {
-@@ -413,7 +760,7 @@ new_passwd_window (saver_info *si)
+@@ -413,7 +762,7 @@ new_passwd_window (saver_info *si)
  /**
   * info_msg and prompt may be NULL.
   */
@@ -2142,7 +2135,7 @@
  make_passwd_window (saver_info *si,
  		    const char *info_msg,
  		    const char *prompt,
-@@ -427,6 +774,23 @@ make_passwd_window (saver_info *si,
+@@ -427,6 +776,23 @@ make_passwd_window (saver_info *si,
    Dimension max_string_width_px;
    saver_screen_info *ssi = &si->screens [mouse_screen (si)];
  
@@ -2166,7 +2159,7 @@
    cleanup_passwd_window (si);
  
    if (! ssi)   /* WTF?  Trying to prompt while no screens connected? */
-@@ -1033,7 +1397,7 @@ draw_button(Display *dpy,
+@@ -1033,7 +1399,7 @@ draw_button(Display *dpy,
  			shadow_width, shadow_light, shadow_dark);
  }
  
@@ -2175,7 +2168,7 @@
  update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
  {
    passwd_dialog_data *pw = si->pw_data;
-@@ -1043,8 +1407,20 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
+@@ -1043,8 +1409,20 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
    XRectangle rects[1];
  
    pw->ratio = ratio;
@@ -2197,7 +2190,7 @@
    gc1 = XCreateGC (si->dpy, si->passwd_dialog, GCForeground|GCFont, &gcv);
    gcv.foreground = pw->passwd_background;
    gc2 = XCreateGC (si->dpy, si->passwd_dialog, GCForeground, &gcv);
-@@ -1052,7 +1428,12 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
+@@ -1052,7 +1430,12 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
    if (printed_passwd)
      {
        char *s = strdup (printed_passwd);
@@ -2211,7 +2204,7 @@
        pw->passwd_string = s;
      }
  
-@@ -1215,9 +1596,15 @@ cleanup_passwd_window (saver_info *si)
+@@ -1215,9 +1598,15 @@ cleanup_passwd_window (saver_info *si)
  {
    passwd_dialog_data *pw;
  
@@ -2227,7 +2220,7 @@
    if (pw->info_label)
      {
        mlstring_free(pw->info_label);
-@@ -1231,7 +1618,10 @@ cleanup_passwd_window (saver_info *si)
+@@ -1231,7 +1620,10 @@ cleanup_passwd_window (saver_info *si)
      }
  
    memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
@@ -2239,7 +2232,7 @@
  
    if (pw->timer)
      {
-@@ -1246,20 +1636,38 @@ cleanup_passwd_window (saver_info *si)
+@@ -1246,20 +1638,38 @@ cleanup_passwd_window (saver_info *si)
      }
  }
  
@@ -2283,7 +2276,7 @@
    if (si->cached_passwd)
      {
        char *wipe = si->cached_passwd;
-@@ -1271,6 +1679,54 @@ destroy_passwd_window (saver_info *si)
+@@ -1271,6 +1681,54 @@ destroy_passwd_window (saver_info *si)
        si->cached_passwd = NULL;
      }
  
@@ -2338,7 +2331,7 @@
    move_mouse_grab (si, RootWindowOfScreen (ssi->screen),
                     ssi->cursor, ssi->number);
  
-@@ -1363,20 +1819,18 @@ destroy_passwd_window (saver_info *si)
+@@ -1363,20 +1821,18 @@ destroy_passwd_window (saver_info *si)
  
    if (cmap)
      XInstallColormap (si->dpy, cmap);
@@ -2369,7 +2362,7 @@
  }
  
  
-@@ -1580,6 +2034,18 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
+@@ -1580,6 +2036,18 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
  
    if (!pw) return;
  
@@ -2388,7 +2381,7 @@
    pw->ratio -= (1.0 / ((double) si->prefs.passwd_timeout / (double) tick));
    if (pw->ratio < 0)
      {
-@@ -1588,7 +2054,41 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
+@@ -1588,7 +2056,41 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
  	si->unlock_state = ul_time;
      }
  
@@ -2430,7 +2423,7 @@
  
    if (si->unlock_state == ul_read)
      pw->timer = XtAppAddTimeOut (si->app, tick, passwd_animate_timer,
-@@ -1770,18 +2270,62 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
+@@ -1770,18 +2272,62 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
  }
  
  
@@ -2495,7 +2488,7 @@
        if (event.xany.window == si->passwd_dialog && event.xany.type == Expose)
  	draw_passwd_window (si);
        else if (event.xany.type == KeyPress)
-@@ -1797,8 +2341,143 @@ passwd_event_loop (saver_info *si)
+@@ -1797,8 +2343,143 @@ passwd_event_loop (saver_info *si)
  	  if (si->pw_data->login_button_p)
  	    handle_login_button (si, &event);
  	}
@@ -2640,7 +2633,7 @@
      }
  
    switch (si->unlock_state)
-@@ -1822,9 +2501,16 @@ passwd_event_loop (saver_info *si)
+@@ -1822,9 +2503,16 @@ passwd_event_loop (saver_info *si)
  
    if (msg)
      {
@@ -2659,7 +2652,7 @@
  
        /* Swallow all pending KeyPress/KeyRelease events. */
        {
-@@ -1836,7 +2522,7 @@ passwd_event_loop (saver_info *si)
+@@ -1836,7 +2524,7 @@ passwd_event_loop (saver_info *si)
  }
  
  
@@ -2668,7 +2661,7 @@
  handle_typeahead (saver_info *si)
  {
    passwd_dialog_data *pw = si->pw_data;
-@@ -1855,7 +2541,13 @@ handle_typeahead (saver_info *si)
+@@ -1855,7 +2543,13 @@ handle_typeahead (saver_info *si)
  
    memset (si->unlock_typeahead, '*', strlen(si->unlock_typeahead));
    si->unlock_typeahead[i] = 0;
@@ -2705,7 +2698,7 @@
 diff --git xscreensaver-5.11/driver/passwd-pam.c xscreensaver-5.11/driver/passwd-pam.c
 --- xscreensaver-5.11/driver/passwd-pam.c
 +++ xscreensaver-5.11/driver/passwd-pam.c
-@@ -39,11 +39,17 @@
+@@ -39,10 +39,16 @@
  #ifndef NO_LOCKING  /* whole file */
  
  #include <stdlib.h>
@@ -2715,15 +2708,13 @@
  # include <unistd.h>
  #endif
  
--extern char *blurb(void);
 +#ifdef __sun
 +# include <deflt.h>
 +#endif
 +
-+/*extern char *blurb(void);*/
+ extern char *blurb(void);
  
  
- #include <stdio.h>
 @@ -58,8 +64,16 @@ extern char *blurb(void);
  
  #include <sys/stat.h>
@@ -3248,15 +3239,7 @@
 diff --git xscreensaver-5.11/driver/setuid.c xscreensaver-5.11/driver/setuid.c
 --- xscreensaver-5.11/driver/setuid.c
 +++ xscreensaver-5.11/driver/setuid.c
-@@ -15,6 +15,7 @@
- #endif
- 
- #include <X11/Xlib.h>		/* not used for much... */
-+#include <X11/Intrinsic.h>		/* not used for much... */
- 
- /* This file doesn't need the Xt headers, so stub these types out... */
- #undef XtPointer
-@@ -145,7 +146,10 @@ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
+@@ -145,7 +145,10 @@ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
      gid_errno = errno ? errno : -1;
  
    errno = 0;
@@ -3478,15 +3461,7 @@
 diff --git xscreensaver-5.11/driver/windows.c xscreensaver-5.11/driver/windows.c
 --- xscreensaver-5.11/driver/windows.c
 +++ xscreensaver-5.11/driver/windows.c
-@@ -35,6 +35,7 @@
- #include <X11/Xutil.h>		/* for XSetClassHint() */
- #include <X11/Xatom.h>
- #include <X11/Xos.h>		/* for time() */
-+#include <X11/Intrinsic.h>
- #include <signal.h>		/* for the signal names */
- #include <time.h>
- #include <sys/time.h>
-@@ -1212,6 +1213,7 @@ initialize_screensaver_window_1 (saver_screen_info *ssi)
+@@ -1212,6 +1212,7 @@ initialize_screensaver_window_1 (saver_screen_info *ssi)
     */
    attrs.event_mask = (KeyPressMask | KeyReleaseMask |
  		      ButtonPressMask | ButtonReleaseMask |
@@ -3494,7 +3469,7 @@
  		      PointerMotionMask);
  
    attrs.backing_store = NotUseful;
-@@ -1483,6 +1485,9 @@ raise_window (saver_info *si,
+@@ -1483,6 +1484,9 @@ raise_window (saver_info *si,
    saver_preferences *p = &si->prefs;
    int i;
  
@@ -3504,7 +3479,7 @@
    if (si->demoing_p)
      inhibit_fade = True;
  
-@@ -1697,6 +1702,9 @@ unblank_screen (saver_info *si)
+@@ -1697,6 +1701,9 @@ unblank_screen (saver_info *si)
    Bool unfade_p = (si->fading_possible_p && p->unfade_p);
    int i;
  
@@ -3767,17 +3742,6 @@
  	  if (si->lock_id)	/* we're doing it now, so lose the timeout */
  	    {
  	      XtRemoveTimeOut (si->lock_id);
-diff --git xscreensaver-5.11/driver/xset.c xscreensaver-5.11/driver/xset.c
---- xscreensaver-5.11/driver/xset.c
-+++ xscreensaver-5.11/driver/xset.c
-@@ -19,6 +19,7 @@
- #include <X11/Xutil.h>
- #include <X11/Xatom.h>
- #include <X11/Xos.h>
-+#include <X11/Intrinsic.h>
- 
- /* This file doesn't need the Xt headers, so stub these types out... */
- #undef XtPointer
 diff --git xscreensaver-5.11/driver/types.h xscreensaver-5.11/driver/types.h
 --- xscreensaver-5.11/driver/types.h
 +++ xscreensaver-5.11/driver/types.h
--- a/patches/xscreensaver-09-xinput.diff	Thu May 27 05:18:04 2010 +0000
+++ b/patches/xscreensaver-09-xinput.diff	Thu May 27 07:20:44 2010 +0000
@@ -173,7 +173,7 @@
 +	      fprintf (stderr, "BUG ext event lock_p  is false\n");
 +*/
 +
-+	    dispatch_event (si, &event);
++	    dispatch_event (si, &event.x_event);
 +	    if (si->demoing_p &&
 +		event.x_event.type == valuator_type ||
 +		event.x_event.type == release_type )
--- a/patches/xscreensaver-13-trusted.diff	Thu May 27 05:18:04 2010 +0000
+++ b/patches/xscreensaver-13-trusted.diff	Thu May 27 07:20:44 2010 +0000
@@ -91,24 +91,16 @@
  
 +#include <user_attr.h>
 +
++#include "trusted-utils.h"
 +void XTSOLgetWorkstationOwner(Display *, uid_t *);
-+char *getusrattrval(userattr_t *, char *);
-+gboolean tsol_is_multi_label_session (void);
 +static gboolean tsol_hack_initialized = False;
 +static gboolean tsol_multi_label_session = False;
++extern Display *global_dpy;
 +
  #ifdef HAVE_GTK2
  enum {
    COL_ENABLED,
-@@ -153,6 +161,7 @@ static void hack_subproc_environment (Window preview_window_id, Bool debug_p);
- #undef countof
- #define countof(x) (sizeof((x))/sizeof((*x)))
- 
-+extern Display *global_dpy;
- 
- /* You might think that to read an array of 32-bit quantities out of a
-    server-side property, you would pass an array of 32-bit data quantities
-@@ -916,6 +925,9 @@ doc_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
+@@ -916,6 +924,9 @@ doc_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
      " 'export SHELL=\"/dev/null\"; "
      " /usr/bin/man xscreensaver || /usr/bin/read foo' &";
  
@@ -118,7 +110,7 @@
    if (system (sun_help_command) < 0)
      fprintf (stderr, "%s: fork error\n", blurb());
  
-@@ -2889,9 +2901,69 @@ populate_prefs_page (state *s)
+@@ -2889,9 +2900,69 @@ populate_prefs_page (state *s)
      SENSITIZE ("pwd_spinbutton", p->pwd_p);
      SENSITIZE ("pwd_mlabel",     p->pwd_p);
  
@@ -188,7 +180,7 @@
  
      /* DPMS
       */
-@@ -2921,6 +2993,7 @@ populate_prefs_page (state *s)
+@@ -2921,6 +2992,7 @@ populate_prefs_page (state *s)
  
  # undef SENSITIZE
    }
@@ -196,7 +188,7 @@
  }
  
  
-@@ -3006,6 +3079,9 @@ sensitize_menu_items (state *s, Bool force_p)
+@@ -3006,6 +3078,9 @@ sensitize_menu_items (state *s, Bool force_p)
  
    for (i = 0; i < countof(names); i++)
      {
@@ -206,7 +198,7 @@
        GtkWidget *w = name_to_widget (s, names[i]);
        gtk_widget_set_sensitive (GTK_WIDGET(w), running_p);
      }
-@@ -4984,7 +5060,7 @@ main (int argc, char **argv)
+@@ -4984,7 +5059,7 @@ main (int argc, char **argv)
                                       applicationShellWidgetClass,
                                       dpy, 0, 0);
  
@@ -226,7 +218,7 @@
  
  /* AT-enabled */
  void write_null(int n);
-@@ -173,7 +174,10 @@ load_unlock_logo_image(void)
+@@ -174,7 +175,10 @@ load_unlock_logo_image(void)
    const char *logofile;
    struct stat statbuf;
  
@@ -241,41 +233,26 @@
 diff --git xscreensaver-5.11/driver/prefs.c xscreensaver-5.11/driver/prefs.c
 --- xscreensaver-5.11/driver/prefs.c
 +++ xscreensaver-5.11/driver/prefs.c
-@@ -37,6 +37,7 @@
+@@ -37,6 +37,8 @@
  # include "vms-pwd.h"
  #endif /* VMS */
  
++#include "trusted-utils.h"
 +#include <user_attr.h>
  
  /* This file doesn't need the Xt headers, so stub these types out... */
  #undef XtPointer
-@@ -66,6 +67,7 @@
- 
+@@ -67,6 +69,9 @@
  #include "prefs.h"
  #include "resources.h"
+ 
 +#include "trusted-utils.h"
- 
++Display *global_dpy;
++
  /* don't use realpath() on fedora system */
  #ifdef _FORTIFY_SOURCE
-@@ -77,6 +79,7 @@ extern char *progname;
- extern char *progclass;
- extern const char *blurb (void);
- 
-+Display *global_dpy;
- 
- 
- static void get_screenhacks (Display *, saver_preferences *);
-@@ -1011,6 +1014,9 @@ free_screenhack_list (screenhack **list, int count)
-   free (list);
- }
- 
-+void XTSOLgetWorkstationOwner(Display *, uid_t *);
-+char *getusrattrval(userattr_t *, char *);
-+int tsol_is_multi_label_session (void);
- 
- 
- /* Populate `saver_preferences' with the contents of the resource database.
-@@ -1051,7 +1057,10 @@ load_init_file (Display *dpy, saver_preferences *p)
+ #undef HAVE_REALPATH
+@@ -1051,7 +1056,10 @@ load_init_file (Display *dpy, saver_preferences *p)
    p->xsync_p	    = get_boolean_resource (dpy, "synchronous", "Synchronous");
    p->verbose_p	    = get_boolean_resource (dpy, "verbose", "Boolean");
    p->timestamp_p    = get_boolean_resource (dpy, "timestamp", "Boolean");
@@ -287,7 +264,7 @@
    p->fade_p	    = get_boolean_resource (dpy, "fade", "Boolean");
    p->unfade_p	    = get_boolean_resource (dpy, "unfade", "Boolean");
    p->fade_seconds   = 1000 * get_seconds_resource (dpy, "fadeSeconds", "Time");
-@@ -1075,6 +1084,27 @@ load_init_file (Display *dpy, saver_preferences *p)
+@@ -1075,6 +1083,27 @@ load_init_file (Display *dpy, saver_preferences *p)
    p->lock_timeout    = 1000 * get_minutes_resource (dpy, "lockTimeout", "Time");
    p->cycle           = 1000 * get_minutes_resource (dpy, "cycle", "Time");
    p->passwd_timeout  = 1000 * get_seconds_resource (dpy, "passwdTimeout", "Time");
@@ -315,18 +292,6 @@
    /* *bugid 5077981 pwd timeout */
    p->pwd_p	    = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
    p->pointer_timeout = 1000 * get_seconds_resource (dpy, "pointerPollTime", "Time");
-diff --git xscreensaver-5.11/driver/types.h xscreensaver-5.11/driver/types.h
---- xscreensaver-5.11/driver/types.h
-+++ xscreensaver-5.11/driver/types.h
-@@ -105,6 +105,8 @@ struct saver_preferences {
-   Time initial_delay;		/* how long to sleep after launch */
-   Time splash_duration;		/* how long the splash screen stays up */
-   Time timeout;			/* how much idle time before activation */
-+  int lock_cmd;                 /* tsol only  - whether to lock or logout */
-+
-   Time lock_timeout;		/* how long after activation locking starts */
-   Time cycle;			/* how long each hack should run */
-   Time passwd_timeout;		/* how much time before pw dialog goes down */
 diff --git xscreensaver-5.11/driver/subprocs.c xscreensaver-5.11/driver/subprocs.c
 --- xscreensaver-5.11/driver/subprocs.c
 +++ xscreensaver-5.11/driver/subprocs.c
@@ -587,6 +552,18 @@
 +	LOGOUT_CMD
 +};
 +#endif /* TRUSTED_XSCREENSAVER_H */
+diff --git xscreensaver-5.11/driver/types.h xscreensaver-5.11/driver/types.h
+--- xscreensaver-5.11/driver/types.h
++++ xscreensaver-5.11/driver/types.h
+@@ -105,6 +105,8 @@ struct saver_preferences {
+   Time initial_delay;		/* how long to sleep after launch */
+   Time splash_duration;		/* how long the splash screen stays up */
+   Time timeout;			/* how much idle time before activation */
++  int lock_cmd;                 /* tsol only  - whether to lock or logout */
++
+   Time lock_timeout;		/* how long after activation locking starts */
+   Time cycle;			/* how long each hack should run */
+   Time passwd_timeout;		/* how much time before pw dialog goes down */
 diff --git xscreensaver-5.11/driver/xscreensaver-getimage.c xscreensaver-5.11/driver/xscreensaver-getimage.c
 --- xscreensaver-5.11/driver/xscreensaver-getimage.c
 +++ xscreensaver-5.11/driver/xscreensaver-getimage.c
@@ -618,15 +595,17 @@
  #include <X11/Xlib.h>
  
  #include <locale.h>
-@@ -240,6 +241,7 @@ passwd_dialog_data *ptr_mygtkpwd = &mygtkpwd;
- char *progname = 0;
- char *progclass = 0;
- XrmDatabase db = 0;
+@@ -224,6 +225,9 @@
+ #include "usleep.h"
+ #include "auth.h"
+ 
++#include "trusted-utils.h"
 +extern Display *global_dpy;
- 
++
+ saver_info *global_si_kludge = 0;	/* I hate C so much... */
  
- static Atom XA_SCREENSAVER_RESPONSE;
-@@ -1447,6 +1449,9 @@ main (int argc, char **argv)
+ /* Globals */
+@@ -1447,6 +1451,9 @@ main (int argc, char **argv)
    struct passwd *spasswd;
    int i;
  
@@ -636,7 +615,7 @@
  #ifdef ENABLE_NLS
    if (!setlocale (LC_ALL, ""))
      fprintf (stderr, "locale not supported by C library\n");
-@@ -1489,6 +1494,7 @@ main (int argc, char **argv)
+@@ -1489,6 +1496,7 @@ main (int argc, char **argv)
  # endif /* !NO_LOCKING */
  
    shell = connect_to_server (si, &argc, argv);
--- a/patches/xscreensaver-14-pam_audit.diff	Thu May 27 05:18:04 2010 +0000
+++ b/patches/xscreensaver-14-pam_audit.diff	Thu May 27 07:20:44 2010 +0000
@@ -48,7 +48,7 @@
 +# include <bsm/adt_event.h>
  #endif
  
- /*extern char *blurb(void);*/
+ extern char *blurb(void);
 @@ -88,6 +90,9 @@ extern void unblock_sigchld (void);
  #undef countof
  #define countof(x) (sizeof((x))/sizeof(*(x)))