diff options
author | Don Seiler <rizzo@gentoo.org> | 2004-08-26 15:00:24 +0000 |
---|---|---|
committer | Don Seiler <rizzo@gentoo.org> | 2004-08-26 15:00:24 +0000 |
commit | 8e77d9d72feb24a955d06ba47f721c13615123de (patch) | |
tree | ea2427de04d5b6eb4b4b6e38f2adf560dda7998f /net-im | |
parent | security fix. bug #61749 (Manifest recommit) (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | net-im/gaim/files/digest-gaim-0.82-r1 | 1 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.83cvs-iconcrash.diff | 111 | ||||
-rw-r--r-- | net-im/gaim/gaim-0.82-r1.ebuild | 116 |
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 +} |