fixes killed with ctrl+c from a terminal and gets glibc errors - bug #113219
authorDaniel Black <dragonheart@gentoo.org>
Fri, 25 Nov 2005 08:36:08 +0000 (08:36 +0000)
committerDaniel Black <dragonheart@gentoo.org>
Fri, 25 Nov 2005 08:36:08 +0000 (08:36 +0000)
Package-Manager: portage-2.0.53_rc7

app-admin/conky/ChangeLog
app-admin/conky/Manifest
app-admin/conky/conky-1.3.4-r1.ebuild [moved from app-admin/conky/conky-1.3.4.ebuild with 91% similarity]
app-admin/conky/files/conky-1.3.4-miscbug.patch [new file with mode: 0644]
app-admin/conky/files/digest-conky-1.3.4-r1 [moved from app-admin/conky/files/digest-conky-1.3.4 with 100% similarity]

index 190beb71d341e9a134f90bb10d9bb13f60dd3e63..97e016d21f0cd21157428d4c3606802c3ba4e846 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for app-admin/conky
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/conky/ChangeLog,v 1.11 2005/11/20 00:09:28 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/conky/ChangeLog,v 1.12 2005/11/25 08:36:08 dragonheart Exp $
+
+*conky-1.3.4-r1 (25 Nov 2005)
+
+  25 Nov 2005; Daniel Black <dragonheart@gentoo.org>
+  +files/conky-1.3.4-miscbug.patch, -conky-1.3.4.ebuild,
+  +conky-1.3.4-r1.ebuild:
+  fixes killed with ctrl+c from a terminal and gets glibc errors - bug #113219
+  thanks to Nathan Sullivan (reporter) and Philip Kovacs (patch author)
 
 *conky-1.3.4 (20 Nov 2005)
 
index 79d2aedf71215fb745fbdc744199193cd0034c0b..30d8b79c11e6cda040776846da39a3456575a718 100644 (file)
@@ -1,18 +1,19 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 479700b94bcad3123879b0d35167b6fe ChangeLog 1981
+MD5 6369473771b6716264a8f895cb91593d ChangeLog 2300
 MD5 199085e7a8ed12031f881663a3c100d1 conky-1.3.1.ebuild 2019
 MD5 eb5f557defc5b1ed505b906498cdc395 conky-1.3.3.ebuild 1954
-MD5 d6ba6c87ae86ab8efd69482b9e9894be conky-1.3.4.ebuild 2350
+MD5 8dcdff398c00b4843ff0369ab69e717f conky-1.3.4-r1.ebuild 2431
+MD5 5f59baa8fad32662ba9a1721af23d13f files/conky-1.3.4-miscbug.patch 2863
 MD5 31acfc146c31ba015fb9b8643deb2d57 files/digest-conky-1.3.1 64
 MD5 6e51a33ec07b6f71db430f1839fd7902 files/digest-conky-1.3.3 64
-MD5 c5c1fb804afb4bd1255b602c8894a317 files/digest-conky-1.3.4 64
+MD5 c5c1fb804afb4bd1255b602c8894a317 files/digest-conky-1.3.4-r1 64
 MD5 32bd4230c3ee12a8d5502d4bd57a9a3d metadata.xml 588
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2-ecc0.1.6 (GNU/Linux)
 
-iD8DBQFDf77GmdTrptrqvGERAntnAJ0eWOKFmN5l2nZVnV1E0yKTsb9I0ACePAII
-4G6gx0UPceEU07/IPA/yKPI=
-=g0sC
+iD8DBQFDhs0FmdTrptrqvGERAklHAKCNoCXNQD6MGgqmliuSUnLjZ50uUgCeJdaH
+/e1wf5SFpGPHswwu87j5GwQ=
+=/1l0
 -----END PGP SIGNATURE-----
similarity index 91%
rename from app-admin/conky/conky-1.3.4.ebuild
rename to app-admin/conky/conky-1.3.4-r1.ebuild
index b3a35595eb630156898076b6431a903bb882834b..117760eee975bb61372828fb1ec9047d75bcc122 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/conky/conky-1.3.4.ebuild,v 1.1 2005/11/20 00:09:28 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/conky/conky-1.3.4-r1.ebuild,v 1.1 2005/11/25 08:36:08 dragonheart Exp $
 
 inherit eutils
 
@@ -32,6 +32,11 @@ DEPEND="
        sys-apps/sed
        sys-devel/gcc"
 
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       epatch ${FILESDIR}/${P}-miscbug.patch
+}
 
 src_compile() {
        local mymake
diff --git a/app-admin/conky/files/conky-1.3.4-miscbug.patch b/app-admin/conky/files/conky-1.3.4-miscbug.patch
new file mode 100644 (file)
index 0000000..815ba38
--- /dev/null
@@ -0,0 +1,127 @@
+--- src/conky.h.old    2005-11-16 18:45:32.000000000 -0500
++++ src/conky.h        2005-11-24 23:06:25.046033576 -0500
+@@ -209,8 +209,8 @@
+ 
+ int use_spacer;
+ 
+-char *tmpstring1;
+-char *tmpstring2;
++char tmpstring1[TEXT_BUFFER_SIZE];
++char tmpstring2[TEXT_BUFFER_SIZE];
+ 
+ #ifdef X11
+ /* in x11.c */
+--- src/conky.c.old    2005-11-16 19:32:39.000000000 -0500
++++ src/conky.c        2005-11-24 23:03:03.675646528 -0500
+@@ -3,7 +3,7 @@
+  *
+  * This program is licensed under BSD license, read COPYING
+  *
+- *  $Id: conky-1.3.4-miscbug.patch,v 1.1 2005/11/25 08:36:08 dragonheart Exp $
++ *  $Id: conky-1.3.4-miscbug.patch,v 1.1 2005/11/25 08:36:08 dragonheart Exp $
+  */
+ 
+ #include "conky.h"
+@@ -34,6 +34,9 @@
+ #define MAIL_FILE "$MAIL"
+ #define MAX_IF_BLOCK_DEPTH 5
+ 
++/* #define SIGNAL_BLOCKING */
++#undef SIGNAL_BLOCKING
++
+ #ifdef X11
+ 
+ /* alignments */
+@@ -4060,6 +4063,15 @@
+ 
+ static void main_loop()
+ {
++#ifdef SIGNAL_BLOCKING
++      sigset_t  newmask, oldmask;
++
++      sigemptyset(&newmask);
++      sigaddset(&newmask,SIGINT);
++      sigaddset(&newmask,SIGTERM);
++      sigaddset(&newmask,SIGUSR1);
++#endif
++
+ #ifdef X11
+       Region region = XCreateRegion();
+ #endif /* X11 */
+@@ -4067,6 +4079,13 @@
+       info.looped = 0;
+       while (total_run_times == 0 || info.looped < total_run_times - 1) {
+               info.looped++;
++
++#ifdef SIGNAL_BLOCKING
++              /* block signals.  we will inspect for pending signals later */
++              if (sigprocmask(SIG_BLOCK, &newmask, &oldmask) < 0)
++                      CRIT_ERR("unable to sigprocmask()");
++#endif
++
+ #ifdef X11
+               XFlush(display);
+ 
+@@ -4287,7 +4306,12 @@
+               }
+ #endif /* X11 */
+ 
+-              /* inspect pending signal prior to entering next loop */
++#ifdef SIGNAL_BLOCKING
++              /* unblock signals of interest and let handler fly */
++              if (sigprocmask(SIG_SETMASK, &oldmask, NULL) < 0)
++                      CRIT_ERR("unable to sigprocmask()");
++#endif
++
+               switch(g_signal_pending) {
+               case SIGUSR1:
+                       {
+@@ -4964,6 +4988,8 @@
+ 
+ int main(int argc, char **argv)
+ {
++      struct sigaction act, oact;
++
+       g_signal_pending=0;
+       memset(&info, 0, sizeof(info) );
+ 
+@@ -5058,11 +5084,6 @@
+       init_X11();
+ #endif /* X11 */
+ 
+-      tmpstring1 = (char *)
+-          malloc(TEXT_BUFFER_SIZE);
+-      tmpstring2 = (char *)
+-          malloc(TEXT_BUFFER_SIZE);
+-
+       /* load current_config or CONFIG_FILE */
+ 
+ #ifdef CONFIG_FILE
+@@ -5241,16 +5262,22 @@
+       }
+ 
+       /* Set signal handlers */
+-      if ( signal(SIGINT,signal_handler) == SIG_ERR ||
+-           signal(SIGUSR1,signal_handler) == SIG_ERR ||
+-           signal(SIGTERM,signal_handler) == SIG_ERR )
++      act.sa_handler = signal_handler;
++      sigemptyset(&act.sa_mask);
++      act.sa_flags = 0;
++#ifdef SA_RESTART
++      act.sa_flags |= SA_RESTART;
++#endif
++
++      if ( sigaction(SIGINT,&act,&oact) < 0 ||
++           sigaction(SIGUSR1,&act,&oact) < 0 ||
++           sigaction(SIGTERM,&act,&oact) < 0 )
+       {
+               ERR("error setting signal handler: %s", strerror(errno) );
+       }
+ 
+       main_loop();
+-      free(tmpstring1);
+-      free(tmpstring2);
++
+       return 0;
+ }
+