]> git.pld-linux.org Git - packages/gnome-keyring.git/commitdiff
- rel 2 auto/th/gnome-keyring-2_28_0-2
authorJan Rękorajski <baggins@pld-linux.org>
Sat, 7 Nov 2009 23:12:49 +0000 (23:12 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- fix https://bugzilla.gnome.org/show_bug.cgi?id=595698
  gnome-keyring-daemon doesn't exit properly when the session ends

Changed files:
    gnome-keyring-bug-595698.patch -> 1.1
    gnome-keyring.spec -> 1.67

gnome-keyring-bug-595698.patch [new file with mode: 0644]
gnome-keyring.spec

diff --git a/gnome-keyring-bug-595698.patch b/gnome-keyring-bug-595698.patch
new file mode 100644 (file)
index 0000000..edbd5ba
--- /dev/null
@@ -0,0 +1,59 @@
+diff --git a/daemon/gkr-daemon.c b/daemon/gkr-daemon.c
+index c63081e..ea85edf 100644
+--- a/daemon/gkr-daemon.c
++++ b/daemon/gkr-daemon.c
+@@ -43,6 +43,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
++#include <pthread.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -90,6 +91,8 @@ static gboolean run_for_start = FALSE;
+ static gchar* run_components = NULL;
+ static gchar* login_password = NULL;
+ static gboolean initialization_completed = FALSE;
++static gboolean sig_thread_valid = FALSE;
++static pthread_t sig_thread;
+ static GOptionEntry option_entries[] = {
+       { "foreground", 'f', 0, G_OPTION_ARG_NONE, &run_foreground, 
+@@ -370,7 +373,7 @@ signal_thread (gpointer user_data)
+ static void
+ setup_signal_handling (GMainLoop *loop)
+ {
+-      GError *error = NULL;
++      int res;
+       /*
+        * Block these signals for this thread, and any threads
+@@ -387,11 +390,12 @@ setup_signal_handling (GMainLoop *loop)
+       sigaddset (&signal_set, SIGTERM);
+       pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
+-      g_thread_create (signal_thread, loop, FALSE, &error);
+-      if (error != NULL) {
++      res = pthread_create (&sig_thread, NULL, signal_thread, loop);
++      if (res == 0) {
++              sig_thread_valid = TRUE;
++      } else {
+               g_warning ("couldn't startup thread for signal handling: %s",
+-                         error && error->message ? error->message : "");
+-              g_clear_error (&error);
++                         g_strerror (res));
+       }
+ }
+@@ -404,7 +408,10 @@ gkr_daemon_quit (void)
+        * starts the shutdown process.
+        */
+-      raise (SIGTERM);
++      if (sig_thread_valid)
++              pthread_kill (sig_thread, SIGTERM);
++      else
++              raise (SIGTERM);
+ }
+ static void
index 73ac209aceda05f7349f751e70e6cc1b39fcebad..169906d7bd3e3e6fce3f57deddbdab33f420d4e2 100644 (file)
@@ -2,11 +2,12 @@ Summary:      Keep passwords and other user's secrets
 Summary(pl.UTF-8):     Przechowywanie haseł i innych tajnych danych użytkowników
 Name:          gnome-keyring
 Version:       2.28.0
-Release:       1
+Release:       2
 License:       LGPL v2+ (library), GPL v2+ (programs)
 Group:         X11/Applications
 Source0:       http://ftp.gnome.org/pub/GNOME/sources/gnome-keyring/2.28/%{name}-%{version}.tar.bz2
 # Source0-md5: 07fa253d8506c22640d74eb4fc90a092
+Patch0:                %{name}-bug-595698.patch
 URL:           http://live.gnome.org/GnomeKeyring
 BuildRequires: GConf2-devel >= 2.24.0
 BuildRequires: autoconf
@@ -120,6 +121,7 @@ w czasie logowania użytkownika i uruchamiania demona keyring.
 
 %prep
 %setup -q
+%patch0 -p1
 
 rm -f po/ca@valencia.po
 sed -i -e 's/ca@valencia//' po/LINGUAS
This page took 0.069547 seconds and 4 git commands to generate.