Merge 33548 from release-2.x.y

Sun, 13 Jan 2013 15:17:57 -0600

author
Richard Laager <rlaager@pidgin.im>
date
Sun, 13 Jan 2013 15:17:57 -0600
changeset 33602
6014ed8b3a2b
parent 33601
910e26960232 (current diff)
parent 33548
3d2454150223 (diff)
child 33603
5bf94c596f83

Merge 33548 from release-2.x.y

COPYRIGHT file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
configure.ac file | annotate | diff | comparison | revisions
libpurple/protocols/irc/irc.h file | annotate | diff | comparison | revisions
libpurple/protocols/irc/msgs.c file | annotate | diff | comparison | revisions
libpurple/protocols/irc/parse.c file | annotate | diff | comparison | revisions
libpurple/protocols/yahoo/libymsg.h file | annotate | diff | comparison | revisions
libpurple/protocols/yahoo/yahoo_aliases.c file | annotate | diff | comparison | revisions
libpurple/upnp.c file | annotate | diff | comparison | revisions
pidgin/gtkconv.c file | annotate | diff | comparison | revisions
pidgin/gtkutils.c file | annotate | diff | comparison | revisions
pidgin/pidginstock.c file | annotate | diff | comparison | revisions
pidgin/plugins/notify.c file | annotate | diff | comparison | revisions
--- a/COPYRIGHT	Sun Jan 13 15:09:02 2013 -0600
+++ b/COPYRIGHT	Sun Jan 13 15:17:57 2013 -0600
@@ -17,6 +17,7 @@
 
 Copyright (C) 1998-2012 by the following:
 
+Mark
 Saleem Abdulrasool
 Jakub Adam
 Dave Ahlswede
@@ -73,6 +74,7 @@
 Éric Boumaour
 Chris Boyle
 Stanislav Brabec
+Bartosz Brachaczek
 Quentin Brandon
 Derrick J Brashear
 Mauro Sérgio Ferreira Brasil
@@ -175,6 +177,7 @@
 Gavan Fantom (gavan)
 Leonardo Fernandes
 David Fiander
+Michael Fiedler
 Ryan Flegel
 Rob Flynn <gaim@robflynn.com>
 Rob Foehl (rwf)
@@ -459,6 +462,7 @@
 Thanumalayan S.
 Jonathan Sailor
 Elliott Sales de Andrade
+Catalin Salgau
 Tomasz Sałaciński <tsalacinski@gmail.com>
 Pradyumna Sampath
 Arvind Samptur
@@ -511,6 +515,7 @@
 Lex Spoon
 Chris Stafford
 Kevin Stange
+Ferdinand Stehle
 Joshua Stein
 Jakub Steiner
 Richard Stellingwerff
--- a/ChangeLog	Sun Jan 13 15:09:02 2013 -0600
+++ b/ChangeLog	Sun Jan 13 15:17:57 2013 -0600
@@ -60,6 +60,21 @@
 	* Fix a crash at startup with large contact list. Avatar support for
 	  buddies will be disabled till 3.0.0. (#15226, #14305)
 
+	General:
+	* The configure script will now exit with status 1 when specifying
+	  invalid protocol plugins using the --with-static-prpls and
+	  --with-dynamic-prpls arguments. (Michael Fiedler) (#15316)
+
+	libpurple:
+	* Don't link directly to libgcrypt when building with GnuTLS support.
+	  (Bartosz Brachaczek) (#15329)
+	* Fix UPNP mappings on routers that return empty <URLBase/> elements
+	  in their response. (Ferdinand Stehle) (#15373)
+
+	Pidgin:
+	* Make Pidgin more friendly to non-X11 GTK+, such as MacPorts' +no_x11
+	  variant.
+
 	Gadu-Gadu:
 	* Fix a crash at startup with large contact list. Avatar support for
 	  buddies will be disabled till 3.0.0. (#15226, #14305)
@@ -67,6 +82,7 @@
 	IRC:
 	* Support for SASL authentication.  (Thijs Alkemade, Andy Spencer)
 	  (#13270)
+	* Print topic setter information at channel join. (#13317)
 
 	MSN:
 	* Fix a crash when removing a user before its icon is loaded. (Mark
@@ -75,10 +91,15 @@
 	Yahoo!:
 	* Fix a double-free in profile/picture loading code. (Mihai Serban)
 	  (#15053)
+	* Fix retrieving server-side buddy aliases. (Catalin Salgu) (#15381)
 
 	Plugins:
 	* The Voice/Video Settings plugin supports using the sndio GStreamer
 	  backends. (Brad Smith) (#14414)
+	* Fix a crash in the Contact Availability Detection plugin. (Mark)
+	  (#15327)
+	* Make the Message Notification plugin more friendly to non-X11 GTK+,
+	  such as MacPorts' +no_x11 variant.
 
 	Windows-Specific Changes:
 	* Compile with secure flags (#15290)
@@ -86,18 +107,18 @@
 	  (#15277)
 	* Updates to a number of dependencies, some of which have security
 	  related fixes. (#14571, #15285, #15286)
-	 * ATK 1.32.0-2
-	 * Cyrus SASL 2.1.25
-	 * expat 2.1.0-1
-	 * freetype 2.4.10-1
-	 * gettext 0.18.1.1-2
-	 * Glib 2.28.8-1
-	 * libpng 1.4.12-1
-	 * libxml2 2.9.0-1
-	 * NSS 3.13.6 and NSPR 4.9.2
-	 * Pango 1.29.4-1
-	 * SILC 1.1.10
-	 * zlib 1.2.5-2
+		* ATK 1.32.0-2
+		* Cyrus SASL 2.1.25
+		* expat 2.1.0-1
+		* freetype 2.4.10-1
+		* gettext 0.18.1.1-2
+		* Glib 2.28.8-1
+		* libpng 1.4.12-1
+		* libxml2 2.9.0-1
+		* NSS 3.13.6 and NSPR 4.9.2
+		* Pango 1.29.4-1
+		* SILC 1.1.10
+		* zlib 1.2.5-2
 	* Patch libmeanwhile (sametime library) to fix crash. (Jonathan Rice)
 	  (#12637)
 
--- a/configure.ac	Sun Jan 13 15:09:02 2013 -0600
+++ b/configure.ac	Sun Jan 13 15:17:57 2013 -0600
@@ -1326,7 +1326,7 @@
 		simple)		static_simple=yes ;;
 		yahoo)		static_yahoo=yes ;;
 		zephyr)		static_zephyr=yes ;;
-		*)			echo "Invalid static protocol $i!!" ; exit ;;
+		*)			echo "Invalid static protocol $i!!" ; exit 1 ;;
 	esac
 done
 AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes")
@@ -1380,7 +1380,7 @@
 		simple)		dynamic_simple=yes ;;
 		yahoo)		dynamic_yahoo=yes ;;
 		zephyr)		dynamic_zephyr=yes ;;
-		*)			echo "Invalid dynamic protocol $i!!" ; exit ;;
+		*)			echo "Invalid dynamic protocol $i!!" ; exit 1 ;;
 	esac
 done
 
@@ -1908,7 +1908,7 @@
 
 		AC_CACHE_CHECK([for GnuTLS libraries], ac_cv_gnutls_libs,
 		[
-			LIBS="$LIBS $with_gnutls_libs -lgnutls -lgcrypt"
+			LIBS="$LIBS $with_gnutls_libs -lgnutls"
 			AC_TRY_LINK_FUNC(gnutls_init, ac_cv_gnutls_libs="yes", ac_cv_gnutls_libs="no")
 			LIBS="$LIBS_save"
 		])
@@ -1917,7 +1917,7 @@
 			AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have GnuTLS])
 			AC_DEFINE(HAVE_SSL)
 			msg_gnutls="GnuTLS"
-			GNUTLS_LIBS="$with_gnutls_libs -lgnutls -lgcrypt"
+			GNUTLS_LIBS="$with_gnutls_libs -lgnutls"
 
 			enable_gnutls="yes"
 		else
--- a/libpurple/protocols/irc/irc.h	Sun Jan 13 15:09:02 2013 -0600
+++ b/libpurple/protocols/irc/irc.h	Sun Jan 13 15:17:57 2013 -0600
@@ -174,6 +174,7 @@
 void irc_msg_regonly(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_time(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_topic(struct irc_conn *irc, const char *name, const char *from, char **args);
+void irc_msg_topicinfo(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_unavailable(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args);
 void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
--- a/libpurple/protocols/irc/msgs.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/libpurple/protocols/irc/msgs.c	Sun Jan 13 15:17:57 2013 -0600
@@ -642,6 +642,38 @@
 	g_free(topic);
 }
 
+void irc_msg_topicinfo(struct irc_conn *irc, const char *name, const char *from, char **args)
+{
+	PurpleConversation *convo;
+	struct tm *tm;
+	time_t t;
+	char *msg, *timestamp, *datestamp;
+	
+	if (!args || !args[1] || !args[2] || !args[3])
+		return;
+
+	convo = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, args[1], irc->account);
+	if (!convo) {
+		purple_debug(PURPLE_DEBUG_ERROR, "irc", "Got topic info for %s, which doesn't exist\n", args[1]);
+		return;
+	}
+
+	t = (time_t)atol(args[3]);
+	if (t == 0) {
+		purple_debug(PURPLE_DEBUG_ERROR, "irc", "Got apparently nonsensical topic timestamp %s\n", args[3]);
+		return;
+	}
+	tm = localtime(&t);
+
+	timestamp = g_strdup(purple_time_format(tm));
+	datestamp = g_strdup(purple_date_format_short(tm));
+	msg = g_strdup_printf("Topic for %s set by %s at %s on %s", args[1], args[2], timestamp, datestamp);
+	purple_conv_chat_write(PURPLE_CONV_CHAT(convo), "", msg, PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LINKIFY, time(NULL));
+	g_free(timestamp);
+	g_free(datestamp);
+	g_free(msg);
+}
+
 void irc_msg_unknown(struct irc_conn *irc, const char *name, const char *from, char **args)
 {
 	PurpleConnection *gc = purple_account_get_connection(irc->account);
--- a/libpurple/protocols/irc/parse.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/libpurple/protocols/irc/parse.c	Sun Jan 13 15:17:57 2013 -0600
@@ -73,7 +73,7 @@
 	{ "324", "ncv:", irc_msg_chanmode },	/* Channel modes		*/
 	{ "331", "nc:",	irc_msg_topic },	/* No channel topic		*/
 	{ "332", "nc:", irc_msg_topic },	/* Channel topic		*/
-	{ "333", "*", irc_msg_ignore },		/* Topic setter stuff		*/
+	{ "333", "ncvv", irc_msg_topicinfo },	/* Topic setter stuff		*/
 	{ "352", "ncvvvnv:", irc_msg_who },	/* Channel WHO			*/
 	{ "353", "nvc:", irc_msg_names },	/* Names list			*/
 	{ "366", "nc:", irc_msg_names },	/* End of names			*/
--- a/libpurple/protocols/yahoo/libymsg.h	Sun Jan 13 15:09:02 2013 -0600
+++ b/libpurple/protocols/yahoo/libymsg.h	Sun Jan 13 15:17:57 2013 -0600
@@ -96,6 +96,7 @@
 #define YAHOOJP_CLIENT_VERSION "9.0.0.1727"
 
 #define YAHOO_CLIENT_USERAGENT "Mozilla/5.0"
+#define YAHOO_CLIENT_USERAGENT_ALIAS "Mozilla/4.0 (compatible; MSIE 5.5)"
 
 /* Index into attention types list. */
 #define YAHOO_BUZZ 0
--- a/libpurple/upnp.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/libpurple/upnp.c	Sun Jan 13 15:17:57 2013 -0600
@@ -259,7 +259,9 @@
 	/* get the baseURL of the device */
 	if((baseURLNode = xmlnode_get_child(xmlRootNode, "URLBase")) != NULL) {
 		baseURL = xmlnode_get_data(baseURLNode);
-	} else {
+	}
+	/* fixes upnp-descriptions with empty urlbase-element */
+	if(baseURL == NULL){
 		baseURL = g_strdup(httpURL);
 	}
 
--- a/pidgin/gtkutils.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/pidgin/gtkutils.c	Sun Jan 13 15:17:57 2013 -0600
@@ -28,9 +28,7 @@
 #include "internal.h"
 #include "pidgin.h"
 
-#ifndef _WIN32
-# include <X11/Xlib.h>
-#else
+#ifdef _WIN32
 # ifdef small
 #  undef small
 # endif
--- a/pidgin/pidginstock.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/pidgin/pidginstock.c	Sun Jan 13 15:17:57 2013 -0600
@@ -67,7 +67,7 @@
 	{ PIDGIN_STOCK_IGNORE,          NULL,      GTK_STOCK_DIALOG_ERROR     },
 	{ PIDGIN_STOCK_INVITE,          NULL,      GTK_STOCK_JUMP_TO          },
 	{ PIDGIN_STOCK_MODIFY,          NULL,      GTK_STOCK_PREFERENCES      },
-	{ PIDGIN_STOCK_ADD,             NULL,	   GTK_STOCK_ADD			  },
+	{ PIDGIN_STOCK_ADD,             NULL,	   GTK_STOCK_ADD              },
 	{ PIDGIN_STOCK_PAUSE,           NULL,      GTK_STOCK_MEDIA_PAUSE      },
 	{ PIDGIN_STOCK_POUNCE,          NULL,      GTK_STOCK_REDO             },
 	{ PIDGIN_STOCK_OPEN_MAIL,       NULL,      GTK_STOCK_JUMP_TO          },
@@ -80,17 +80,17 @@
 
 static const GtkStockItem stock_items[] =
 {
-	{ PIDGIN_STOCK_ALIAS,               N_("_Alias"),      0, 0, NULL },
-	{ PIDGIN_STOCK_CHAT,                N_("_Join"),       0, 0, NULL },
-	{ PIDGIN_STOCK_CLOSE_TABS,          N_("Close _tabs"), 0, 0, NULL },
-	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"),         0, 0, NULL },
-	{ PIDGIN_STOCK_TOOLBAR_USER_INFO,   N_("_Get Info"),   0, 0, NULL },
-	{ PIDGIN_STOCK_INVITE,              N_("_Invite"),     0, 0, NULL },
-	{ PIDGIN_STOCK_MODIFY,              N_("_Modify..."),  0, 0, NULL },
-	{ PIDGIN_STOCK_ADD,                 N_("_Add..."),     0, 0, NULL },
-	{ PIDGIN_STOCK_OPEN_MAIL,           N_("_Open Mail"),  0, 0, NULL },
-	{ PIDGIN_STOCK_PAUSE,               N_("_Pause"),      0, 0, NULL },
-	{ PIDGIN_STOCK_EDIT,                N_("_Edit"),       0, 0, NULL }
+	{ PIDGIN_STOCK_ALIAS,               N_("_Alias"),      0, 0, PACKAGE },
+	{ PIDGIN_STOCK_CHAT,                N_("_Join"),       0, 0, PACKAGE },
+	{ PIDGIN_STOCK_CLOSE_TABS,          N_("Close _tabs"), 0, 0, PACKAGE },
+	{ PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, N_("I_M"),         0, 0, PACKAGE },
+	{ PIDGIN_STOCK_TOOLBAR_USER_INFO,   N_("_Get Info"),   0, 0, PACKAGE },
+	{ PIDGIN_STOCK_INVITE,              N_("_Invite"),     0, 0, PACKAGE },
+	{ PIDGIN_STOCK_MODIFY,              N_("_Modify..."),  0, 0, PACKAGE },
+	{ PIDGIN_STOCK_ADD,                 N_("_Add..."),     0, 0, PACKAGE },
+	{ PIDGIN_STOCK_OPEN_MAIL,           N_("_Open Mail"),  0, 0, PACKAGE },
+	{ PIDGIN_STOCK_PAUSE,               N_("_Pause"),      0, 0, PACKAGE },
+	{ PIDGIN_STOCK_EDIT,                N_("_Edit"),       0, 0, PACKAGE }
 };
 
 typedef struct {
--- a/pidgin/plugins/cap/cap.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/pidgin/plugins/cap/cap.c	Sun Jan 13 15:17:57 2013 -0600
@@ -43,7 +43,7 @@
 	int threshold = purple_prefs_get_int("/plugins/gtk/cap/threshold");
 	int min_minute = (current_minute - threshold) % 1440;
 	int max_minute = (current_minute + threshold) % 1440;
-	char *sql;
+	char *sql, sta_id = NULL;
 	sqlite3_stmt *stmt = NULL;
 	const char *tail = NULL;
 	int rc;
@@ -94,7 +94,9 @@
 	sqlite3_free(sql);
 
 
-	if(strcmp(purple_status_get_id(get_status_for(buddy)), "offline") == 0) {
+	sta_id = purple_status_get_id(get_status_for(buddy));
+
+	if(sta_id && !strcmp(sta_id, "offline")) {
 		/* This is kind of stupid, change it. */
 		if(prediction == 1.0f)
 			prediction = 0.0f;
--- a/pidgin/plugins/notify.c	Sun Jan 13 15:09:02 2013 -0600
+++ b/pidgin/plugins/notify.c	Sun Jan 13 15:17:57 2013 -0600
@@ -96,16 +96,10 @@
 #include "gtkplugin.h"
 #include "gtkutils.h"
 
-#ifndef _WIN32
-#include <X11/Xatom.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#endif
-
 #define NOTIFY_PLUGIN_ID "gtk-x11-notify"
 
 static PurplePlugin *my_plugin = NULL;
-#ifndef _WIN32
+#ifdef HAVE_X11
 static GdkAtom _Cardinal = GDK_NONE;
 static GdkAtom _PurpleUnseenCount = GDK_NONE;
 #endif
@@ -525,7 +519,7 @@
 static void
 handle_count_xprop(PidginWindow *purplewin)
 {
-#ifndef _WIN32
+#ifdef HAVE_X11
 	guint count;
 	GtkWidget *window;
 	GdkWindow *gdkwin;
@@ -757,7 +751,7 @@
 	g_signal_connect(G_OBJECT(toggle), "toggled",
 	                 G_CALLBACK(method_toggle_cb), "method_count");
 
-#ifndef _WIN32
+#ifdef HAVE_X11
 	/* Count xprop method button */
 	toggle = gtk_check_button_new_with_mnemonic(_("Insert count of new message into _X property"));
 	gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);

mercurial