changeset 29942:eafb928fe614

propagate from branch 'im.pidgin.pidgin.mxit' (head ad23bba01aa6026230a0aa76ea2e27d0dfb5c106) to branch 'im.pidgin.pidgin' (head 54b2ac9fc179bd46065882041bbaa7b4b6bafce6)
author John Bailey <rekkanoryo@rekkanoryo.org>
date Thu, 13 May 2010 22:51:00 +0000
parents 129f973c38b5 (diff) 478a75d3100f (current diff)
children 859bb4ab3efe 4463cd2aba2d
files
diffstat 23 files changed, 119 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Thu May 13 18:38:52 2010 +0000
+++ b/COPYRIGHT	Thu May 13 22:51:00 2010 +0000
@@ -118,6 +118,7 @@
 Jeramey Crawford
 Michael Culbertson
 Steven Danna
+Simon Danner
 Chris Davies
 Josh Davis
 Martijn Dekker
--- a/ChangeLog	Thu May 13 18:38:52 2010 +0000
+++ b/ChangeLog	Thu May 13 22:51:00 2010 +0000
@@ -1,6 +1,14 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.7.0 (??/??/????):
+version 2.7.1 (??/??/????):
+	Bonjour:
+	* Fix a crash on disconnect.
+
+	MSN:
+	* Fix unnecessary bandwidth consumption for buddy icon requests when
+	  buddies have capital letters in their passport addresses.
+
+version 2.7.0 (05/12/2010):
 	General:
 	* Changed GTK+ minimum version requirement to 2.10.0.
 	* Changed GLib minimum version requirement to 2.12.0.
@@ -81,6 +89,7 @@
 	* Support for version 9 of the MSN protocol has been removed.  This
 	  version is no longer supported on the servers.
 	* Support file transfer thumbnails (previews) for images.
+	* Fix CVE-2010-1624 (custom emoticon remote crash).
 
 	XMPP:
 	* Direct messages to a specific resource only upon receipt of a message
--- a/ChangeLog.API	Thu May 13 18:38:52 2010 +0000
+++ b/ChangeLog.API	Thu May 13 22:51:00 2010 +0000
@@ -1,6 +1,8 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.7.0 (??/??/????):
+version 2.7.1 (??/??/????):
+
+version 2.7.0 (05/12/2010):
 	libpurple:
 		Added:
 		* Account signals (see account-signals.dox); useful for D-Bus
--- a/ChangeLog.win32	Thu May 13 18:38:52 2010 +0000
+++ b/ChangeLog.win32	Thu May 13 22:51:00 2010 +0000
@@ -1,4 +1,8 @@
-version 2.7.0 (??/??/????):
+version 2.7.1 (??/??/????):
+	* Fix a regression introduced in 2.7.0 that caused Window Flashing not
+	  to work.
+
+version 2.7.0 (05/12/2010):
 	* Updated GTK+ to 2.16.6
 	* Private GTK+ Runtime now used (GTK+ Installer no longer supported)
 	* Minimum required GTK+ version increased to 2.14.7
--- a/NEWS	Thu May 13 18:38:52 2010 +0000
+++ b/NEWS	Thu May 13 22:51:00 2010 +0000
@@ -2,6 +2,31 @@
 
 Our development blog is available at: http://planet.pidgin.im
 
+2.7.0 (05/12/2010):
+	John: We FINALLY got the ICQ X-Status stuff merged in!  And a few other
+	patches that have been sitting on Trac forever.  Couple that with some
+	new features and we have an excellent release for all of you!
+
+	Marcus: Finally time for a new release, seems like it took
+	quite a while this time.  But then again, there are some new features
+	in there, like file transfer preview (thumbnails) support (only on MSN
+	so far), plus a lot of bug fixes.  Enjoy!
+
+	Paul: Yay, a new release!  I don't think I added very much useful to
+	this release, other than fixing a paste bug from Chrome (no weird
+	characters appended to the end of your URI).  Enjoy!
+
+	Jorge: This is my first NEWS!  I'm not sure I added something nice
+	to this release.  I know it took a lot of time to bring this one
+	out, however I'm really excited by this release.  I hope everyone
+	likes the new features this release brings.
+
+	Elliott: This release took so long, I had to go check the ChangeLog
+	just to see what happened.  I doubt many people will notice, but we
+	dropped support for many old things, like GTK+<2.10 and MSNP9.  In more
+	exciting news, we have file transfer previews on MSN, and support for
+	setting moods on ICQ and XMPP (which has been waiting forever.)
+
 2.6.6 (02/18/2010):
 	Mark: This release includes some great little changes and fixes a few
 	security-related bugs.  See the ChangeLog for details.
--- a/configure.ac	Thu May 13 18:38:52 2010 +0000
+++ b/configure.ac	Thu May 13 22:51:00 2010 +0000
@@ -46,7 +46,7 @@
 m4_define([purple_lt_current], [7])
 m4_define([purple_major_version], [2])
 m4_define([purple_minor_version], [7])
-m4_define([purple_micro_version], [0])
+m4_define([purple_micro_version], [1])
 m4_define([purple_version_suffix], [devel])
 m4_define([purple_version],
           [purple_major_version.purple_minor_version.purple_micro_version])
@@ -55,7 +55,7 @@
 m4_define([gnt_lt_current], [7])
 m4_define([gnt_major_version], [2])
 m4_define([gnt_minor_version], [7])
-m4_define([gnt_micro_version], [0])
+m4_define([gnt_micro_version], [1])
 m4_define([gnt_version_suffix], [devel])
 m4_define([gnt_version],
           [gnt_major_version.gnt_minor_version.gnt_micro_version])
--- a/libpurple/gconf/Makefile.am	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/gconf/Makefile.am	Thu May 13 22:51:00 2010 +0000
@@ -2,17 +2,17 @@
 
 EXTRA_DIST = purple.schemas.in
 
-if GCONF_SCHEMAS_INSTALL
-
 if INSTALL_I18N
 schema_in_files = purple.schemas.in
 schema_DATA = $(schema_in_files:.schemas.in=.schemas)
 @INTLTOOL_SCHEMAS_RULE@
-endif #INSTALL_I18N
 
+if GCONF_SCHEMAS_INSTALL
 install-data-local:
 	GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(schema_DATA) 2>&1 | \
 		grep -v "^WARNING: failed to install schema" | grep -v "^Attached schema" 1>&2
 else
 install-data-local:
 endif #GCONF_SCHEMAS_INSTALL
+
+endif #INSTALL_I18N
--- a/libpurple/protocols/bonjour/bonjour.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/bonjour/bonjour.c	Thu May 13 22:51:00 2010 +0000
@@ -70,7 +70,6 @@
 			buddy = (PurpleBuddy *) bnode;
 			if (purple_buddy_get_account(buddy) != account)
 				continue;
-			purple_prpl_got_user_status(account, purple_buddy_get_name(buddy), "offline", NULL);
 			purple_account_remove_buddy(account, buddy, NULL);
 			purple_blist_remove_buddy(buddy);
 		}
@@ -172,7 +171,9 @@
 		g_free(bd->jabber_data);
 	}
 
-	/* Delete the bonjour group */
+	/* Delete the bonjour group
+	 * (purple_blist_remove_group will bail out if the group isn't empty)
+	 */
 	if (bonjour_group != NULL)
 		purple_blist_remove_group(bonjour_group);
 
--- a/libpurple/protocols/bonjour/jabber.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/bonjour/jabber.c	Thu May 13 22:51:00 2010 +0000
@@ -1184,7 +1184,7 @@
 		buddies = purple_find_buddies(jdata->account, NULL);
 		for (l = buddies; l; l = l->next) {
 			BonjourBuddy *bb = purple_buddy_get_protocol_data((PurpleBuddy*) l->data);
-			if (bb != NULL) {
+			if (bb && bb->conversation) {
 				/* Any ongoing connection attempt is cancelled
 				 * by _purple_connection_destroy */
 				bb->conversation->connect_data = NULL;
--- a/libpurple/protocols/gg/Makefile.am	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/gg/Makefile.am	Thu May 13 22:51:00 2010 +0000
@@ -9,6 +9,7 @@
 	lib/http.c \
 	lib/libgadu.c \
 	lib/libgadu-config.h \
+	lib/libgadu-internal.h \
 	lib/libgadu.h \
 	lib/obsolete.c \
 	lib/protocol.h \
@@ -30,6 +31,7 @@
 	lib/http.c \
 	lib/libgadu.c \
 	lib/libgadu-config.h \
+	lib/libgadu-internal.h \
 	lib/libgadu.h \
 	lib/obsolete.c \
 	lib/protocol.h \
--- a/libpurple/protocols/gg/lib/common.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/gg/lib/common.c	Thu May 13 22:51:00 2010 +0000
@@ -101,7 +101,7 @@
  * \param format Format wiadomości (zgodny z \c printf)
  * \param ap Lista argumentów (zgodna z \c printf)
  */
-static void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap)
+void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap)
 {
 	if (gg_debug_handler_session)
 		(*gg_debug_handler_session)(sess, level, format, ap);
--- a/libpurple/protocols/gg/lib/libgadu-internal.h	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/gg/lib/libgadu-internal.h	Thu May 13 22:51:00 2010 +0000
@@ -26,5 +26,6 @@
 char *gg_cp_to_utf8(const char *b);
 char *gg_utf8_to_cp(const char *b);
 int gg_pubdir50_handle_reply_sess(struct gg_session *sess, struct gg_event *e, const char *packet, int length);
+void gg_debug_common(struct gg_session *sess, int level, const char *format, va_list ap);
 
 #endif /* LIBGADU_INTERNAL_H */
--- a/libpurple/protocols/gg/lib/libgadu.h	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/gg/lib/libgadu.h	Thu May 13 22:51:00 2010 +0000
@@ -1245,8 +1245,8 @@
 struct gg_http *gg_change_passwd3(uin_t uin, const char *passwd, const char *newpasswd, const char *qa, int async) GG_DEPRECATED;
 
 int gg_resolve(int *fd, int *pid, const char *hostname) GG_DEPRECATED;
+int gg_resolve_pthread(int *fd, void **resolver, const char *hostname) GG_DEPRECATED;
 void gg_resolve_pthread_cleanup(void *arg, int kill) GG_DEPRECATED;
-int gg_resolve_pthread(int *fd, void **resolver, const char *hostname) GG_DEPRECATED;
 
 struct gg_change_info_request {
 	char *first_name;
--- a/libpurple/protocols/jabber/message.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/jabber/message.c	Thu May 13 22:51:00 2010 +0000
@@ -75,12 +75,8 @@
 	jbr = jabber_buddy_find_resource(jb, jid->resource);
 
 	if(!jm->xhtml && !jm->body) {
-		if (jbr) {
-			if (jm->chat_state != JM_STATE_NONE)
-				jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED;
-			else
-				jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED;
-		}
+		if (jbr && jm->chat_state != JM_STATE_NONE)
+			jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED;
 
 		if(JM_STATE_COMPOSING == jm->chat_state) {
 			serv_got_typing(gc, jm->from, 0, PURPLE_TYPING);
@@ -142,10 +138,13 @@
 		}
 
 		if(jbr) {
-			if (jm->chat_state != JM_STATE_NONE)
-				jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED;
-			else
-				jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED;
+			/* Treat SUPPORTED as a terminal with no escape :) */
+			if (jbr->chat_states != JABBER_CHAT_STATES_SUPPORTED) {
+				if (jm->chat_state != JM_STATE_NONE)
+					jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED;
+				else
+					jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED;
+			}
 
 			if(jbr->thread_id)
 				g_free(jbr->thread_id);
@@ -1250,7 +1249,14 @@
 
 	g_free(resource);
 
-	if (!jbr || (jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED))
+	/* We know this entity doesn't support chat states */
+	if (jbr && jbr->chat_states == JABBER_CHAT_STATES_UNSUPPORTED)
+		return 0;
+
+	/* *If* we don't have presence /and/ the buddy can't see our
+	 * presence, don't send typing notifications.
+	 */
+	if (!jbr && !(jb->subscription & JABBER_SUB_FROM))
 		return 0;
 
 	/* TODO: figure out threading */
--- a/libpurple/protocols/msn/slp.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/msn/slp.c	Thu May 13 22:51:00 2010 +0000
@@ -938,6 +938,8 @@
 	conv = swboard->conv;
 
 	body = msn_message_get_bin_data(msg, &body_len);
+	if (!body || !body_len)
+		return;
 	body_str = g_strndup(body, body_len);
 
 	/* MSN Messenger 7 may send more than one MSNObject in a single message...
--- a/libpurple/protocols/msn/slplink.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/protocols/msn/slplink.c	Thu May 13 22:51:00 2010 +0000
@@ -383,6 +383,7 @@
 msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
 {
 	MsnMessage *msg;
+	const char *passport;
 
 	slpmsg->msg = msg = msn_message_new_msnslp();
 
@@ -421,7 +422,8 @@
 
 	msg->msnslp_header.total_size = slpmsg->size;
 
-	msn_message_set_attr(msg, "P2P-Dest", slplink->remote_user);
+	passport = purple_normalize(slplink->session->account, slplink->remote_user);
+	msn_message_set_attr(msg, "P2P-Dest", passport);
 
 	msg->ack_cb = msg_ack;
 	msg->nak_cb = msg_nak;
--- a/libpurple/tests/check_libpurple.c	Thu May 13 18:38:52 2010 +0000
+++ b/libpurple/tests/check_libpurple.c	Thu May 13 22:51:00 2010 +0000
@@ -37,16 +37,22 @@
 
 static void
 purple_check_init(void) {
-	gchar *home_dir;
-
 	g_type_init();
 
 	purple_eventloop_set_ui_ops(&eventloop_ui_ops);
 
+#if 0
 	/* build our fake home directory */
-	home_dir = g_build_path(G_DIR_SEPARATOR_S, BUILDDIR, "libpurple", "tests", "home", NULL);
-	purple_util_set_user_dir(home_dir);
-	g_free(home_dir);
+	{
+		gchar *home_dir;
+
+		home_dir = g_build_path(G_DIR_SEPARATOR_S, BUILDDIR, "libpurple", "tests", "home", NULL);
+		purple_util_set_user_dir(home_dir);
+		g_free(home_dir);
+	}
+#else
+	purple_util_set_user_dir("/dev/null");
+#endif
 
 	purple_core_init("check");
 }
--- a/pidgin.spec.in	Thu May 13 18:38:52 2010 +0000
+++ b/pidgin.spec.in	Thu May 13 22:51:00 2010 +0000
@@ -415,7 +415,7 @@
 %doc PLUGIN_HOWTO
 
 %dir %{_includedir}/libpurple
-%{_includedir}/libpurple/*.h
+%{_includedir}/libpurple/*
 %{_libdir}/libpurple.so
 %{_libdir}/pkgconfig/purple.pc
 %{_datadir}/aclocal/purple.m4
@@ -470,6 +470,9 @@
 %endif
 
 %changelog
+* Thu May 13 2010 Stu Tomlinson <stu@nosnilmot.com>
+- Include all libpurple headers in libpurple-devel
+
 * Sat Sep 05 2009 Stu Tomlinson <stu@nosnilmot.com>
 - Disable Voice & Video unless --with vv is used
 - Add BuildRequires for libidn-devel
--- a/pidgin/Makefile.am	Thu May 13 18:38:52 2010 +0000
+++ b/pidgin/Makefile.am	Thu May 13 22:51:00 2010 +0000
@@ -25,6 +25,7 @@
 		win32/nsis/pixmaps/pidgin-header.bmp \
 		win32/nsis/pixmaps/pidgin-intro.bmp \
 		win32/nsis/pixmaps/pidgin-install.ico \
+		win32/nsis/available.lst \
 		win32/nsis/pidgin-installer.nsi \
 		win32/nsis/pidgin-plugin.nsh \
 		win32/nsis/langmacros.nsh \
--- a/pidgin/win32/gtkwin32dep.c	Thu May 13 18:38:52 2010 +0000
+++ b/pidgin/win32/gtkwin32dep.c	Thu May 13 22:51:00 2010 +0000
@@ -327,6 +327,7 @@
 		info.dwFlags = FLASHW_ALL | FLASHW_TIMER;
 	} else
 		info.dwFlags = FLASHW_STOP;
+	FlashWindowEx(&info);
 	info.dwTimeout = 0;
 
 }
--- a/po/ChangeLog	Thu May 13 18:38:52 2010 +0000
+++ b/po/ChangeLog	Thu May 13 22:51:00 2010 +0000
@@ -1,5 +1,7 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
+version 2.7.1
+
 version 2.7.0
 	* Afrikaans translation updated (Friedel Wolff)
 	* Albanian translation updated (Besnik Bleta)
--- a/po/ca.po	Thu May 13 18:38:52 2010 +0000
+++ b/po/ca.po	Thu May 13 22:51:00 2010 +0000
@@ -33,8 +33,8 @@
 msgstr ""
 "Project-Id-Version: Pidgin\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-06 07:36+0200\n"
-"PO-Revision-Date: 2010-05-08 16:11+0200\n"
+"POT-Creation-Date: 2010-05-11 22:08+0200\n"
+"PO-Revision-Date: 2010-05-11 22:10+0200\n"
 "Last-Translator: Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n"
 "Language-Team: Catalan <tradgnome@softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -12215,6 +12215,9 @@
 msgid "Arabic"
 msgstr "Àrab"
 
+msgid "Assamese"
+msgstr "Assamès"
+
 msgid "Belarusian Latin"
 msgstr "Bielorús (llatí)"
 
@@ -12342,6 +12345,9 @@
 msgid "Macedonian"
 msgstr "Macedoni"
 
+msgid "Malayalam"
+msgstr "Malaiàlam"
+
 msgid "Mongolian"
 msgstr "Mongol"
 
--- a/po/de.po	Thu May 13 18:38:52 2010 +0000
+++ b/po/de.po	Thu May 13 22:51:00 2010 +0000
@@ -11,8 +11,8 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-09 16:11+0200\n"
-"PO-Revision-Date: 2010-05-09 16:05+0200\n"
+"POT-Creation-Date: 2010-05-11 17:11+0200\n"
+"PO-Revision-Date: 2010-05-11 17:11+0200\n"
 "Last-Translator: Björn Voigt <bjoern@cs.tu-berlin.de>\n"
 "Language-Team: Deutsch <de@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -12260,6 +12260,9 @@
 msgid "Arabic"
 msgstr "Arabisch"
 
+msgid "Assamese"
+msgstr "Assamesisch"
+
 msgid "Belarusian Latin"
 msgstr "Weißrussisch (Latin)"
 
@@ -12267,10 +12270,10 @@
 msgstr "Bulgarisch"
 
 msgid "Bengali"
-msgstr "Bengalisch"
+msgstr "Bengali"
 
 msgid "Bengali-India"
-msgstr "Bengalisch"
+msgstr "Bengali-Indien"
 
 msgid "Bosnian"
 msgstr "Bosnisch"
@@ -12386,6 +12389,9 @@
 msgid "Macedonian"
 msgstr "Makedonisch"
 
+msgid "Malayalam"
+msgstr "Malayalam"
+
 msgid "Mongolian"
 msgstr "Mongolisch"
 
@@ -12426,7 +12432,7 @@
 msgstr "Portugiesisch (Brasilien)"
 
 msgid "Pashto"
-msgstr "Paschtunisch"
+msgstr "Paschtu"
 
 msgid "Romanian"
 msgstr "Rumänisch"
@@ -12456,7 +12462,7 @@
 msgstr "Swahili"
 
 msgid "Tamil"
-msgstr "Tamilisch"
+msgstr "Tamil"
 
 msgid "Telugu"
 msgstr "Telugu"