summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorDon Seiler <rizzo@gentoo.org>2004-06-28 18:45:32 +0000
committerDon Seiler <rizzo@gentoo.org>2004-06-28 18:45:32 +0000
commitfcef25adc2ce01e7b9fc2a7a8d33b127f3e824bb (patch)
treed108a114b1ab8d63423b659c2dd32fb5c4f5c0eb /net-im
parentVersion bump (bug #55442) (Manifest recommit) (diff)
downloadgentoo-2-fcef25adc2ce01e7b9fc2a7a8d33b127f3e824bb.tar.gz
gentoo-2-fcef25adc2ce01e7b9fc2a7a8d33b127f3e824bb.tar.bz2
gentoo-2-fcef25adc2ce01e7b9fc2a7a8d33b127f3e824bb.zip
Patch to fix buddy icon bug introduced in 0.79. Suggested explicitly from upstream.
Diffstat (limited to 'net-im')
-rw-r--r--net-im/gaim/ChangeLog9
-rw-r--r--net-im/gaim/Manifest37
-rw-r--r--net-im/gaim/files/digest-gaim-0.79-r11
-rw-r--r--net-im/gaim/files/gaim-0.79-buddyicon.patch178
-rw-r--r--net-im/gaim/gaim-0.79-r1.ebuild127
5 files changed, 334 insertions, 18 deletions
diff --git a/net-im/gaim/ChangeLog b/net-im/gaim/ChangeLog
index a2bc3b385a13..5da5c0dcacd5 100644
--- a/net-im/gaim/ChangeLog
+++ b/net-im/gaim/ChangeLog
@@ -1,6 +1,13 @@
# 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.191 2004/06/25 02:24:21 rizzo Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/ChangeLog,v 1.192 2004/06/28 18:45:32 rizzo Exp $
+
+*gaim-0.79-r1 (28 Jun 2004)
+
+ 28 Jun 2004; Don Seiler <rizzo@gentoo.org> +files/gaim-0.79-buddyicon.patch,
+ +gaim-0.79-r1.ebuild:
+ Patch to fix buddy icon bug introduced in 0.79. Suggested explicitly from
+ upstream.
*gaim-0.79 (24 Jun 2004)
diff --git a/net-im/gaim/Manifest b/net-im/gaim/Manifest
index 27ae5069c35b..4d6c39e2859b 100644
--- a/net-im/gaim/Manifest
+++ b/net-im/gaim/Manifest
@@ -1,26 +1,29 @@
-MD5 21e546f4bf930eec2adbfb23d9ce21d8 gaim-0.78-r3.ebuild 4531
-MD5 1df7cf1ee34f05557ee0d1b2e4798ace gaim-0.77.ebuild 4032
+MD5 31cdc4b71a69202f61a821fa61bf9ce1 ChangeLog 30814
MD5 a864d5ac6f75a455a77dd950aa88b8be gaim-0.75-r10.ebuild 3663
+MD5 f6002c6a86640e0078f593741c740583 gaim-0.79-r1.ebuild 4012
+MD5 1df7cf1ee34f05557ee0d1b2e4798ace gaim-0.77.ebuild 4032
MD5 b15107e4cd8558340b25bf4a3536a3dd gaim-0.79.ebuild 3966
-MD5 31cdc4b71a69202f61a821fa61bf9ce1 ChangeLog 30814
+MD5 21e546f4bf930eec2adbfb23d9ce21d8 gaim-0.78-r3.ebuild 4531
MD5 19b3cafbbe380403d46cccc45a984b80 metadata.xml 481
-MD5 29409b66a70d19d4ceca094de43978a2 files/gaim-0.78-paste_html_img_crash.patch 510
-MD5 4989dc76d941288934c783f52931762d files/gaim-0.75-static-prpls.patch 3710
+MD5 8b152d59a54ab95627c4c0cd52758d75 files/digest-gaim-0.75-r10 63
MD5 4bc83ad48d260db208fcae372c2bb291 files/digest-gaim-0.77 63
-MD5 a71b33cfe6690e3792d65f1b407ace3e files/digest-gaim-0.79 63
+MD5 98cdf8cb3df34f23f2098df68bd5d06e files/gaim-0.77-newtrayicon.patch 13633
MD5 3a5e6167d13c4a44a8618c12629d777e files/gaim-0.77-c99.patch 4790
-MD5 a714a5babbb4387f5a5516f75548528a files/gaim-0.76cvs-yahoo-misc-fixes-1.diff 3105
MD5 68525b8389e356a5d05d531b84fb1ada files/gaim-0.74-gnome-url-handler.patch 1854
-MD5 a8234ce30b90015d2798a6f576982857 files/gaim-0.78cvs-novelltweaks5.patch 715
-MD5 fa4c02c17e5d4096a6353342bed870ec files/gaim-0.78-log_find_click.patch 1049
-MD5 f07855631a1ef3f986568b772f335865 files/digest-gaim-0.78-r3 63
-MD5 a4f3b00a7aa80e7fbc1e315b8c9306c8 files/gaim-0.76cvs-signals-varargs.diff 1753
MD5 53302cc68bb7bef9803723e977010339 files/gaim-0.74_cjk_gtkconv.patch 1128
-MD5 3b9c9b31ec4cecca6478ca2b7beaa296 files/gaim-0.79cvs-gtkimhtml-font.diff 1136
-MD5 e58ee6f06747da85a60cb9c13b91f805 files/gaim-0.76cvs-yahoo-login-fix.diff 4618
-MD5 6c718f1614f3c6c352062b1d775e9242 files/gaim-0.78-msn_disconnect_fix.patch 1241
+MD5 4989dc76d941288934c783f52931762d files/gaim-0.75-static-prpls.patch 3710
+MD5 e16439188287325963107a14ccddf668 files/gaim-0.75-yahoo-security.diff 3863
MD5 afc682711efed5d09a9229bd06a7a13b files/gaim-0.76-xinput.patch 644
+MD5 a4f3b00a7aa80e7fbc1e315b8c9306c8 files/gaim-0.76cvs-signals-varargs.diff 1753
+MD5 e58ee6f06747da85a60cb9c13b91f805 files/gaim-0.76cvs-yahoo-login-fix.diff 4618
+MD5 a714a5babbb4387f5a5516f75548528a files/gaim-0.76cvs-yahoo-misc-fixes-1.diff 3105
MD5 926417f5b93b2716eb31f0ceb0d8ce74 files/gaim-0.78-jabber_disconnect.patch 745
-MD5 98cdf8cb3df34f23f2098df68bd5d06e files/gaim-0.77-newtrayicon.patch 13633
-MD5 e16439188287325963107a14ccddf668 files/gaim-0.75-yahoo-security.diff 3863
-MD5 8b152d59a54ab95627c4c0cd52758d75 files/digest-gaim-0.75-r10 63
+MD5 fa4c02c17e5d4096a6353342bed870ec files/gaim-0.78-log_find_click.patch 1049
+MD5 6c718f1614f3c6c352062b1d775e9242 files/gaim-0.78-msn_disconnect_fix.patch 1241
+MD5 29409b66a70d19d4ceca094de43978a2 files/gaim-0.78-paste_html_img_crash.patch 510
+MD5 a71b33cfe6690e3792d65f1b407ace3e files/digest-gaim-0.79 63
+MD5 a8234ce30b90015d2798a6f576982857 files/gaim-0.78cvs-novelltweaks5.patch 715
+MD5 f07855631a1ef3f986568b772f335865 files/digest-gaim-0.78-r3 63
+MD5 3b9c9b31ec4cecca6478ca2b7beaa296 files/gaim-0.79cvs-gtkimhtml-font.diff 1136
+MD5 a71b33cfe6690e3792d65f1b407ace3e files/digest-gaim-0.79-r1 63
+MD5 672dd3fb3ce09b1402e80069ce307492 files/gaim-0.79-buddyicon.patch 5152
diff --git a/net-im/gaim/files/digest-gaim-0.79-r1 b/net-im/gaim/files/digest-gaim-0.79-r1
new file mode 100644
index 000000000000..fed11afa4e60
--- /dev/null
+++ b/net-im/gaim/files/digest-gaim-0.79-r1
@@ -0,0 +1 @@
+MD5 8d8758e4ef00187fcfe3ab14e4a3283e gaim-0.79.tar.bz2 4377687
diff --git a/net-im/gaim/files/gaim-0.79-buddyicon.patch b/net-im/gaim/files/gaim-0.79-buddyicon.patch
new file mode 100644
index 000000000000..bb67801cf3ee
--- /dev/null
+++ b/net-im/gaim/files/gaim-0.79-buddyicon.patch
@@ -0,0 +1,178 @@
+===================================================================
+RCS file: /cvsroot/gaim/gaim/src/buddyicon.c,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- gaim/gaim/src/buddyicon.c 2004/06/20 08:02:39 1.12
++++ gaim/gaim/src/buddyicon.c 2004/06/25 05:30:10 1.13
+@@ -32,6 +32,31 @@
+ static char *cache_dir = NULL;
+ static gboolean icon_caching = TRUE;
+
++static GaimBuddyIcon *
++gaim_buddy_icon_create(GaimAccount *account, const char *username)
++{
++ GaimBuddyIcon *icon;
++ GHashTable *icon_cache;
++
++ icon = g_new0(GaimBuddyIcon, 1);
++
++ gaim_buddy_icon_set_account(icon, account);
++ gaim_buddy_icon_set_username(icon, username);
++
++ icon_cache = g_hash_table_lookup(account_cache, account);
++
++ if (icon_cache == NULL)
++ {
++ icon_cache = g_hash_table_new(g_str_hash, g_str_equal);
++
++ g_hash_table_insert(account_cache, account, icon_cache);
++ }
++
++ g_hash_table_insert(icon_cache,
++ (char *)gaim_buddy_icon_get_username(icon), icon);
++ return icon;
++}
++
+ GaimBuddyIcon *
+ gaim_buddy_icon_new(GaimAccount *account, const char *username,
+ void *icon_data, size_t icon_len)
+@@ -46,26 +71,7 @@
+ icon = gaim_buddy_icons_find(account, username);
+
+ if (icon == NULL)
+- {
+- GHashTable *icon_cache;
+-
+- icon = g_new0(GaimBuddyIcon, 1);
+-
+- gaim_buddy_icon_set_account(icon, account);
+- gaim_buddy_icon_set_username(icon, username);
+-
+- icon_cache = g_hash_table_lookup(account_cache, account);
+-
+- if (icon_cache == NULL)
+- {
+- icon_cache = g_hash_table_new(g_str_hash, g_str_equal);
+-
+- g_hash_table_insert(account_cache, account, icon_cache);
+- }
+-
+- g_hash_table_insert(icon_cache,
+- (char *)gaim_buddy_icon_get_username(icon), icon);
+- }
++ icon = gaim_buddy_icon_create(account, username);
+
+ gaim_buddy_icon_ref(icon);
+ gaim_buddy_icon_set_data(icon, icon_data, icon_len);
+@@ -335,19 +341,44 @@
+ }
+
+ GaimBuddyIcon *
+-gaim_buddy_icons_find(const GaimAccount *account, const char *username)
++gaim_buddy_icons_find(GaimAccount *account, const char *username)
+ {
+ GHashTable *icon_cache;
++ GaimBuddyIcon *ret = NULL;
+
+ g_return_val_if_fail(account != NULL, NULL);
+ g_return_val_if_fail(username != NULL, NULL);
+
+ icon_cache = g_hash_table_lookup(account_cache, account);
+
+- if (icon_cache == NULL)
+- return NULL;
++ if ((icon_cache == NULL) || ((ret = g_hash_table_lookup(icon_cache, username)) == NULL)) {
++ const char *file;
++ struct stat st;
++ GaimBuddy *b = gaim_find_buddy(account, username);
++
++ if (!b)
++ return NULL;
++
++ if ((file = gaim_blist_node_get_string((GaimBlistNode*)b, "buddy_icon")) == NULL)
++ return NULL;
++
++ if (!stat(file, &st)) {
++ FILE *f = fopen(file, "rb");
++ if (f) {
++ char *data = g_malloc(st.st_size);
++ fread(data, 1, st.st_size, f);
++ fclose(f);
++ ret = gaim_buddy_icon_create(account, username);
++ gaim_buddy_icon_ref(ret);
++ gaim_buddy_icon_set_data(ret, data, st.st_size);
++ gaim_buddy_icon_unref(ret);
++ g_free(data);
++ return ret;
++ }
++ }
++ }
+
+- return g_hash_table_lookup(icon_cache, username);
++ return ret;
+ }
+
+ void
+===================================================================
+RCS file: /cvsroot/gaim/gaim/src/buddyicon.h,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- gaim/gaim/src/buddyicon.h 2004/01/10 04:04:55 1.5
++++ gaim/gaim/src/buddyicon.h 2004/06/25 05:30:10 1.6
+@@ -182,7 +182,7 @@
+ *
+ * @return The icon data if found, or @c NULL if not found.
+ */
+-GaimBuddyIcon *gaim_buddy_icons_find(const GaimAccount *account,
++GaimBuddyIcon *gaim_buddy_icons_find(GaimAccount *account,
+ const char *username);
+
+ /**
+===================================================================
+RCS file: /cvsroot/gaim/gaim/src/gtkblist.c,v
+retrieving revision 1.127
+retrieving revision 1.128
+diff -u -r1.127 -r1.128
+--- gaim/gaim/src/gtkblist.c 2004/06/22 01:05:42 1.127
++++ gaim/gaim/src/gtkblist.c 2004/06/25 05:30:10 1.128
+@@ -2623,36 +2623,19 @@
+
+ static GdkPixbuf *gaim_gtk_blist_get_buddy_icon(GaimBuddy *b)
+ {
+- const char *file;
+ GdkPixbuf *buf, *ret;
+ GdkPixbufLoader *loader;
+ GaimBuddyIcon *icon;
+ const char *data;
+ size_t len;
+- struct stat st;
+
+ if (!gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons"))
+ return NULL;
+
+- if (!(icon = gaim_buddy_get_icon(b))) {
+- if ((file = gaim_blist_node_get_string((GaimBlistNode*)b, "buddy_icon")) == NULL)
++ if (!(icon = gaim_buddy_get_icon(b)))
++ if (!(icon = gaim_buddy_icons_find(b->account, b->name))) /* Not sure I like this...*/
+ return NULL;
+
+- /* This is a hack, we should be loading up the GaimBuddyIcon's somewhere
+- * else, like the core, like when we parse the blist.xml file. */
+- if (!stat(file, &st)) {
+- FILE *f = fopen(file, "rb");
+- if (f) {
+- char *data = g_malloc(st.st_size);
+- fread(data, 1, st.st_size, f);
+- fclose(f);
+- gaim_buddy_icons_set_for_user(b->account, b->name, data, st.st_size);
+- g_free(data);
+- }
+- }
+-
+- return NULL; /* Either no icon, or we just set one and so this will get called again */
+- }
+
+ loader = gdk_pixbuf_loader_new();
+ data = gaim_buddy_icon_get_data(icon, &len);
diff --git a/net-im/gaim/gaim-0.79-r1.ebuild b/net-im/gaim/gaim-0.79-r1.ebuild
new file mode 100644
index 000000000000..47fd3edfb9dc
--- /dev/null
+++ b/net-im/gaim/gaim-0.79-r1.ebuild
@@ -0,0 +1,127 @@
+# 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.79-r1.ebuild,v 1.1 2004/06/28 18:45:32 rizzo Exp $
+
+inherit flag-o-matic eutils gcc
+use debug && inherit debug
+
+IUSE="nls perl spell nas debug crypt cjk gnutls silc"
+
+DESCRIPTION="GTK 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 )
+ !mips? ( silc? ( >=net-im/silc-toolkit-0.9.12 ) )"
+PDEPEND="crypt? ( >=net-im/gaim-encryption-2.26 )"
+
+pkg_setup() {
+ 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
+ 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 8
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ use cjk && epatch ${FILESDIR}/gaim-0.76-xinput.patch
+ epatch ${FILESDIR}/gaim-0.79-buddyicon.patch
+}
+
+src_compile() {
+ einfo "Replacing -Os CFLAG with -O2"
+ replace-flags -Os -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"
+
+ 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 mips ; then
+ if use silc ; then
+ myconf="${myconf} --with-silc-includes=/usr/include/silc-toolkit"
+ myconf="${myconf} --with-silc-libs=/usr/lib"
+ fi
+ 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() {
+ 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
+ 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 8
+}