summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-extra/bug-buddy')
-rw-r--r--gnome-extra/bug-buddy/ChangeLog9
-rw-r--r--gnome-extra/bug-buddy/bug-buddy-2.20.0-r1.ebuild (renamed from gnome-extra/bug-buddy/bug-buddy-2.20.0.ebuild)10
-rw-r--r--gnome-extra/bug-buddy/files/bug-buddy-2.20.0-fix-breakpad.patch69
-rw-r--r--gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0-r1 (renamed from gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0)0
4 files changed, 85 insertions, 3 deletions
diff --git a/gnome-extra/bug-buddy/ChangeLog b/gnome-extra/bug-buddy/ChangeLog
index e4673e9670ec..83ea21fa6cc6 100644
--- a/gnome-extra/bug-buddy/ChangeLog
+++ b/gnome-extra/bug-buddy/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-extra/bug-buddy
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/bug-buddy/ChangeLog,v 1.132 2007/09/26 22:08:57 dang Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/bug-buddy/ChangeLog,v 1.133 2007/10/02 15:39:39 dang Exp $
+
+*bug-buddy-2.20.0-r1 (02 Oct 2007)
+
+ 02 Oct 2007; Daniel Gryniewicz <dang@gentoo.org>
+ +files/bug-buddy-2.20.0-fix-breakpad.patch, -bug-buddy-2.20.0.ebuild,
+ +bug-buddy-2.20.0-r1.ebuild:
+ Fix crashes caused by breakpad; bug #192310
*bug-buddy-2.20.0 (26 Sep 2007)
diff --git a/gnome-extra/bug-buddy/bug-buddy-2.20.0.ebuild b/gnome-extra/bug-buddy/bug-buddy-2.20.0-r1.ebuild
index 5b0d64780cf2..79192baa4aba 100644
--- a/gnome-extra/bug-buddy/bug-buddy-2.20.0.ebuild
+++ b/gnome-extra/bug-buddy/bug-buddy-2.20.0-r1.ebuild
@@ -1,8 +1,8 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/bug-buddy/bug-buddy-2.20.0.ebuild,v 1.1 2007/09/26 22:08:57 dang Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/bug-buddy/bug-buddy-2.20.0-r1.ebuild,v 1.1 2007/10/02 15:39:39 dang Exp $
-inherit gnome2
+inherit gnome2 eutils
DESCRIPTION="A graphical bug reporting tool"
HOMEPAGE="http://www.gnome.org/"
@@ -41,3 +41,9 @@ USE_DESTDIR="1"
pkg_setup() {
G2CONF="${G2CONF} --disable-scrollkeeper"
}
+
+src_unpack() {
+ gnome2_src_unpack
+
+ epatch "${FILESDIR}"/${P}-fix-breakpad.patch
+}
diff --git a/gnome-extra/bug-buddy/files/bug-buddy-2.20.0-fix-breakpad.patch b/gnome-extra/bug-buddy/files/bug-buddy-2.20.0-fix-breakpad.patch
new file mode 100644
index 000000000000..ccc2dcf6f81f
--- /dev/null
+++ b/gnome-extra/bug-buddy/files/bug-buddy-2.20.0-fix-breakpad.patch
@@ -0,0 +1,69 @@
+diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN bug-buddy-2.20.0.orig/gnome-breakpad/gnome-breakpad.cc bug-buddy-2.20.0/gnome-breakpad/gnome-breakpad.cc
+--- bug-buddy-2.20.0.orig/gnome-breakpad/gnome-breakpad.cc 2007-09-04 15:53:55.000000000 -0400
++++ bug-buddy-2.20.0/gnome-breakpad/gnome-breakpad.cc 2007-10-02 11:23:54.000000000 -0400
+@@ -291,22 +291,59 @@ gtk_module_init (int *argc, char** argv[
+
+ if (bugbuddy && !g_getenv ("GNOME_DISABLE_CRASH_DIALOG")) {
+ #ifdef ENABLE_GOOGLE_BREAKPAD
++ static struct sigaction old_action;
++
++ sigaction(SIGSEGV, NULL, &old_action);
++ if (old_action.sa_handler != SIG_DFL)
++ return 0;
++
++ sigaction(SIGABRT, NULL, &old_action);
++ if (old_action.sa_handler != SIG_DFL)
++ return 0;
++
++ sigaction(SIGTRAP, NULL, &old_action);
++ if (old_action.sa_handler != SIG_DFL)
++ return 0;
++
++ sigaction(SIGFPE, NULL, &old_action);
++ if (old_action.sa_handler != SIG_DFL)
++ return 0;
++
++ sigaction(SIGBUS, NULL, &old_action);
++ if (old_action.sa_handler != SIG_DFL)
++ return 0;
++
+ static ExceptionHandler handler("/tmp", check_if_gdb,
+ MinidumpCallback, NULL, true);
+ #else
+ static struct sigaction *setptr;
++ static struct sigaction old_action;
+ struct sigaction sa;
+ memset(&sa, 0, sizeof(sa));
+ setptr = &sa;
+
+ sa.sa_handler = bugbuddy_segv_handle;
+
+- sigaction(SIGSEGV, setptr, NULL);
+- sigaction(SIGABRT, setptr, NULL);
+- sigaction(SIGTRAP, setptr, NULL);
+- sigaction(SIGFPE, setptr, NULL);
+- sigaction(SIGBUS, setptr, NULL);
++ sigaction(SIGSEGV, NULL, &old_action);
++ if (old_action.sa_handler == SIG_DFL)
++ sigaction(SIGSEGV, setptr, NULL);
++
++ sigaction(SIGABRT, NULL, &old_action);
++ if (old_action.sa_handler == SIG_DFL)
++ sigaction(SIGABRT, setptr, NULL);
++
++ sigaction(SIGTRAP, NULL, &old_action);
++ if (old_action.sa_handler == SIG_DFL)
++ sigaction(SIGTRAP, setptr, NULL);
++
++ sigaction(SIGFPE, NULL, &old_action);
++ if (old_action.sa_handler == SIG_DFL)
++ sigaction(SIGFPE, setptr, NULL);
++
++ sigaction(SIGBUS, NULL, &old_action);
++ if (old_action.sa_handler == SIG_DFL)
++ sigaction(SIGBUS, setptr, NULL);
+ #endif
+ }
+-
++ return 0;
+ }
diff --git a/gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0 b/gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0-r1
index 8b014592adef..8b014592adef 100644
--- a/gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0
+++ b/gnome-extra/bug-buddy/files/digest-bug-buddy-2.20.0-r1