File gnome-keyring-check-session.patch of Package gnome-keyring

Index: pam/gkr-pam-module.c
===================================================================
--- pam/gkr-pam-module.c.orig
+++ pam/gkr-pam-module.c
@@ -77,9 +77,20 @@ enum {
 #define PAM_AUTHTOK_RECOVER_ERR PAM_AUTHTOK_RECOVERY_ERR
 #endif
 
+static const char* get_any_env (pam_handle_t *ph, const char *name);
+
 /* -----------------------------------------------------------------------------
  * HELPERS 
  */
+
+/* we don't want to start the keyring if the session is not GNOME */
+static int
+starting_gnome (pam_handle_t *ph)
+{
+	const char *session = get_any_env (ph, "DESKTOP_SESSION");
+
+	return (session && strcmp (session, "gnome") == 0);
+}
  
 static void
 close_safe (int fd)
@@ -787,7 +798,7 @@ pam_sm_authenticate (pam_handle_t *ph, i
 	started_daemon = 0;
 
 	/* Should we start the daemon? */
-	if (args & ARG_AUTO_START) {
+	if ((args & ARG_AUTO_START) && starting_gnome (ph)) {
 		ret = start_daemon_if_necessary (ph, pwd, password, &started_daemon);
 		if (ret != PAM_SUCCESS)
 			return ret;
@@ -854,7 +865,7 @@ pam_sm_open_session (pam_handle_t *ph, i
 	started_daemon = 0;
 	
 	/* Should we start the daemon? */
-	if (args & ARG_AUTO_START) {
+	if ((args & ARG_AUTO_START) && starting_gnome (ph)) {
 		ret = start_daemon_if_necessary (ph, pwd, password, &started_daemon);
 		if (ret != PAM_SUCCESS)
 			return ret;
openSUSE Build Service is sponsored by