/pidgin/main: c4ebf4d738f9: Pull changes from ssh://hg at hg.pidgin...

Mark Doliner mark at kingant.net
Wed Oct 22 10:20:29 EDT 2014


Changeset: c4ebf4d738f9cde5f5e20191f2dcc87697c7fd17
Author:	 Mark Doliner <mark at kingant.net>
Date:	 2014-06-17 23:14 -0700
Branch:	 release-2.x.y
URL: https://hg.pidgin.im/pidgin/main/rev/c4ebf4d738f9

Description:

Pull changes from ssh://hg@hg.pidgin.im/pidgin/main
Easy manual merge: Only conflicts were in ChangeLog.

diffstat:

 COPYRIGHT                                         |      4 +
 ChangeLog                                         |      5 +-
 Makefile.am                                       |     24 +-
 configure.ac                                      |    124 +-
 finch/finch.c                                     |     11 +-
 finch/gntmedia.c                                  |      4 +-
 finch/gntnotify.c                                 |     49 +-
 finch/gntprefs.c                                  |      6 +-
 finch/gntrequest.c                                |      7 +-
 finch/libgnt/gntbox.c                             |      4 +-
 finch/libgnt/gntcheckbox.c                        |      2 +-
 finch/libgnt/gntcombobox.c                        |      2 +-
 finch/libgnt/gntentry.c                           |      2 +-
 finch/libgnt/gntmain.c                            |      3 +
 finch/libgnt/gnttextview.c                        |     12 +-
 finch/libgnt/gntwidget.c                          |      2 +
 finch/libgnt/gntwm.c                              |     20 +-
 finch/libgnt/gntws.c                              |      2 +
 finch/libgnt/wms/irssi.c                          |      2 +-
 finch/plugins/gnttinyurl.c                        |      2 +-
 finch/plugins/lastlog.c                           |      2 +-
 libpurple/account.c                               |      6 +-
 libpurple/blist.c                                 |      3 +-
 libpurple/core.c                                  |      3 +
 libpurple/dnsquery.c                              |      4 +-
 libpurple/dnssrv.c                                |     14 +
 libpurple/ft.c                                    |      9 +-
 libpurple/internal.h                              |     38 +
 libpurple/log.c                                   |     64 +-
 libpurple/media/backend-fs2.c                     |     82 +-
 libpurple/mediamanager.c                          |      6 +-
 libpurple/network.c                               |     36 +-
 libpurple/plugins/log_reader.c                    |     47 +-
 libpurple/plugins/perl/common/Certificate.xs      |      1 -
 libpurple/plugins/perl/common/Cipher.xs           |      5 +
 libpurple/plugins/perl/common/module.h            |     15 +
 libpurple/plugins/perl/perl-common.c              |      3 +-
 libpurple/plugins/perl/perl-common.h              |      4 +
 libpurple/plugins/perl/perl.c                     |      3 +
 libpurple/plugins/ssl/ssl-gnutls.c                |     46 +-
 libpurple/plugins/tcl/tcl_glib.c                  |     12 +-
 libpurple/plugins/tcl/tcl_signals.c               |      1 +
 libpurple/protocols/bonjour/bonjour_ft.c          |     11 +-
 libpurple/protocols/bonjour/jabber.c              |     36 +-
 libpurple/protocols/gg/Makefile.am                |     27 +-
 libpurple/protocols/gg/gg.c                       |    110 +-
 libpurple/protocols/gg/gg.h                       |      2 +
 libpurple/protocols/gg/lib/config.h               |      6 +-
 libpurple/protocols/gg/lib/dcc7.c                 |      2 +-
 libpurple/protocols/gg/lib/fileio.h               |      6 +
 libpurple/protocols/gg/lib/handlers.c             |     26 +-
 libpurple/protocols/gg/lib/internal.h             |     28 +-
 libpurple/protocols/gg/lib/libgadu.c              |    160 +-
 libpurple/protocols/gg/lib/libgadu.h              |      2 +-
 libpurple/protocols/gg/lib/resolver.c             |      6 +-
 libpurple/protocols/gg/lib/resolver.h             |      1 +
 libpurple/protocols/irc/dcc_send.c                |      8 +-
 libpurple/protocols/jabber/Makefile.am            |      2 +
 libpurple/protocols/jabber/Makefile.mingw         |      1 +
 libpurple/protocols/jabber/chat.c                 |      3 +-
 libpurple/protocols/jabber/facebook_roster.c      |    135 +
 libpurple/protocols/jabber/facebook_roster.h      |     35 +
 libpurple/protocols/jabber/google/google_roster.c |      7 +-
 libpurple/protocols/jabber/jabber.c               |     10 +-
 libpurple/protocols/jabber/jabber.h               |      5 +
 libpurple/protocols/jabber/jingle/jingle.c        |      8 +-
 libpurple/protocols/jabber/roster.c               |     68 +-
 libpurple/protocols/jabber/roster.h               |      6 +
 libpurple/protocols/jabber/si.c                   |     20 +-
 libpurple/protocols/msn/contact.c                 |      1 +
 libpurple/protocols/msn/msnutils.c                |      7 +-
 libpurple/protocols/mxit/chunk.c                  |      2 +-
 libpurple/protocols/mxit/filexfer.c               |      5 +-
 libpurple/protocols/mxit/http.c                   |      8 +-
 libpurple/protocols/myspace/myspace.c             |      4 +-
 libpurple/protocols/myspace/user.c                |      4 +-
 libpurple/protocols/myspace/zap.c                 |      5 +-
 libpurple/protocols/oscar/family_auth.c           |      3 +-
 libpurple/protocols/oscar/family_bart.c           |     12 +-
 libpurple/protocols/oscar/family_chatnav.c        |      7 +-
 libpurple/protocols/oscar/family_feedbag.c        |      4 +-
 libpurple/protocols/oscar/family_icbm.c           |     11 +-
 libpurple/protocols/oscar/family_locate.c         |      3 +-
 libpurple/protocols/oscar/family_oservice.c       |     12 +-
 libpurple/protocols/oscar/oscar.c                 |     33 +-
 libpurple/protocols/oscar/peer.c                  |      7 +-
 libpurple/protocols/oscar/tlv.c                   |     10 +-
 libpurple/protocols/oscar/userinfo.c              |     23 +-
 libpurple/protocols/sametime/sametime.c           |     43 +-
 libpurple/protocols/silc/buddy.c                  |     12 +-
 libpurple/protocols/silc/ops.c                    |      5 +-
 libpurple/protocols/silc/silc.c                   |      2 +-
 libpurple/protocols/silc/util.c                   |    109 +-
 libpurple/protocols/silc/wb.c                     |      2 -
 libpurple/protocols/simple/simple.c               |     16 +-
 libpurple/protocols/yahoo/libymsg.c               |     33 +-
 libpurple/protocols/yahoo/util.c                  |     17 +-
 libpurple/protocols/yahoo/yahoo_filexfer.c        |     41 +-
 libpurple/protocols/yahoo/yahoo_picture.c         |     10 +-
 libpurple/protocols/yahoo/yahoo_profile.c         |      2 +-
 libpurple/protocols/yahoo/yahoochat.c             |     33 +-
 libpurple/protocols/zephyr/ZOpenPort.c            |     14 +-
 libpurple/protocols/zephyr/ZParseNot.c            |      3 +
 libpurple/protocols/zephyr/ZReadAscii.c           |      7 +-
 libpurple/protocols/zephyr/ZRetSubs.c             |      1 +
 libpurple/protocols/zephyr/Zinternal.c            |     24 +-
 libpurple/protocols/zephyr/zephyr.c               |     53 +-
 libpurple/proxy.c                                 |     51 +-
 libpurple/prpl.h                                  |      5 +
 libpurple/purple-client.c                         |      5 +-
 libpurple/stun.c                                  |      9 +-
 libpurple/tests/check_libpurple.c                 |      3 +
 libpurple/util.c                                  |     69 +-
 libpurple/xmlnode.c                               |      3 +-
 pidgin/Makefile.am                                |      4 -
 pidgin/gtkblist.c                                 |      5 +-
 pidgin/gtkconv.c                                  |      5 +-
 pidgin/gtkdialogs.c                               |     18 +-
 pidgin/gtkimhtml.c                                |      2 +-
 pidgin/gtkmain.c                                  |     12 +-
 pidgin/gtknotify.c                                |      4 +-
 pidgin/gtkprefs.c                                 |     13 +-
 pidgin/gtkrequest.c                               |      4 +-
 pidgin/gtksession.c                               |      5 +-
 pidgin/gtksourceiter.c                            |     17 +-
 pidgin/gtksourceundomanager.c                     |     10 +-
 pidgin/gtkstatusbox.c                             |     10 +-
 pidgin/gtkthemes.c                                |      8 +-
 pidgin/gtkutils.c                                 |      2 +-
 pidgin/plugins/perl/common/GtkIMHtml.xs           |      7 +-
 pidgin/plugins/perl/common/gtkmodule.h            |      4 +
 pidgin/plugins/pidginrc.c                         |      4 +-
 pidgin/plugins/spellchk.c                         |      7 +-
 pidgin/plugins/vvconfig.c                         |      3 +
 po/POTFILES.in                                    |      1 +
 po/brx.po                                         |  19799 ++++++++++++++++++++
 po/es_AR.po                                       |  19799 ++++++++++++++++++++
 po/ks.po                                          |  19799 ++++++++++++++++++++
 po/sd.po                                          |  19799 ++++++++++++++++++++
 po/uz.po                                          |  19770 +++++++++++++++++++
 140 files changed, 100418 insertions(+), 848 deletions(-)

diffs (truncated from 104693 to 300 lines):

diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -145,6 +145,7 @@ Marc Dequènes
 Philip Derrin
 Taso N. Devetzis
 Balwinder Singh Dheeman
+Chandrakant Dhutadmal
 Andrew Dieffenbach
 Finlay Dobbie
 Mark Doliner
@@ -271,9 +272,11 @@ Tomáš Kebert
 John Kelm
 Jochen Kemnade
 Yann Kerherve
+Akmal Khushvakov
 Gordian Klein
 Marten Klencke
 Krzysztof Klinikowski
+KNTRO
 Akuke Kok
 Kir Kolyshkin
 Ivan Komarov
@@ -374,6 +377,7 @@ Richard Nelson
 Dennis Nezic
 Matthew A. Nicholson
 Andreas Nilsson
+Allan Nordhøy
 Henning Norén
 Szilard Novaki
 Novell
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,7 +16,7 @@ version 2.10.10 (?/?/?):
 	* Fix build against Python 3. (Ed Catmur) (#15969)
 
 	Gadu-Gadu:
-	* Updated internal libgadu to version 1.12.0-rc2.
+	* Updated internal libgadu to version 1.12.0.
 
 	Groupwise:
 	* Fix potential remote crash parsing server message that indicates that
@@ -32,6 +32,9 @@ version 2.10.10 (?/?/?):
 	  (Discovered by Yves Younan and Richard Johnson of Sourcefire VRT)
 	  (CVE-2014-NNNN)
 
+	XMPP:
+	* Fix Facebook XMPP roster quirks. (#15041, #15957)
+
 version 2.10.9 (2/2/2014):
 	XMPP:
 	* Fix problems logging into some servers including jabber.org and
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -84,23 +84,29 @@ if ENABLE_GNT
 GNT_DIR=finch
 endif
 
-# This is phony, so that we always try to rebuild it.  If it succeeds
-# in calculating changes, it produces its target; otherwise, its
-# target does not exist.
-.PHONY: package_revision_raw.txt
+# We always try to rebuild all objects that depends on this dummy target.
+.FORCE:
+
 # if both attempts fail, then we need to remove the empty file that >
 # creates, and also make sure that the shell command exits
 # successfully; the rm -f ensures both
-package_revision_raw.txt:
+package_revision_raw.txt: .FORCE
 	$(AM_V_GEN)REAL_BLDDIR=$$PWD/$(top_builddir); \
-	(hg --cwd $(srcdir) id -i --debug) 2>/dev/null >$@ \
-	|| rm -f $@
+	(hg --cwd $(srcdir) id -i --debug) 2>/dev/null >$@.new \
+	|| rm -f $@.new
+	$(AM_V_at)if test -f $@.new; then \
+		if ! diff $@ $@.new > /dev/null; then \
+			mv $@.new $@; \
+		else \
+			rm $@.new; \
+		fi \
+	fi
 package_revision.h: package_revision_raw.txt
 	$(AM_V_GEN)if test -f $<; then \
-	  echo "#define REVISION \"`cat $<`\"" > $@; \
+		echo "#define REVISION \"`cat $<`\"" > $@; \
 	fi
 	$(AM_V_at)if test ! -f $@ -a -f $(srcdir)/$@; then \
-	  cp $(srcdir)/$@ $@; \
+		cp $(srcdir)/$@ $@; \
 	fi
 	$(AM_V_at)test -f $@ || echo "#define REVISION \"unknown\"" > $@
 
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1023,92 +1023,32 @@ elif test "x$silc10client" = "xyes"; the
 fi
 
 dnl #######################################################################
-dnl # Check for Gadu-Gadu client includes and libraries
+dnl # Check for Gadu-Gadu protocol library (libgadu)
 dnl #######################################################################
-AC_ARG_WITH(gadu-includes, [AC_HELP_STRING([--with-gadu-includes=DIR], [compile the Gadu-Gadu plugin against includes in DIR])], [ac_gadu_includes="$withval"], [ac_gadu_includes="no"])
-AC_ARG_WITH(gadu-libs, [AC_HELP_STRING([--with-gadu-libs=DIR], [compile the Gadu-Gadu plugin against the libs in DIR])], [ac_gadu_libs="$withval"], [ac_gadu_libs="no"])
-GADU_CFLAGS=""
-GADU_LIBS=""
-if test -n "$with_gadu_includes" || test -n "$with_gadu_libs"; then
-	gadu_manual_check="yes"
-else
-	gadu_manual_check="no"
-fi
-if test "x$gadu_manual_check" = "xno"; then
-	PKG_CHECK_MODULES(GADU, [libgadu >= 1.11.0], [
-		gadu_includes="yes"
-		gadu_libs="yes"
-	], [
-		gadu_includes="no"
+
+PKG_CHECK_MODULES(LIBGADU, [libgadu >= 1.12.0], [have_libgadu=yes], [have_libgadu=no])
+
+if test "x$have_libgadu" = "xyes"; then
+	AC_CHECK_LIB(gadu, gg_is_gpl_compliant, , [
+		LIBGADU_LIBS=""
+		LIBGADU_CFLAGS=""
+		have_libgadu=no
+		AC_MSG_WARN([
+libgadu is not compatible with the GPL when compiled with OpenSSL support.
+
+To compile against system libgadu, please recompile libgadu using:
+./configure --with-openssl=no
+Then rerun this ./configure
+
+Falling back to using our own copy of libgadu.
+		])
 	])
-else
-	if test "$ac_gadu_includes" != "no"; then
-		GADU_CFLAGS="-I$ac_gadu_includes"
-	fi
-	CPPFLAGS_save="$CPPFLAGS"
-	CPPFLAGS="$CPPFLAGS $GADU_CFLAGS"
-	AC_CHECK_HEADER(libgadu.h, [gadu_includes=yes])
-	CPPFLAGS="$CPPFLAGS_save"
-
-	if test "$ac_gadu_libs" != "no"; then
-		GADU_LIBS="-L$ac_gadu_libs"
-	fi
-	GADU_LIBS="$GADU_LIBS -lgadu"
-	AC_CHECK_LIB(gadu, gg_libgadu_version, [gadu_libs=yes], , $GADU_LIBS)
-fi
-GADU_CFLAGS=`echo $GADU_CFLAGS |$sedpath 's/-Wall//'`
-
-if test "x$gadu_libs" = "xyes"; then
-	AC_MSG_CHECKING(for libgadu GPL compatibility)
-	CPPFLAGS_save="$CPPFLAGS"
-	CPPFLAGS="$CPPFLAGS $GADU_CFLAGS"
-	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[
-#if defined(__GG_LIBGADU_HAVE_OPENSSL) || defined(GG_CONFIG_HAVE_OPENSSL)
-#error "libgadu is not compatible with the GPL when compiled with OpenSSL support."
-#endif
-	]])], [
-		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libgadu.h>]], [[
-#if GG_DEFAULT_PROTOCOL_VERSION < 0x2e
-#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher."
-#endif
-		]])], [
-			AC_MSG_RESULT(yes)
-			AC_DEFINE([HAVE_LIBGADU], [1],
-				[Define to 1 if you have libgadu.])
-		], [
-			AC_MSG_RESULT(no)
-			echo
-			echo
-			echo "Your supplied copy of libgadu is too old."
-			echo "Install version 1.11.0 or newer."
-			echo "Then rerun this ./configure"
-			echo
-			echo "Falling back to using our own copy of libgadu"
-			echo
-			GADU_LIBS=""
-			GADU_CFLAGS=""
-			gadu_libs=no
-		])
-	], [
-		AC_MSG_RESULT(no)
-		echo
-		echo
-		echo "libgadu is not compatible with the GPL when compiled with OpenSSL support."
-		echo "To compile against system libgadu, please recompile libgadu using:"
-		echo "./autogen.sh --disable-libgadu-openssl --disable-static --enable-shared"
-		echo "Then rerun this ./configure"
-		echo
-		echo "Falling back to using our own copy of libgadu"
-		echo
-		GADU_LIBS=""
-		GADU_CFLAGS=""
-		gadu_libs=no
-	])
-	CPPFLAGS="$CPPFLAGS_save"
 fi
 
-AM_CONDITIONAL(USE_INTERNAL_LIBGADU, test "x$gadu_libs" != "xyes")
-if test "x$gadu_libs" != "xyes"; then
+AM_CONDITIONAL(HAVE_LIBGADU, test "x$have_libgadu" = "xyes")
+if test "x$have_libgadu" = "xyes"; then
+	AC_DEFINE(HAVE_LIBGADU, 1, [Linked with external libgadu])
+else
 	AC_CHECK_LIB(gnutls, gnutls_certificate_set_x509_system_trust, [gg_have_gnutls_csxst=yes], [gg_have_gnutls_csxst=no])
 
 	gg_gnutls_sts=""
@@ -1138,12 +1078,9 @@ if test "x$gadu_libs" != "xyes"; then
 	],:)
 fi
 
-if test "x$gadu_libs" = "x"; then
-	gadu_libs=no
-fi
+AC_SUBST(LIBGADU_LIBS)
+AC_SUBST(LIBGADU_CFLAGS)
 
-AC_SUBST(GADU_LIBS)
-AC_SUBST(GADU_CFLAGS)
 
 AC_ARG_ENABLE(distrib,,,enable_distrib=no)
 AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes")
@@ -1371,6 +1308,17 @@ AC_SUBST(CFLAGS)
 
 AC_PATH_PROG(pidginpath, pidgin)
 
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
+	#if !defined(__clang__)
+	#error
+	#endif
+])], have_clang=yes, have_clang=no)
+
+if test "x$have_clang" = "xyes"; then
+	dnl we don't care about it for 2.x.y
+	DEBUG_CFLAGS=`echo $DEBUG_CFLAGS |$sedpath 's/-Wcast-align//'`
+fi
+
 dnl #######################################################################
 dnl # Check for D-Bus libraries
 dnl #######################################################################
@@ -2671,7 +2619,7 @@ fi
 echo Build with Cyrus SASL support. : $enable_cyrus_sasl
 echo Use kerberos 4 with zephyr.... : $kerberos
 echo Use external libzephyr........ : $zephyr
-echo Use external libgadu.......... : $gadu_libs
+echo Use external libgadu.......... : $have_libgadu
 echo Install pixmaps............... : $enable_pixmaps
 echo Old tray icon compatibility... : $enable_traycompat
 echo Install translations.......... : $enable_i18n
diff --git a/finch/finch.c b/finch/finch.c
--- a/finch/finch.c
+++ b/finch/finch.c
@@ -269,7 +269,6 @@ init_libpurple(int argc, char **argv)
 	gboolean opt_version = FALSE;
 	char *opt_config_dir_arg = NULL;
 	gboolean debug_enabled = FALSE;
-	struct stat st;
 
 	struct option long_options[] = {
 		{"config",   required_argument, NULL, 'c'},
@@ -379,8 +378,8 @@ init_libpurple(int argc, char **argv)
 	purple_idle_set_ui_ops(finch_idle_get_ui_ops());
 
 	path = g_build_filename(purple_user_dir(), "plugins", NULL);
-	if (!g_stat(path, &st))
-		g_mkdir(path, S_IRUSR | S_IWUSR | S_IXUSR);
+	if (g_mkdir(path, S_IRUSR | S_IWUSR | S_IXUSR) != 0 && errno != EEXIST)
+		fprintf(stderr, "Couldn't create plugins dir\n");
 	purple_plugins_add_search_path(path);
 	g_free(path);
 
@@ -448,7 +447,13 @@ int main(int argc, char *argv[])
 {
 	signal(SIGPIPE, SIG_IGN);
 
+#if !GLIB_CHECK_VERSION(2, 32, 0)
+	/* GLib threading system is automaticaly initialized since 2.32.
+	 * For earlier versions, it have to be initialized before calling any
+	 * Glib or GTK+ functions.
+	 */
 	g_thread_init(NULL);
+#endif
 
 	g_set_prgname("Finch");
 	g_set_application_name(_("Finch"));
diff --git a/finch/gntmedia.c b/finch/gntmedia.c
--- a/finch/gntmedia.c
+++ b/finch/gntmedia.c
@@ -408,9 +408,9 @@ call_cmd_cb(PurpleConversation *conv, co
 	if (!purple_prpl_initiate_media(account,
 			purple_conversation_get_name(conv),
 			PURPLE_MEDIA_AUDIO))
-		return PURPLE_CMD_STATUS_FAILED;
+		return PURPLE_CMD_RET_FAILED;



More information about the Commits mailing list