/pidgin/main: c4ebf4d738f9: Pull changes from ssh://[email protected]...

Mark Doliner <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: c4ebf4d738f9cde5f5e20191f2dcc87697c7fd17
Author:	 Mark Doliner <[email protected]>
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://[email protected]/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 >[email protected] \
+	|| rm -f [email protected]
+	$(AM_V_at)if test -f [email protected]; then \
+		if ! diff $@ [email protected] > /dev/null; then \
+			mv [email protected] $@; \
+		else \
+			rm [email protected]; \
+		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;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.