/pidgin/main: 8059ab4da709: Merge GSoC 2015 Facebook branch

Jorge Villase?or <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 8059ab4da709d116ee4d96d91441b383729e69d0
Author:	 Jorge Villase?or <[email protected]>
Date:	 2015-10-18 11:28 -0700
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/8059ab4da709

Description:

Merge GSoC 2015 Facebook branch

This branch brings the new implementation of Facebook prpl to
our 3.0 release.

diffstat:

 .hgignore                                          |     1 +
 COPYRIGHT                                          |     1 +
 configure.ac                                       |    11 +-
 doc/reference/Makefile.am                          |     2 +-
 doc/reference/protocols/Makefile.am                |     2 +
 doc/reference/protocols/facebook/Makefile.am       |   126 +
 doc/reference/protocols/facebook/facebook-docs.xml |    32 +
 doc/reference/protocols/version.xml.in             |     1 +
 libpurple/glibcompat.h                             |    47 +
 libpurple/http.c                                   |     7 +
 libpurple/http.h                                   |    10 +
 libpurple/protocols/Makefile.am                    |     2 +-
 libpurple/protocols/Makefile.mingw                 |     2 +-
 libpurple/protocols/facebook/Makefile.am           |    66 +
 libpurple/protocols/facebook/Makefile.mingw        |   101 +
 libpurple/protocols/facebook/api.c                 |  3074 ++++++++++++++++++++
 libpurple/protocols/facebook/api.h                 |   849 +++++
 libpurple/protocols/facebook/data.c                |   588 +++
 libpurple/protocols/facebook/data.h                |   398 ++
 libpurple/protocols/facebook/facebook.c            |  1563 ++++++++++
 libpurple/protocols/facebook/facebook.h            |    83 +
 libpurple/protocols/facebook/http.c                |   360 ++
 libpurple/protocols/facebook/http.h                |   292 +
 libpurple/protocols/facebook/id.h                  |   131 +
 libpurple/protocols/facebook/json.c                |   660 ++++
 libpurple/protocols/facebook/json.h                |   517 +++
 libpurple/protocols/facebook/marshaller.list       |     6 +
 libpurple/protocols/facebook/mqtt.c                |  1013 ++++++
 libpurple/protocols/facebook/mqtt.h                |   626 ++++
 libpurple/protocols/facebook/thrift.c              |   706 ++++
 libpurple/protocols/facebook/thrift.h              |   600 +++
 libpurple/protocols/facebook/util.c                |   599 +++
 libpurple/protocols/facebook/util.h                |   344 ++
 libpurple/protocols/jabber/Makefile.am             |     4 -
 libpurple/protocols/jabber/Makefile.mingw          |     2 -
 libpurple/protocols/jabber/facebook.c              |   213 -
 libpurple/protocols/jabber/facebook.h              |    54 -
 libpurple/protocols/jabber/facebook_roster.c       |   135 -
 libpurple/protocols/jabber/facebook_roster.h       |    35 -
 libpurple/protocols/jabber/jabber.c                |    16 +-
 libpurple/protocols/jabber/jabber.h                |     5 -
 libpurple/protocols/jabber/roster.c                |     8 -
 pidgin/plugins/xmppconsole.c                       |     2 +-
 po/POTFILES.in                                     |     2 -
 po/af.po                                           |     3 -
 po/am.po                                           |     3 -
 po/ar.po                                           |     3 -
 po/as.po                                           |     3 -
 po/ast.po                                          |     3 -
 po/az.po                                           |     3 -
 po/[email protected]                                     |     3 -
 po/bg.po                                           |     3 -
 po/bn.po                                           |     3 -
 po/bn_IN.po                                        |     3 -
 po/br.po                                           |     4 -
 po/brx.po                                          |     4 -
 po/bs.po                                           |     3 -
 po/ca.po                                           |     3 -
 po/[email protected]                                  |     3 -
 po/cs.po                                           |     3 -
 po/da.po                                           |     3 -
 po/dz.po                                           |     3 -
 po/el.po                                           |     3 -
 po/en_AU.po                                        |     3 -
 po/en_CA.po                                        |     3 -
 po/en_GB.po                                        |     3 -
 po/eo.po                                           |     3 -
 po/es.po                                           |     9 -
 po/es_AR.po                                        |     4 -
 po/et.po                                           |     3 -
 po/eu.po                                           |     3 -
 po/fa.po                                           |     3 -
 po/fi.po                                           |     3 -
 po/fr.po                                           |     3 -
 po/ga.po                                           |     3 -
 po/gl.po                                           |     3 -
 po/gu.po                                           |     3 -
 po/he.po                                           |     3 -
 po/hi.po                                           |     3 -
 po/hr.po                                           |     3 -
 po/hu.po                                           |     3 -
 po/hy.po                                           |     4 -
 po/id.po                                           |     3 -
 po/it.po                                           |     3 -
 po/ja.po                                           |     3 -
 po/ka.po                                           |     3 -
 po/kk.po                                           |     3 -
 po/km.po                                           |     3 -
 po/kn.po                                           |     3 -
 po/ko.po                                           |     3 -
 po/ks.po                                           |     4 -
 po/ku.po                                           |     3 -
 po/ku_IQ.po                                        |     3 -
 po/lt.po                                           |     3 -
 po/lv.po                                           |     3 -
 po/mai.po                                          |     3 -
 po/mhr.po                                          |     3 -
 po/mk.po                                           |     3 -
 po/ml.po                                           |     3 -
 po/mn.po                                           |     3 -
 po/mr.po                                           |     3 -
 po/ms_MY.po                                        |     4 -
 po/my_MM.po                                        |     3 -
 po/nb.po                                           |     3 -
 po/ne.po                                           |     3 -
 po/nl.po                                           |     3 -
 po/nn.po                                           |     3 -
 po/oc.po                                           |     3 -
 po/or.po                                           |     3 -
 po/pa.po                                           |     3 -
 po/pl.po                                           |    12 -
 po/ps.po                                           |     3 -
 po/pt.po                                           |     3 -
 po/pt_BR.po                                        |     3 -
 po/ro.po                                           |     3 -
 po/ru.po                                           |     3 -
 po/sd.po                                           |     4 -
 po/si.po                                           |     3 -
 po/sk.po                                           |     3 -
 po/sl.po                                           |     3 -
 po/sq.po                                           |     3 -
 po/sr.po                                           |     3 -
 po/[email protected]                                     |     3 -
 po/sv.po                                           |     3 -
 po/sw.po                                           |     3 -
 po/ta.po                                           |     3 -
 po/te.po                                           |     3 -
 po/th.po                                           |     3 -
 po/tr.po                                           |     3 -
 po/tt.po                                           |     3 -
 po/uk.po                                           |     3 -
 po/ur.po                                           |     3 -
 po/uz.po                                           |     4 -
 po/vi.po                                           |     3 -
 po/xh.po                                           |     3 -
 po/zh_CN.po                                        |     3 -
 po/zh_HK.po                                        |     3 -
 po/zh_TW.po                                        |     3 -
 138 files changed, 12818 insertions(+), 783 deletions(-)

diffs (truncated from 15073 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -83,6 +83,7 @@ libpurple/plugins/perl/common/Makefile.o
 libpurple/plugins/perl/common/const-c.inc
 libpurple/plugins/perl/common/const-xs.inc
 libpurple/plugins/perl/common/lib
+libpurple/protocols/facebook/marshal.[ch]
 libpurple/purple-client-bindings.[ch]
 libpurple/purple-client-example
 libpurple/purple.h$
diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -201,6 +201,7 @@ François Gagné
 Andrew Gaul
 Evgueni V. Gavrilov
 Ignacy Gawedzki
+James Geboski
 Georgi Georgiev
 Brian Geppert
 Emanuele Giaquinta
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1414,7 +1414,7 @@ if test "x$STATIC_PRPLS" != "x" -a "x$DY
 fi
 
 if test "x$STATIC_PRPLS" = "xall" ; then
-	STATIC_PRPLS="bonjour gg irc jabber msn mxit novell oscar sametime silc simple yahoo zephyr"
+	STATIC_PRPLS="bonjour facebook gg irc jabber msn mxit novell oscar sametime silc simple yahoo zephyr"
 fi
 if test "x$have_meanwhile" != "xyes" ; then
 	STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/sametime//'`
@@ -1448,6 +1448,7 @@ for i in $STATIC_PRPLS ; do
 
 	case $i in
 		bonjour)	static_bonjour=yes ;;
+		facebook)	static_facebook=yes ;;
 		gg)			static_gg=yes ;;
 		irc)		static_irc=yes ;;
 		jabber)		static_jabber=yes ;;
@@ -1466,6 +1467,7 @@ for i in $STATIC_PRPLS ; do
 	esac
 done
 AM_CONDITIONAL(STATIC_BONJOUR, test "x$static_bonjour" = "xyes")
+AM_CONDITIONAL(STATIC_FACEBOOK, test "x$static_facebook" = "xyes")
 AM_CONDITIONAL(STATIC_GG, test "x$static_gg" = "xyes")
 AM_CONDITIONAL(STATIC_IRC, test "x$static_irc" = "xyes")
 AM_CONDITIONAL(STATIC_JABBER, test "x$static_jabber" = "xyes")
@@ -1486,7 +1488,7 @@ AC_DEFINE_UNQUOTED(STATIC_PROTO_UNLOAD, 
 
 AC_ARG_WITH(dynamic_prpls, [AS_HELP_STRING([--with-dynamic-prpls], [specify which protocols to build dynamically])], [DYNAMIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`])
 if test "x$DYNAMIC_PRPLS" = "xall" ; then
-	DYNAMIC_PRPLS="bonjour gg irc jabber msn mxit novell oscar sametime silc simple yahoo zephyr"
+	DYNAMIC_PRPLS="bonjour facebook gg irc jabber msn mxit novell oscar sametime silc simple yahoo zephyr"
 fi
 if test "x$have_meanwhile" != "xyes"; then
 	DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/sametime//'`
@@ -1504,6 +1506,7 @@ AC_SUBST(DYNAMIC_PRPLS)
 for i in $DYNAMIC_PRPLS ; do
 	case $i in
 		bonjour)	dynamic_bonjour=yes ;;
+		facebook)	dynamic_facebook=yes ;;
 		gg)			dynamic_gg=yes ;;
 		irc)		dynamic_irc=yes ;;
 		jabber)		dynamic_jabber=yes ;;
@@ -2393,6 +2396,9 @@ AC_CONFIG_FILES([Makefile
 		   doc/reference/finch/version.xml
 		   doc/reference/libpurple/Makefile
 		   doc/reference/libpurple/version.xml
+		   doc/reference/protocols/Makefile
+		   doc/reference/protocols/facebook/Makefile
+		   doc/reference/protocols/version.xml
 		   doc/reference/pidgin/Makefile
 		   doc/reference/pidgin/version.xml
 		   m4macros/Makefile
@@ -2426,6 +2432,7 @@ AC_CONFIG_FILES([Makefile
 		   libpurple/Makefile
 		   libpurple/protocols/Makefile
 		   libpurple/protocols/bonjour/Makefile
+		   libpurple/protocols/facebook/Makefile
 		   libpurple/protocols/gg/Makefile
 		   libpurple/protocols/irc/Makefile
 		   libpurple/protocols/jabber/Makefile
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
--- a/doc/reference/Makefile.am
+++ b/doc/reference/Makefile.am
@@ -6,4 +6,4 @@ if ENABLE_GNT
 GNT_DIR=finch
 endif
 
-SUBDIRS = libpurple $(GNT_DIR) $(GTK_DIR)
+SUBDIRS = libpurple protocols $(GNT_DIR) $(GTK_DIR)
diff --git a/doc/reference/protocols/Makefile.am b/doc/reference/protocols/Makefile.am
new file mode 100644
--- /dev/null
+++ b/doc/reference/protocols/Makefile.am
@@ -0,0 +1,2 @@
+EXTRA_DIST = version.xml.in
+SUBDIRS = facebook
diff --git a/doc/reference/protocols/facebook/Makefile.am b/doc/reference/protocols/facebook/Makefile.am
new file mode 100644
--- /dev/null
+++ b/doc/reference/protocols/facebook/Makefile.am
@@ -0,0 +1,126 @@
+## Process this file with automake to produce Makefile.in
+
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE=facebook
+
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
+# The top-level XML file (SGML in the past). You can change this if you want to.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=../../../gtk
+DOC_SOURCE_DIR=$(top_srcdir)/libpurple/protocols/$(DOC_MODULE)
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS=
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+SCAN_OPTIONS=\
+	--deprecated-guards="PURPLE_DISABLE_DEPRECATED" \
+	--rebuild-types \
+	--rebuild-sections
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
+MKDB_OPTIONS=--xml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-mktmpl
+# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+MKTMPL_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS=
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS=
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB=$(top_srcdir)/libpurple/protocols/$(DOC_MODULE)/*.h
+CFILE_GLOB=$(top_srcdir)/libpurple/protocols/$(DOC_MODULE)/*.c
+
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+# TODO: those files are not properly scanned when building out-of-tree
+EXTRA_HFILES =
+
+# Header files or dirs to ignore when scanning. Use base file/dir names
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
+IGNORE_HFILES=marshal.h
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES=
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = ../version.xml
+
+# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
+# These files must be listed here *and* in content_files
+# e.g. expand_content_files=running.sgml
+expand_content_files=
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+GTKDOC_CFLAGS = \
+	-I$(top_srcdir) \
+	-I$(top_srcdir)/libpurple/protocols/$(DOC_MODULE) \
+	$(GLIB_CFLAGS) \
+	$(GPLUGIN_CFLAGS) \
+	$(DEBUG_CFLAGS) \
+	$(JSON_CFLAGS) \
+	$(ZLIB_CFLAGS) \
+	$(INTROSPECTION_CFLAGS)
+
+GTKDOC_LIBS = \
+	$(top_builddir)/libpurple/protocols/$(DOC_MODULE)/lib$(DOC_MODULE).la \
+	$(STATIC_LINK_LIBS) \
+	$(GLIB_LIBS) \
+	$(GPLUGIN_LIBS) \
+	$(INTLLIBS) \
+	$(JSON_LIBS) \
+	$(ZLIB_LIBS) \
+	$(INTROSPECTION_LIBS)
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+include $(top_srcdir)/gtk-doc.make
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST += version.xml.in
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt
+
+dist-hook: html-build.stamp
+
+# Comment this out if you want 'make check' to test you doc status
+# and run some sanity checks
+if ENABLE_GTK_DOC
+TESTS_ENVIRONMENT = \
+  DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
+  SRCDIR=$(abs_srcdir)
+#TODO: fix and enable
+#TESTS = $(GTKDOC_CHECK)
+endif
diff --git a/doc/reference/protocols/facebook/facebook-docs.xml b/doc/reference/protocols/facebook/facebook-docs.xml
new file mode 100644
--- /dev/null
+++ b/doc/reference/protocols/facebook/facebook-docs.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+
+<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
+<!ENTITY version SYSTEM "../version.xml">
+]>
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+  <bookinfo>
+    <title>Facebook Protocol Reference Manual</title>
+    <abstract>
+      <title>Facebook Plugin &version;</title>
+      <para>
+        The Facebook Messenger protocol plugin for libpurple.
+      </para>
+    </abstract>
+  </bookinfo>
+
+  <reference label="II">
+    <title>API Reference</title>
+
+    <xi:include href="xml/api.xml" />
+    <xi:include href="xml/data.xml" />
+    <xi:include href="xml/facebook.xml" />
+    <xi:include href="xml/http.xml" />
+    <xi:include href="xml/id.xml" />
+    <xi:include href="xml/json.xml" />
+    <xi:include href="xml/mqtt.xml" />
+    <xi:include href="xml/thrift.xml" />
+    <xi:include href="xml/util.xml" />
+  </reference>
+</book>
diff --git a/doc/reference/protocols/version.xml.in b/doc/reference/protocols/version.xml.in
new file mode 100644
--- /dev/null
+++ b/doc/reference/protocols/version.xml.in
@@ -0,0 +1,1 @@
+@PURPLE_VERSION@
diff --git a/libpurple/glibcompat.h b/libpurple/glibcompat.h
--- a/libpurple/glibcompat.h
+++ b/libpurple/glibcompat.h
@@ -76,6 +76,23 @@ static inline gboolean g_close(gint fd, 
 	g_signal_handlers_disconnect_matched((instance), G_SIGNAL_MATCH_DATA, \
 			0, 0, NULL, NULL, (data))
 
+static inline GByteArray * g_byte_array_new_take(guint8 *data, gsize len)
+{
+	GByteArray *array;
+
+	array = g_byte_array_new();
+	g_byte_array_append(array, data, len);
+	g_free(data);
+
+	return array;
+}
+
+static inline void g_queue_free_full(GQueue *queue, GDestroyNotify free_func)
+{
+	g_queue_foreach(queue, (GFunc)free_func, NULL);
+	g_queue_free(queue);
+}
+
 static inline GThread * g_thread_try_new(const gchar *name, GThreadFunc func,

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
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.