diff options
author | Don Seiler <rizzo@gentoo.org> | 2004-06-28 18:45:32 +0000 |
---|---|---|
committer | Don Seiler <rizzo@gentoo.org> | 2004-06-28 18:45:32 +0000 |
commit | fcef25adc2ce01e7b9fc2a7a8d33b127f3e824bb (patch) | |
tree | d108a114b1ab8d63423b659c2dd32fb5c4f5c0eb /net-im | |
parent | Version bump (bug #55442) (Manifest recommit) (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | net-im/gaim/Manifest | 37 | ||||
-rw-r--r-- | net-im/gaim/files/digest-gaim-0.79-r1 | 1 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.79-buddyicon.patch | 178 | ||||
-rw-r--r-- | net-im/gaim/gaim-0.79-r1.ebuild | 127 |
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 +} |