diff --git a/gpg2-fix-rtsignals.patch b/gpg2-fix-rtsignals.patch new file mode 100644 index 0000000..ecf773c --- /dev/null +++ b/gpg2-fix-rtsignals.patch @@ -0,0 +1,44 @@ +# bnc#481463 +# +# Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499569 +# agent/gpg-agent.c: Deinit the threading library before exec'ing +# the command to run in --daemon mode. And because that still doesn't +# restore the sigprocmask, do that manually. Closes: #499569 +# +Index: gnupg-2.0.11/agent/gpg-agent.c +=================================================================== +--- gnupg-2.0.11.orig/agent/gpg-agent.c 2009-03-18 13:35:59.000000000 +0100 ++++ gnupg-2.0.11/agent/gpg-agent.c 2009-03-18 13:43:46.000000000 +0100 +@@ -528,6 +528,8 @@ + int gpgconf_list = 0; + gpg_error_t err; + const char *env_file_name = NULL; ++ sigset_t initial_sigs; ++ + + + set_strusage (my_strusage); +@@ -537,6 +539,8 @@ + somewhere after the option parsing */ + log_set_prefix ("gpg-agent", JNLIB_LOG_WITH_PREFIX|JNLIB_LOG_WITH_PID); + ++ sigprocmask(SIG_SETMASK, NULL, &initial_sigs); ++ + /* Make sure that our subsystems are ready. */ + i18n_init (); + init_common_subsystems (); +@@ -1053,6 +1057,14 @@ + kill (pid, SIGTERM ); + exit (1); + } ++ if (! pth_kill()) ++ { ++ log_error ("failed to clean up threading"); ++ kill (pid, SIGTERM ); ++ exit (1); ++ } ++ sigprocmask(SIG_SETMASK, &initial_sigs, NULL); ++ + execvp (argv[0], argv); + log_error ("failed to run the command: %s\n", strerror (errno)); + kill (pid, SIGTERM); diff --git a/gpg2.changes b/gpg2.changes index f5b1f75..cce0538 100644 --- a/gpg2.changes +++ b/gpg2.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Mar 18 13:51:30 CET 2009 - puzel@suse.cz + +- add gpg2-fix-rtsignals.patch (bnc#481463) + ------------------------------------------------------------------- Thu Mar 5 13:39:42 CET 2009 - puzel@suse.cz diff --git a/gpg2.spec b/gpg2.spec index d9104a0..1e72d48 100644 --- a/gpg2.spec +++ b/gpg2.spec @@ -20,7 +20,7 @@ Name: gpg2 Version: 2.0.11 -Release: 1 +Release: 2 BuildRequires: expect fdupes pth BuildRequires: libgpg-error-devel >= 1.4 BuildRequires: libgcrypt-devel >= 1.4.0 @@ -49,6 +49,7 @@ Patch7: gnupg-2.0.4-install_tools.diff Patch9: gnupg-2.0.4-default-tty.diff Patch10: gnupg-2.0.9-RSA_ES.patch Patch11: gnupg-2.0.9-langinfo.patch +Patch12: gpg2-fix-rtsignals.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -72,6 +73,7 @@ Authors: %patch9 %patch10 -p1 %patch11 +%patch12 -p1 %build # Required for patch7: @@ -153,6 +155,8 @@ $RPM_BUILD_ROOT/usr/bin/gpgsplit -v -p secsplit- --secret-to-public --uncompress %config(noreplace) %{_sysconfdir}/gnupg/gpgconf.conf %changelog +* Wed Mar 18 2009 puzel@suse.cz +- add gpg2-fix-rtsignals.patch (bnc#481463) * Thu Mar 05 2009 puzel@suse.cz - update to 2.0.11 * Fixed a problem in SCDAEMON which caused unexpected card resets.