summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorDon Seiler <rizzo@gentoo.org>2004-08-26 15:00:24 +0000
committerDon Seiler <rizzo@gentoo.org>2004-08-26 15:00:24 +0000
commit8e77d9d72feb24a955d06ba47f721c13615123de (patch)
treeea2427de04d5b6eb4b4b6e38f2adf560dda7998f /net-im
parentsecurity fix. bug #61749 (Manifest recommit) (diff)
downloadgentoo-2-8e77d9d72feb24a955d06ba47f721c13615123de.tar.gz
gentoo-2-8e77d9d72feb24a955d06ba47f721c13615123de.tar.bz2
gentoo-2-8e77d9d72feb24a955d06ba47f721c13615123de.zip
Patch to fix crash with buddy icons and conversation buttons
Diffstat (limited to 'net-im')
-rw-r--r--net-im/gaim/ChangeLog8
-rw-r--r--net-im/gaim/files/digest-gaim-0.82-r11
-rw-r--r--net-im/gaim/files/gaim-0.83cvs-iconcrash.diff111
-rw-r--r--net-im/gaim/gaim-0.82-r1.ebuild116
4 files changed, 235 insertions, 1 deletions
diff --git a/net-im/gaim/ChangeLog b/net-im/gaim/ChangeLog
index 74af5eb883f1..f76522ba7b46 100644
--- a/net-im/gaim/ChangeLog
+++ b/net-im/gaim/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-im/gaim
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/ChangeLog,v 1.230 2004/08/26 07:53:16 hardave Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/ChangeLog,v 1.231 2004/08/26 15:00:24 rizzo Exp $
+
+*gaim-0.82-r1 (26 Aug 2004)
+
+ 26 Aug 2004; Don Seiler <rizzo@gentoo.org>
+ +files/gaim-0.83cvs-iconcrash.diff, +gaim-0.82-r1.ebuild:
+ Patch to fix crash with buddy icons and conversation buttons
26 Aug 2004; Hardave Riar <hardave@gentoo.org> gaim-0.81-r5.ebuild:
Stable on mips. Bug #61457.
diff --git a/net-im/gaim/files/digest-gaim-0.82-r1 b/net-im/gaim/files/digest-gaim-0.82-r1
new file mode 100644
index 000000000000..74fa96f2df12
--- /dev/null
+++ b/net-im/gaim/files/digest-gaim-0.82-r1
@@ -0,0 +1 @@
+MD5 e47420012e9c026c2563d074e267d49b gaim-0.82.tar.bz2 4603356
diff --git a/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff b/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff
new file mode 100644
index 000000000000..c8934cb79191
--- /dev/null
+++ b/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff
@@ -0,0 +1,111 @@
+Index: gtkconv.c
+===================================================================
+RCS file: /cvsroot/gaim/gaim/src/gtkconv.c,v
+retrieving revision 1.467
+retrieving revision 1.468
+diff -u -d -p -r1.467 -r1.468
+--- gtkconv.c 25 Aug 2004 23:45:16 -0000 1.467
++++ gtkconv.c 26 Aug 2004 13:32:49 -0000 1.468
+@@ -3705,7 +3705,8 @@ setup_im_buttons(GaimConversation *conv,
+ /* Remove anything else in our parent */
+ children = gtk_container_get_children(GTK_CONTAINER(parent));
+ while (children != NULL) {
+- gtk_container_remove(GTK_CONTAINER(parent), children->data);
++ if(children->data != gtkim->icon_container)
++ gtk_container_remove(GTK_CONTAINER(parent), children->data);
+ children = g_list_remove(children, children->data);
+ }
+
+@@ -5620,7 +5621,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+
+ GdkPixbuf *buf;
+
+- GtkWidget *vbox;
+ GtkWidget *event;
+ GtkWidget *frame;
+ GdkPixbuf *scale;
+@@ -5650,8 +5650,9 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+ prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl);
+
+ /* Remove the current icon stuff */
+- if (gtkconv->u.im->icon != NULL)
+- gtk_widget_destroy(gtkconv->u.im->icon->parent->parent->parent);
++ if (gtkconv->u.im->icon_container != NULL)
++ gtk_widget_destroy(gtkconv->u.im->icon_container);
++ gtkconv->u.im->icon_container = NULL;
+
+ if (gtkconv->u.im->anim != NULL)
+ g_object_unref(G_OBJECT(gtkconv->u.im->anim));
+@@ -5670,8 +5671,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+ if (gaim_conversation_get_gc(conv) == NULL)
+ return;
+
+-
+-
+ icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv));
+
+ if (icon == NULL)
+@@ -5696,7 +5695,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+ /* make sure we remove the file as soon as possible */
+ unlink(filename);
+
+-
+ if (err) {
+ gaim_debug(GAIM_DEBUG_ERROR, "gtkconv",
+ "Buddy icon error: %s\n", err->message);
+@@ -5730,12 +5728,13 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+ g_object_unref(G_OBJECT(scale));
+
+
+- vbox = gtk_vbox_new(FALSE, 0);
++ gtkconv->u.im->icon_container = gtk_vbox_new(FALSE, 0);
+
+ frame = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame),
+ (bm ? GTK_SHADOW_NONE : GTK_SHADOW_IN));
+- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
++ gtk_box_pack_start(GTK_BOX(gtkconv->u.im->icon_container), frame,
++ FALSE, FALSE, 0);
+
+ event = gtk_event_box_new();
+ gtk_container_add(GTK_CONTAINER(frame), event);
+@@ -5757,14 +5756,17 @@ gaim_gtkconv_update_buddy_icon(GaimConve
+ /* the button seems to get its size before the box, so... */
+ gtk_widget_size_request(gtkconv->send, &requisition);
+ if (button_type == GAIM_BUTTON_NONE || requisition.height * 1.5 < scale_height) {
+- gtk_box_pack_start(GTK_BOX(gtkconv->lower_hbox), vbox, FALSE, FALSE, 0);
++ gtk_box_pack_start(GTK_BOX(gtkconv->lower_hbox),
++ gtkconv->u.im->icon_container, FALSE, FALSE, 0);
+ /* gtk_box_reorder_child(GTK_BOX(gtkconv->lower_hbox), vbox, 0); */
+ } else {
+- gtk_box_pack_start(GTK_BOX(gtkconv->bbox), vbox, FALSE, FALSE, 0);
+- gtk_box_reorder_child(GTK_BOX(gtkconv->bbox), vbox, 0);
++ gtk_box_pack_start(GTK_BOX(gtkconv->bbox),
++ gtkconv->u.im->icon_container, FALSE, FALSE, 0);
++ gtk_box_reorder_child(GTK_BOX(gtkconv->bbox),
++ gtkconv->u.im->icon_container, 0);
+ }
+
+- gtk_widget_show(vbox);
++ gtk_widget_show(gtkconv->u.im->icon_container);
+ gtk_widget_show(frame);
+
+ /* The buddy icon code needs badly to be fixed. */
+
+Index: gtkconv.h
+===================================================================
+RCS file: /cvsroot/gaim/gaim/src/gtkconv.h,v
+retrieving revision 1.54
+retrieving revision 1.55
+diff -u -d -p -r1.54 -r1.55
+--- gtkconv.h 20 Aug 2004 05:11:30 -0000 1.54
++++ gtkconv.h 26 Aug 2004 13:32:50 -0000 1.55
+@@ -114,6 +114,7 @@ struct _GaimGtkImPane
+ gboolean a_virgin;
+
+ /* Buddy icon stuff */
++ GtkWidget *icon_container;
+ GtkWidget *icon;
+ gboolean show_icon;
+ gboolean animate;
+
diff --git a/net-im/gaim/gaim-0.82-r1.ebuild b/net-im/gaim/gaim-0.82-r1.ebuild
new file mode 100644
index 000000000000..7ad1bd2c0e49
--- /dev/null
+++ b/net-im/gaim/gaim-0.82-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/gaim-0.82-r1.ebuild,v 1.1 2004/08/26 15:00:24 rizzo Exp $
+
+inherit flag-o-matic eutils gcc debug
+
+IUSE="nls perl spell nas cjk gnutls silc evo" #crypt
+
+DESCRIPTION="GTK2-based Instant Messenger client"
+HOMEPAGE="http://gaim.sourceforge.net/"
+SRC_URI="mirror://sourceforge/gaim/${P}.tar.bz2"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~x86 ~sparc ~amd64 ~ppc ~alpha ~ia64 ~mips ~hppa"
+
+DEPEND=">=x11-libs/gtk+-2.0
+ >=dev-libs/glib-2.0
+ nas? ( >=media-libs/nas-1.4.1-r1 )
+ sys-devel/gettext
+ media-libs/libao
+ >=media-libs/audiofile-0.2.0
+ perl? ( >=dev-lang/perl-5.8.2-r1
+ !<dev-perl/ExtUtils-MakeMaker-6.17 )
+ spell? ( >=app-text/gtkspell-2.0.2 )
+ dev-libs/nss
+ gnutls? ( net-libs/gnutls )
+ silc? ( >=net-im/silc-toolkit-0.9.12-r2 )
+ evo? ( mail-client/evolution )"
+
+#PDEPEND="crypt? ( >=x11-plugins/gaim-encryption-2.29 )"
+
+print_gaim_warning() {
+ ewarn
+ ewarn "If you are merging ${P} from an earlier version, you will need"
+ ewarn "to re-merge any plugins like gaim-encryption or gaim-snpp."
+ ewarn
+ ewarn "If you experience problems with gaim, file them as bugs with"
+ ewarn "Gentoo's bugzilla, http://bugs.gentoo.org. DO NOT report them"
+ ewarn "as bugs with gaim's sourceforge tracker, and by all means DO NOT"
+ ewarn "seek help in #gaim."
+ ewarn
+ ewarn "Be sure to USE=\"debug\" and include a backtrace for any seg"
+ ewarn "faults, see http://gaim.sourceforge.net/gdb.php for details on"
+ ewarn "backtraces."
+ ewarn
+ ewarn "Please read the gaim FAQ at http://gaim.sourceforge.net/faq.php"
+ ewarn
+ einfo
+ einfo "Note that we are now filtering all unstable flags in C[XX]FLAGS."
+ einfo
+ for TICKER in 1 2 3 4 5; do
+ # Double beep here.
+ echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null
+ echo -ne "\a" ; sleep 1
+ done
+ sleep 3
+}
+
+pkg_setup() {
+ print_gaim_warning
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ use cjk && epatch ${FILESDIR}/gaim-0.76-xinput.patch
+ cd ${S}/src/
+ epatch ${FILESDIR}/gaim-0.83cvs-iconcrash.diff
+}
+
+src_compile() {
+ # Stabilize things, for your own good
+ strip-flags
+ replace-flags -O? -O2
+
+ # -msse2 doesn't play nice on gcc 3.2
+ [ "`gcc-version`" == "3.2" ] && filter-flags -msse2
+
+ local myconf
+ use perl || myconf="${myconf} --disable-perl"
+ use spell || myconf="${myconf} --disable-gtkspell"
+ use nls || myconf="${myconf} --disable-nls"
+ use nas && myconf="${myconf} --enable-nas" || myconf="${myconf} --disable-nas"
+ use evo || myconf="${myconf} --disable-gevolution"
+
+ if use gnutls ; then
+ myconf="${myconf} --with-gnutls-includes=/usr/include/gnutls"
+ myconf="${myconf} --with-gnutls-libs=/usr/lib"
+ else
+ myconf="${myconf} --enable-gnutls=no"
+ fi
+
+ if use silc ; then
+ myconf="${myconf} --with-silc-includes=/usr/include/silc-toolkit"
+ myconf="${myconf} --with-silc-libs=/usr/lib"
+ fi
+
+ myconf="${myconf} --with-nspr-includes=/usr/include/nspr"
+ myconf="${myconf} --with-nss-includes=/usr/include/nss"
+ myconf="${myconf} --with-nspr-libs=/usr/lib"
+ myconf="${myconf} --with-nss-libs=/usr/lib"
+
+ econf ${myconf} || die "Configuration failed"
+
+ emake || MAKEOPTS="${MAKEOPTS} -j1" emake || die "Make failed"
+}
+
+src_install() {
+ make install DESTDIR=${D} || die "Install failed"
+ dodoc ABOUT-NLS AUTHORS COPYING HACKING INSTALL NEWS PROGRAMMING_NOTES README ChangeLog VERSION
+}
+
+pkg_postinst() {
+ print_gaim_warning
+}