diff options
author | Peter Volkov <pva@gentoo.org> | 2010-10-29 09:59:46 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2010-10-29 09:59:46 +0000 |
commit | be0464a5962a20492bf859f3b24dbca4c8f59759 (patch) | |
tree | b84a24e9f9e5dc2b10f65dd36f3d88ac88b49665 /net-im | |
parent | updated from private overlay; revbump (diff) | |
download | gentoo-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/ChangeLog | 12 | ||||
-rw-r--r-- | net-im/pidgin/files/pidgin-2.7.4-bonjour-crash.patch | 23 | ||||
-rw-r--r-- | net-im/pidgin/files/pidgin-2.7.4-icq-authorization-empty-nick.patch | 79 | ||||
-rw-r--r-- | net-im/pidgin/files/pidgin-2.7.4-icq-html-regression.patch | 21 | ||||
-rw-r--r-- | net-im/pidgin/files/pidgin-2.7.4-missing-break-bug-12810.patch | 22 | ||||
-rw-r--r-- | net-im/pidgin/pidgin-2.7.4-r1.ebuild | 220 |
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" +} |