summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2010-10-29 09:59:46 +0000
committerPeter Volkov <pva@gentoo.org>2010-10-29 09:59:46 +0000
commitbe0464a5962a20492bf859f3b24dbca4c8f59759 (patch)
treeb84a24e9f9e5dc2b10f65dd36f3d88ac88b49665 /net-im
parentupdated from private overlay; revbump (diff)
downloadgentoo-2-be0464a5962a20492bf859f3b24dbca4c8f59759.tar.gz
gentoo-2-be0464a5962a20492bf859f3b24dbca4c8f59759.tar.bz2
gentoo-2-be0464a5962a20492bf859f3b24dbca4c8f59759.zip
Backport upstream patches to fix ICQ regressions (e.g. bug #342779 thank Phil Stracchino for report) and crashes.
(Portage version: 2.1.9.22/cvs/Linux x86_64)
Diffstat (limited to 'net-im')
-rw-r--r--net-im/pidgin/ChangeLog12
-rw-r--r--net-im/pidgin/files/pidgin-2.7.4-bonjour-crash.patch23
-rw-r--r--net-im/pidgin/files/pidgin-2.7.4-icq-authorization-empty-nick.patch79
-rw-r--r--net-im/pidgin/files/pidgin-2.7.4-icq-html-regression.patch21
-rw-r--r--net-im/pidgin/files/pidgin-2.7.4-missing-break-bug-12810.patch22
-rw-r--r--net-im/pidgin/pidgin-2.7.4-r1.ebuild220
6 files changed, 376 insertions, 1 deletions
diff --git a/net-im/pidgin/ChangeLog b/net-im/pidgin/ChangeLog
index 392b8da6f559..51d3c7c915da 100644
--- a/net-im/pidgin/ChangeLog
+++ b/net-im/pidgin/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for net-im/pidgin
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/pidgin/ChangeLog,v 1.197 2010/10/26 13:44:55 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/pidgin/ChangeLog,v 1.198 2010/10/29 09:59:46 pva Exp $
+
+*pidgin-2.7.4-r1 (29 Oct 2010)
+
+ 29 Oct 2010; Peter Volkov <pva@gentoo.org> +pidgin-2.7.4-r1.ebuild,
+ +files/pidgin-2.7.4-bonjour-crash.patch,
+ +files/pidgin-2.7.4-icq-authorization-empty-nick.patch,
+ +files/pidgin-2.7.4-icq-html-regression.patch,
+ +files/pidgin-2.7.4-missing-break-bug-12810.patch:
+ Backport upstream patches to fix ICQ regressions (e.g. bug #342779 thank
+ Phil Stracchino for report) and crashes.
26 Oct 2010; Jeroen Roovers <jer@gentoo.org> pidgin-2.7.4.ebuild:
Stable for PPC (bug #342059).
diff --git a/net-im/pidgin/files/pidgin-2.7.4-bonjour-crash.patch b/net-im/pidgin/files/pidgin-2.7.4-bonjour-crash.patch
new file mode 100644
index 000000000000..ed43e5a211c6
--- /dev/null
+++ b/net-im/pidgin/files/pidgin-2.7.4-bonjour-crash.patch
@@ -0,0 +1,23 @@
+http://developer.pidgin.im/viewmtn/revision/info/82e935b340047646fa99de444cd143a4523928cc
+
+Fix crash when attempting to log into a bonjour account and init failed
+
+#
+#
+# patch "libpurple/protocols/bonjour/bonjour.c"
+# from [9f373f1963c40837750948ec0b072e6eb1abb608]
+# to [e0955c7f0b8020ffa9848c290b42f88f981a3572]
+#
+============================================================
+--- libpurple/protocols/bonjour/bonjour.c 9f373f1963c40837750948ec0b072e6eb1abb608
++++ libpurple/protocols/bonjour/bonjour.c e0955c7f0b8020ffa9848c290b42f88f981a3572
+@@ -189,7 +189,8 @@ bonjour_close(PurpleConnection *connecti
+ purple_xfer_cancel_local(bd->xfer_lists->data);
+ }
+
+- g_free(bd->jid);
++ if (bd != NULL)
++ g_free(bd->jid);
+ g_free(bd);
+ connection->proto_data = NULL;
+ }
diff --git a/net-im/pidgin/files/pidgin-2.7.4-icq-authorization-empty-nick.patch b/net-im/pidgin/files/pidgin-2.7.4-icq-authorization-empty-nick.patch
new file mode 100644
index 000000000000..9b14852566ed
--- /dev/null
+++ b/net-im/pidgin/files/pidgin-2.7.4-icq-authorization-empty-nick.patch
@@ -0,0 +1,79 @@
+http://developer.pidgin.im/viewmtn/revision/info/b4c65c273f2934560d9e643a124b31ac2d2328f2
+
+We should always display the "Authorize buddy?" mini-dialog, even
+if the buddy doesn't have a non-empty nickname. Fixes #12810.
+Also, why the hell did gotalias() return int? That should be void.
+
+#
+#
+# patch "libpurple/protocols/oscar/family_icq.c"
+# from [6e79de6d0d602cb32962d5a6eb9884d41ecf4d2a]
+# to [da2f91e3871e683861698a416bb17e6f4fc7eca1]
+#
+# patch "pidgin/gtkaccount.c"
+# from [67355ddf08aa04ea8bc82450a9b0276a03937981]
+# to [c6c6f42af0d54071a143aeab36b4165866907064]
+#
+============================================================
+--- libpurple/protocols/oscar/family_icq.c 6e79de6d0d602cb32962d5a6eb9884d41ecf4d2a
++++ libpurple/protocols/oscar/family_icq.c da2f91e3871e683861698a416bb17e6f4fc7eca1
+@@ -408,27 +408,27 @@ int aim_icq_sendsms(OscarData *od, const
+ return 0;
+ }
+
+-static int
++static void
+ gotalias(OscarData *od, struct aim_icq_info *info)
+ {
+ PurpleConnection *gc = od->gc;
+ PurpleAccount *account = purple_connection_get_account(gc);
+- gchar who[16], *utf8;
+ PurpleBuddy *b;
++ gchar *utf8 = oscar_utf8_try_convert(account, od, info->nick);
+
+- if (info->nick[0] && (utf8 = oscar_utf8_try_convert(account, od, info->nick))) {
+- if (info->for_auth_request) {
+- oscar_auth_recvrequest(gc, g_strdup_printf("%u", info->uin), utf8, info->auth_request_reason);
+- } else {
++ if (info->for_auth_request) {
++ oscar_auth_recvrequest(gc, g_strdup_printf("%u", info->uin), utf8, info->auth_request_reason);
++ } else {
++ if (utf8 && *utf8) {
++ gchar who[16];
+ g_snprintf(who, sizeof(who), "%u", info->uin);
+ serv_got_alias(gc, who, utf8);
+ if ((b = purple_find_buddy(account, who))) {
+ purple_blist_node_set_string((PurpleBlistNode*)b, "servernick", utf8);
+ }
+- g_free(utf8);
+ }
++ g_free(utf8);
+ }
+- return 1;
+ }
+
+ /**
+============================================================
+--- pidgin/gtkaccount.c 67355ddf08aa04ea8bc82450a9b0276a03937981
++++ pidgin/gtkaccount.c c6c6f42af0d54071a143aeab36b4165866907064
+@@ -2468,6 +2468,7 @@ pidgin_accounts_request_authorization(Pu
+ GtkWidget *alert;
+ GdkPixbuf *prpl_icon;
+ struct auth_request *aa;
++ gboolean have_valid_alias = alias && *alias;
+
+ gc = purple_account_get_connection(account);
+ if (message != NULL && *message == '\0')
+@@ -2475,9 +2476,9 @@ pidgin_accounts_request_authorization(Pu
+
+ buffer = g_strdup_printf(_("%s%s%s%s wants to add you (%s) to his or her buddy list%s%s"),
+ remote_user,
+- (alias != NULL ? " (" : ""),
+- (alias != NULL ? alias : ""),
+- (alias != NULL ? ")" : ""),
++ (have_valid_alias ? " (" : ""),
++ (have_valid_alias ? alias : ""),
++ (have_valid_alias ? ")" : ""),
+ (id != NULL
+ ? id
+ : (purple_connection_get_display_name(gc) != NULL
diff --git a/net-im/pidgin/files/pidgin-2.7.4-icq-html-regression.patch b/net-im/pidgin/files/pidgin-2.7.4-icq-html-regression.patch
new file mode 100644
index 000000000000..68a9a9932b5a
--- /dev/null
+++ b/net-im/pidgin/files/pidgin-2.7.4-icq-html-regression.patch
@@ -0,0 +1,21 @@
+http://theflamingbanker.blogspot.com/2010/10/death-of-thousand-tickets.html
+http://bugs.gentoo.org/show_bug.cgi?id=342779
+
+#
+#
+# patch "libpurple/protocols/oscar/family_chat.c"
+# from [9b3ad3b5c68ab5d3f33b0b856fdeaf898a5ed9a9]
+# to [397a3d8572c9863216cc7b37d26858f34a1583ab]
+#
+============================================================
+--- libpurple/protocols/oscar/family_chat.c 9b3ad3b5c68ab5d3f33b0b856fdeaf898a5ed9a9
++++ libpurple/protocols/oscar/family_chat.c 397a3d8572c9863216cc7b37d26858f34a1583ab
+@@ -88,6 +88,8 @@ infoupdate(OscarData *od, FlapConnection
+ return 1;
+ }
+
++ byte_stream_get16(bs); // skip the TLV count
++
+ /*
+ * Everything else are TLVs.
+ */
diff --git a/net-im/pidgin/files/pidgin-2.7.4-missing-break-bug-12810.patch b/net-im/pidgin/files/pidgin-2.7.4-missing-break-bug-12810.patch
new file mode 100644
index 000000000000..8faf759f093a
--- /dev/null
+++ b/net-im/pidgin/files/pidgin-2.7.4-missing-break-bug-12810.patch
@@ -0,0 +1,22 @@
+http://developer.pidgin.im/viewmtn/revision/info/7d1c9a75673aed36deaeca9e96975462a68e2dcd
+
+There seems to be a missing break here. I noticed it in the log, but
+probably not related. Refs #12810.
+
+#
+#
+# patch "pidgin/minidialog.c"
+# from [0ff3f39351172aebcd5504f3915242777b6d05cd]
+# to [2e29d56ddb428c86d1e4ee9854fd56b0925b948c]
+#
+============================================================
+--- pidgin/minidialog.c 0ff3f39351172aebcd5504f3915242777b6d05cd
++++ pidgin/minidialog.c 2e29d56ddb428c86d1e4ee9854fd56b0925b948c
+@@ -332,6 +332,7 @@ pidgin_mini_dialog_set_property(GObject
+ break;
+ case PROP_CUSTOM_ICON:
+ gtk_image_set_from_pixbuf(priv->icon, g_value_get_object(value));
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
diff --git a/net-im/pidgin/pidgin-2.7.4-r1.ebuild b/net-im/pidgin/pidgin-2.7.4-r1.ebuild
new file mode 100644
index 000000000000..bf7876ae8368
--- /dev/null
+++ b/net-im/pidgin/pidgin-2.7.4-r1.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/pidgin/pidgin-2.7.4-r1.ebuild,v 1.1 2010/10/29 09:59:46 pva Exp $
+
+EAPI=2
+
+GENTOO_DEPEND_ON_PERL=no
+inherit flag-o-matic eutils toolchain-funcs multilib perl-app gnome2 python autotools
+
+DESCRIPTION="GTK Instant Messenger client"
+HOMEPAGE="http://pidgin.im/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="dbus debug doc eds gadu gnutls +gstreamer +gtk idn meanwhile"
+IUSE+=" networkmanager nls perl silc tcl tk spell qq sasl +startup-notification"
+IUSE+=" ncurses groupwise prediction python +xscreensaver zephyr zeroconf" # mono"
+
+# dbus requires python to generate C code for dbus bindings (thus DEPEND only).
+# finch uses libgnt that links with libpython - {R,}DEPEND. But still there is
+# no way to build dbus and avoid libgnt linkage with python. If you want this
+# send patch upstream.
+RDEPEND="
+ >=dev-libs/glib-2.12
+ >=dev-libs/libxml2-2.6.18
+ ncurses? ( sys-libs/ncurses[unicode]
+ dbus? ( <dev-lang/python-3 )
+ python? ( <dev-lang/python-3 ) )
+ gtk? (
+ >=x11-libs/gtk+-2.10:2
+ x11-libs/libSM
+ xscreensaver? ( x11-libs/libXScrnSaver )
+ startup-notification? ( >=x11-libs/startup-notification-0.5 )
+ spell? ( >=app-text/gtkspell-2.0.2 )
+ eds? ( gnome-extra/evolution-data-server )
+ prediction? ( >=dev-db/sqlite-3.3:3 ) )
+ gstreamer? ( =media-libs/gstreamer-0.10*
+ =media-libs/gst-plugins-good-0.10*
+ >=net-libs/farsight2-0.0.14
+ media-plugins/gst-plugins-meta
+ media-plugins/gst-plugins-gconf )
+ zeroconf? ( net-dns/avahi )
+ dbus? ( >=dev-libs/dbus-glib-0.71
+ >=sys-apps/dbus-0.90 )
+ perl? ( >=dev-lang/perl-5.8.2-r1[-build] )
+ gadu? ( >=net-libs/libgadu-1.9.0[-ssl] )
+ gnutls? ( net-libs/gnutls )
+ !gnutls? ( >=dev-libs/nss-3.11 )
+ meanwhile? ( net-libs/meanwhile )
+ silc? ( >=net-im/silc-toolkit-1.0.1 )
+ tcl? ( dev-lang/tcl )
+ tk? ( dev-lang/tk )
+ sasl? ( dev-libs/cyrus-sasl:2 )
+ networkmanager? ( net-misc/networkmanager )
+ idn? ( net-dns/libidn )"
+ # Mono support crashes pidgin
+ #mono? ( dev-lang/mono )"
+
+# We want nls in case gtk is enabled, bug #
+NLS_DEPEND=">=dev-util/intltool-0.41.1 sys-devel/gettext"
+
+DEPEND="$RDEPEND
+ dev-lang/perl
+ dev-perl/XML-Parser
+ dev-util/pkgconfig
+ gtk? ( x11-proto/scrnsaverproto
+ ${NLS_DEPEND} )
+ dbus? ( <dev-lang/python-3 )
+ doc? ( app-doc/doxygen )
+ !gtk? ( nls? ( ${NLS_DEPEND} ) )"
+
+DOCS="AUTHORS HACKING NEWS README ChangeLog"
+
+# Enable Default protocols
+DYNAMIC_PRPLS="irc,jabber,oscar,yahoo,simple,msn,myspace"
+
+# List of plugins
+# app-accessibility/pidgin-festival
+# net-im/librvp
+# x11-plugins/guifications
+# x11-plugins/msn-pecan
+# x11-plugins/pidgin-encryption
+# x11-plugins/pidgin-extprefs
+# x11-plugins/pidgin-hotkeys
+# x11-plugins/pidgin-latex
+# x11-plugins/pidgintex
+# x11-plugins/pidgin-libnotify
+# x11-plugins/pidgin-otr
+# x11-plugins/pidgin-rhythmbox
+# x11-plugins/purple-plugin_pack
+# x11-themes/pidgin-smileys
+# x11-plugins/pidgin-knotify
+# Plugins in Sunrise:
+# x11-plugins/pidgimpd
+# x11-plugins/pidgin-birthday
+# x11-plugins/pidgin-botsentry
+# x11-plugins/pidgin-convreverse
+# x11-plugins/pidgin-extended-blist-sort
+# x11-plugins/pidgin-lastfm
+# x11-plugins/pidgin-mbpurple
+
+pkg_setup() {
+ if ! use gtk && ! use ncurses ; then
+ elog "You did not pick the ncurses or gtk use flags, only libpurple"
+ elog "will be built."
+ fi
+ if use gtk && ! use nls; then
+ ewarn "gtk build => nls is enalbed!"
+ fi
+ if use dbus && ! use python; then
+ elog "dbus is enabled, no way to disable linkage with python => python is enabled"
+ fi
+ if use dbus || { use ncurses && use python; }; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+}
+
+src_prepare() {
+ gnome2_src_prepare
+ epatch "${FILESDIR}"/${PN}-2.7.3-ldflags.patch
+ epatch "${FILESDIR}"/${P}-icq-html-regression.patch
+ epatch "${FILESDIR}"/${P}-bonjour-crash.patch
+ epatch "${FILESDIR}"/${P}-missing-break-bug-12810.patch
+ epatch "${FILESDIR}"/${P}-icq-authorization-empty-nick.patch
+ eautoreconf
+}
+
+src_configure() {
+ # Stabilize things, for your own good
+ strip-flags
+ replace-flags -O? -O2
+
+ local myconf
+
+ if use gadu; then
+ DYNAMIC_PRPLS="${DYNAMIC_PRPLS},gg"
+ myconf="${myconf} --with-gadu-includes=."
+ myconf="${myconf} --with-gadu-libs=."
+ fi
+
+ use silc && DYNAMIC_PRPLS+=",silc"
+ use qq && DYNAMIC_PRPLS+=",qq"
+ use meanwhile && DYNAMIC_PRPLS+=",sametime"
+ use zeroconf && DYNAMIC_PRPLS+=",bonjour"
+ use groupwise && DYNAMIC_PRPLS+=",novell"
+ use zephyr && DYNAMIC_PRPLS+=",zephyr"
+
+ if use gnutls; then
+ einfo "Disabling NSS, using GnuTLS"
+ myconf+=" --enable-nss=no --enable-gnutls=yes"
+ myconf+=" --with-gnutls-includes=/usr/include/gnutls"
+ myconf+=" --with-gnutls-libs=/usr/$(get_libdir)"
+ else
+ einfo "Disabling GnuTLS, using NSS"
+ myconf+=" --enable-gnutls=no --enable-nss=yes"
+ fi
+
+ if use dbus || { use ncurses && use python; }; then
+ myconf+=" --with-python=$(PYTHON)"
+ else
+ myconf+=" --without-python"
+ fi
+
+ econf \
+ --disable-silent-rules \
+ $(use_enable ncurses consoleui) \
+ $(use_enable gtk gtkui) \
+ $(use_enable gtk sm) \
+ $(use gtk || use_enable nls) \
+ $(use gtk && echo "--enable-nls") \
+ $(use gtk && use_enable startup-notification) \
+ $(use gtk && use_enable xscreensaver screensaver) \
+ $(use gtk && use_enable prediction cap) \
+ $(use gtk && use_enable eds gevolution) \
+ $(use gtk && use_enable spell gtkspell) \
+ $(use_enable perl) \
+ $(use_enable tk) \
+ $(use_enable tcl) \
+ $(use_enable debug) \
+ $(use_enable dbus) \
+ $(use_enable meanwhile) \
+ $(use_enable gstreamer) \
+ $(use_enable gstreamer farsight) \
+ $(use_enable gstreamer vv) \
+ $(use_enable sasl cyrus-sasl ) \
+ $(use_enable doc doxygen) \
+ $(use_enable networkmanager nm) \
+ $(use_enable zeroconf avahi) \
+ $(use_enable idn) \
+ --with-system-ssl-certs="/etc/ssl/certs/" \
+ --with-dynamic-prpls="${DYNAMIC_PRPLS}" \
+ --disable-mono \
+ --x-includes=/usr/include/X11 \
+ ${myconf}
+ #$(use_enable mono) \
+}
+
+src_install() {
+ gnome2_src_install
+ if use gtk; then
+ # Fix tray pathes for kde-3.5, e16 (x11-wm/enlightenment) and other
+ # implementations that are not complient with new hicolor theme yet, #323355
+ local pixmapdir
+ for d in 16 22 32 48; do
+ pixmapdir=${D}/usr/share/pixmaps/pidgin/tray/hicolor/${d}x${d}/actions
+ mkdir "${pixmapdir}" || die
+ pushd "${pixmapdir}" >/dev/null || die
+ for f in ../status/*; do
+ ln -s ${f} || die
+ done
+ popd >/dev/null
+ done
+ fi
+ use perl && fixlocalpod
+
+ find "${D}" -type f -name '*.la' -exec rm -rf '{}' '+' || die "la removal failed"
+}