rpms/gdm/F-7 gdm-2.16.0-wtmp.patch,1.3,1.4 gdm.spec,1.256,1.257

Ray Strode (rstrode) fedora-extras-commits at redhat.com
Tue Aug 21 21:16:12 UTC 2007


Author: rstrode

Update of /cvs/pkgs/rpms/gdm/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28894

Modified Files:
	gdm-2.16.0-wtmp.patch gdm.spec 
Log Message:
- write utmp entry at login (bug 247987)


gdm-2.16.0-wtmp.patch:

Index: gdm-2.16.0-wtmp.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdm/F-7/gdm-2.16.0-wtmp.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gdm-2.16.0-wtmp.patch	28 Feb 2007 13:39:01 -0000	1.3
+++ gdm-2.16.0-wtmp.patch	21 Aug 2007 21:15:38 -0000	1.4
@@ -1,98 +1,31 @@
---- gdm-2.16.0/config/PreSession.in.wtmp	2006-04-26 21:06:05.000000000 -0400
-+++ gdm-2.16.0/config/PreSession.in	2006-10-15 20:05:45.000000000 -0400
-@@ -68,17 +68,4 @@ if [ "x$XSETROOT" != "x" ] ; then
+diff -up gdm-2.18.4/config/PreSession.in.wtmp gdm-2.18.4/config/PreSession.in
+--- gdm-2.18.4/config/PreSession.in.wtmp	2007-07-30 16:06:57.000000000 -0400
++++ gdm-2.18.4/config/PreSession.in	2007-08-21 17:11:19.000000000 -0400
+@@ -68,17 +68,15 @@ if [ "x$XSETROOT" != "x" ] ; then
  	"$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
  fi
  
 -
--SESSREG=`gdmwhich sessreg`
--if [ "x$SESSREG" != "x" ] ; then
--	# some output for easy debugging
+ SESSREG=`gdmwhich sessreg`
+ if [ "x$SESSREG" != "x" ] ; then
+ 	# some output for easy debugging
 -	echo "$0: Registering your session with wtmp and utmp"
 -	echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY\" \"$USER\""
--
++	echo "$0: Registering your session with utmp"
++	echo "$0: running: $SESSREG -a -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY\" \"$USER\""
+ 
 -	exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER"
--	# this is not reached
--fi
--
++	exec "$SESSREG" -a -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER"
+ 	# this is not reached
+ fi
+ 
 -# some output for easy debugging
 -echo "$0: could not find the sessreg utility, cannot update wtmp and utmp"
++echo "$0: could not find the sessreg utility, cannot update utmp"
  exit 0
---- gdm-2.16.0/daemon/slave.c.wtmp	2006-10-15 20:05:45.000000000 -0400
-+++ gdm-2.16.0/daemon/slave.c	2006-10-15 20:05:45.000000000 -0400
-@@ -4315,6 +4315,14 @@ gdm_slave_session_start (void)
-     g_free (language);
-     g_free (gnome_session);
- 
-+    gdm_verify_write_record (d,
-+			     GDM_VERIFY_RECORD_TYPE_LOGIN,
-+			     pwent->pw_name,
-+			     d->name, 
-+			     !d->attached? d->hostname : NULL,
-+			     pid);
-+
-+
-     gdm_slave_send_num (GDM_SOP_SESSPID, pid);
- 
-     gdm_sigchld_block_push ();
-@@ -4363,6 +4371,17 @@ gdm_slave_session_start (void)
- 				uid, gid);
-     }
- 
-+    if ((pid != 0) && (d->last_sess_status != -1)) {
-+	    gdm_debug ("session '%d' exited with status '%d', recording logout",
-+		       pid, d->last_sess_status);
-+	    gdm_verify_write_record (d,
-+				     GDM_VERIFY_RECORD_TYPE_LOGOUT,
-+				     pwent->pw_name,
-+				     d->name, 
-+				     !d->attached? d->hostname : NULL,
-+				     pid);
-+    }
-+
-     gdm_slave_session_stop (pid != 0 /* run_post_session */,
- 			    FALSE /* no_shutdown_check */);
- 
-@@ -4721,7 +4740,7 @@ gdm_slave_child_handler (int sig)
- 		}
- 	} else if (pid != 0 && pid == d->sesspid) {
- 		d->sesspid = 0;
--		if (WIFEXITED (status))
-+		if (WIFEXITED (status)) 
- 			d->last_sess_status = WEXITSTATUS (status);
- 		else
- 			d->last_sess_status = -1;
---- gdm-2.16.0/daemon/verify.h.wtmp	2005-11-03 19:51:21.000000000 -0500
-+++ gdm-2.16.0/daemon/verify.h	2006-10-15 20:05:45.000000000 -0400
-@@ -21,6 +21,12 @@
- 
- #include "gdm.h"
- 
-+typedef enum {
-+	GDM_VERIFY_RECORD_TYPE_LOGIN,
-+	GDM_VERIFY_RECORD_TYPE_LOGOUT,
-+	GDM_VERIFY_RECORD_TYPE_FAILED_ATTEMPT
-+} GdmVerifyRecordType;
-+
- /* If username is NULL, we ask, if local is FALSE, don't start
-  * the timed login timer */
- gchar *gdm_verify_user    (GdmDisplay *d,
-@@ -30,6 +36,13 @@ gchar *gdm_verify_user    (GdmDisplay *d
- void   gdm_verify_cleanup (GdmDisplay *d);
- void   gdm_verify_check   (void);
- void   gdm_verify_select_user (const char *user);
-+void   gdm_verify_write_record (GdmDisplay *d,
-+				GdmVerifyRecordType record_type,
-+				const gchar *username,
-+				const gchar *console_name,
-+				const gchar *host_name,
-+				GPid  pid);
-+
- /* used in pam */
- gboolean gdm_verify_setup_env (GdmDisplay *d);
- gboolean gdm_verify_setup_user (GdmDisplay *d,
---- gdm-2.16.0/daemon/verify-pam.c.wtmp	2006-10-15 20:05:45.000000000 -0400
-+++ gdm-2.16.0/daemon/verify-pam.c	2006-10-15 20:08:48.000000000 -0400
+diff -up gdm-2.18.4/daemon/verify-pam.c.wtmp gdm-2.18.4/daemon/verify-pam.c
+--- gdm-2.18.4/daemon/verify-pam.c.wtmp	2007-08-21 17:10:07.000000000 -0400
++++ gdm-2.18.4/daemon/verify-pam.c	2007-08-21 17:10:07.000000000 -0400
 @@ -29,6 +29,7 @@
  #ifdef sun
  #include <fcntl.h>
@@ -116,7 +49,7 @@
  /* Evil, but this way these things are passed to the child session */
  static pam_handle_t *pamh = NULL;
  
-@@ -417,6 +426,125 @@ gdm_verify_select_user (const char *user
+@@ -422,6 +431,125 @@ gdm_verify_select_user (const char *user
  		selected_user = g_strdup (user);
  }
  
@@ -242,7 +175,7 @@
  static const char *
  perhaps_translate_message (const char *msg)
  {
-@@ -1173,6 +1301,12 @@ authenticate_again:
+@@ -1232,6 +1360,12 @@ authenticate_again:
       * message from the PAM subsystem */
      if ( ! error_msg_given &&
  	gdm_slave_action_pending ()) {
@@ -253,5 +186,80 @@
 +				     getpid ());
 +
  	    /* I'm not sure yet if I should display this message for any other issues - heeten */
+ 	    /* at least AUTHINFO_UNAVAIL -- it's what user unknown is! */
  	    if (pamerr == PAM_AUTH_ERR ||
- 		pamerr == PAM_USER_UNKNOWN) {
+diff -up gdm-2.18.4/daemon/slave.c.wtmp gdm-2.18.4/daemon/slave.c
+--- gdm-2.18.4/daemon/slave.c.wtmp	2007-08-21 17:10:07.000000000 -0400
++++ gdm-2.18.4/daemon/slave.c	2007-08-21 17:10:07.000000000 -0400
+@@ -4446,6 +4446,14 @@ gdm_slave_session_start (void)
+     g_free (language);
+     g_free (gnome_session);
+ 
++    gdm_verify_write_record (d,
++			     GDM_VERIFY_RECORD_TYPE_LOGIN,
++			     pwent->pw_name,
++			     d->name, 
++			     !d->attached? d->hostname : NULL,
++			     pid);
++
++
+     gdm_slave_send_num (GDM_SOP_SESSPID, pid);
+ 
+     gdm_sigchld_block_push ();
+@@ -4508,6 +4516,17 @@ gdm_slave_session_start (void)
+     }
+ #endif
+ 
++    if ((pid != 0) && (d->last_sess_status != -1)) {
++	    gdm_debug ("session '%d' exited with status '%d', recording logout",
++		       pid, d->last_sess_status);
++	    gdm_verify_write_record (d,
++				     GDM_VERIFY_RECORD_TYPE_LOGOUT,
++				     pwent->pw_name,
++				     d->name, 
++				     !d->attached? d->hostname : NULL,
++				     pid);
++    }
++
+     gdm_slave_session_stop (pid != 0 /* run_post_session */,
+ 			    FALSE /* no_shutdown_check */);
+ 
+@@ -4866,7 +4885,7 @@ gdm_slave_child_handler (int sig)
+ 		}
+ 	} else if (pid != 0 && pid == d->sesspid) {
+ 		d->sesspid = 0;
+-		if (WIFEXITED (status))
++		if (WIFEXITED (status)) 
+ 			d->last_sess_status = WEXITSTATUS (status);
+ 		else
+ 			d->last_sess_status = -1;
+diff -up gdm-2.18.4/daemon/verify.h.wtmp gdm-2.18.4/daemon/verify.h
+--- gdm-2.18.4/daemon/verify.h.wtmp	2007-07-30 16:06:57.000000000 -0400
++++ gdm-2.18.4/daemon/verify.h	2007-08-21 17:10:07.000000000 -0400
+@@ -21,6 +21,12 @@
+ 
+ #include "gdm.h"
+ 
++typedef enum {
++	GDM_VERIFY_RECORD_TYPE_LOGIN,
++	GDM_VERIFY_RECORD_TYPE_LOGOUT,
++	GDM_VERIFY_RECORD_TYPE_FAILED_ATTEMPT
++} GdmVerifyRecordType;
++
+ /* If username is NULL, we ask, if local is FALSE, don't start
+  * the timed login timer */
+ gchar *gdm_verify_user    (GdmDisplay *d,
+@@ -31,6 +37,13 @@ gchar *gdm_verify_user    (GdmDisplay *d
+ void   gdm_verify_cleanup (GdmDisplay *d);
+ void   gdm_verify_check   (void);
+ void   gdm_verify_select_user (const char *user);
++void   gdm_verify_write_record (GdmDisplay *d,
++				GdmVerifyRecordType record_type,
++				const gchar *username,
++				const gchar *console_name,
++				const gchar *host_name,
++				GPid  pid);
++
+ /* used in pam */
+ gboolean gdm_verify_setup_env (GdmDisplay *d);
+ gboolean gdm_verify_setup_user (GdmDisplay *d,


Index: gdm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdm/F-7/gdm.spec,v
retrieving revision 1.256
retrieving revision 1.257
diff -u -r1.256 -r1.257
--- gdm.spec	19 Aug 2007 22:41:05 -0000	1.256
+++ gdm.spec	21 Aug 2007 21:15:39 -0000	1.257
@@ -17,7 +17,7 @@
 Summary: The GNOME Display Manager
 Name: gdm
 Version: 2.18.4
-Release: 2%{?dist}
+Release: 3%{?dist}
 Epoch: 1
 License: LGPL/GPL
 Group: User Interface/X
@@ -394,6 +394,9 @@
 %{_datadir}/pixmaps/faces/extras/*.jpg
 
 %changelog
+* Tue Aug 21 2007 Ray Strode <rstrode at redhat.com> - 1:2.18.4-3
+- write utmp entry at login (bug 247987)
+
 * Fri Aug 17 2007 Ray Strode <rstrode at redhat.com> - 1:2.18.4-2
 - Provide fix to upstream bug 457998 for Hans de Goede to
   test




More information about the fedora-extras-commits mailing list