Hello community, here is the log from the commit of package purple-facebook for openSUSE:Factory checked in at 2017-04-14 13:41:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/purple-facebook (Old) and /work/SRC/openSUSE:Factory/.purple-facebook.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "purple-facebook" Fri Apr 14 13:41:59 2017 rev:2 rq:487671 version:0.9.3 Changes: -------- --- /work/SRC/openSUSE:Factory/purple-facebook/purple-facebook.changes 2017-02-03 18:56:49.322387325 +0100 +++ /work/SRC/openSUSE:Factory/.purple-facebook.new/purple-facebook.changes 2017-04-14 13:42:01.118948274 +0200 @@ -1,0 +2,19 @@ +Thu Mar 30 13:34:59 UTC 2017 - [email protected] + +- Update to version 0.9.3 (changes since 0.9.0): + * This is now the minimum required version. It fixes connection + errors after facebook discontinued support for old versions of + facebook messenger for android. While most of the protocol + implementation was already above that version, there was a + subtle change that broke fetching of sync_sequence_id, and the + previously empty MQTT user agent string is now considered an + old version too. + * Set the MQTT user agent to look like Orca-Android 38.0.0.22.155 + Fixes errors when trying to send messages. + * Use the new ThreadListQuery hash for seq id only, not for + thread queries. + * Fixes groupchat join errors. + * Send orca-formatted user agent for all HTTP requests too. Fixes + "Failed to parse thread information" errors when joining channels. + +------------------------------------------------------------------- Old: ---- purple-facebook-0.9.0-c9b74a765767.tar.gz New: ---- purple-facebook-0.9.3-c9b74a765767.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ purple-facebook.spec ++++++ --- /var/tmp/diff_new_pack.puZOO7/_old 2017-04-14 13:42:02.490754447 +0200 +++ /var/tmp/diff_new_pack.puZOO7/_new 2017-04-14 13:42:02.494753882 +0200 @@ -18,7 +18,7 @@ %define _rev c9b74a765767 Name: purple-facebook -Version: 0.9.0 +Version: 0.9.3 Release: 0 Summary: Facebook protocol plugin for libpurple License: GPL-2.0+ ++++++ purple-facebook-0.9.0-c9b74a765767.tar.gz -> purple-facebook-0.9.3-c9b74a765767.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/Makefile.mingw new/purple-facebook-0.9.3-c9b74a765767/Makefile.mingw --- old/purple-facebook-0.9.0-c9b74a765767/Makefile.mingw 2016-11-21 14:37:22.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/Makefile.mingw 2017-03-30 07:27:57.000000000 +0200 @@ -1,4 +1,4 @@ -PLUGIN_VERSION = 0.9.0-$(shell cat VERSION) +PLUGIN_VERSION = 0.9.3-$(shell cat VERSION) PURPLE_VERSION = 2.10.11 TREE_TOP = ../../../.. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/configure new/purple-facebook-0.9.3-c9b74a765767/configure --- old/purple-facebook-0.9.0-c9b74a765767/configure 2016-11-21 14:37:31.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/configure 2017-03-30 07:29:18.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for purple-facebook 0.9.0-c9b74a765767. +# Generated by GNU Autoconf 2.69 for purple-facebook 0.9.3-c9b74a765767. # # Report bugs to <https://github.com/dequis/purple-facebook/issues>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='purple-facebook' PACKAGE_TARNAME='purple-facebook' -PACKAGE_VERSION='0.9.0-c9b74a765767' -PACKAGE_STRING='purple-facebook 0.9.0-c9b74a765767' +PACKAGE_VERSION='0.9.3-c9b74a765767' +PACKAGE_STRING='purple-facebook 0.9.3-c9b74a765767' PACKAGE_BUGREPORT='https://github.com/dequis/purple-facebook/issues' PACKAGE_URL='https://github.com/dequis/purple-facebook' @@ -1340,7 +1340,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures purple-facebook 0.9.0-c9b74a765767 to adapt to many kinds of systems. +\`configure' configures purple-facebook 0.9.3-c9b74a765767 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1410,7 +1410,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of purple-facebook 0.9.0-c9b74a765767:";; + short | recursive ) echo "Configuration of purple-facebook 0.9.3-c9b74a765767:";; esac cat <<\_ACEOF @@ -1539,7 +1539,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -purple-facebook configure 0.9.0-c9b74a765767 +purple-facebook configure 0.9.3-c9b74a765767 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1817,7 +1817,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by purple-facebook $as_me 0.9.0-c9b74a765767, which was +It was created by purple-facebook $as_me 0.9.3-c9b74a765767, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2682,7 +2682,7 @@ # Define the identity of the package. PACKAGE='purple-facebook' - VERSION='0.9.0-c9b74a765767' + VERSION='0.9.3-c9b74a765767' cat >>confdefs.h <<_ACEOF @@ -13004,7 +13004,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by purple-facebook $as_me 0.9.0-c9b74a765767, which was +This file was extended by purple-facebook $as_me 0.9.3-c9b74a765767, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13062,7 +13062,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -purple-facebook config.status 0.9.0-c9b74a765767 +purple-facebook config.status 0.9.3-c9b74a765767 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/configure.ac new/purple-facebook-0.9.3-c9b74a765767/configure.ac --- old/purple-facebook-0.9.0-c9b74a765767/configure.ac 2016-11-21 14:37:22.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/configure.ac 2017-03-30 07:28:03.000000000 +0200 @@ -17,7 +17,7 @@ AC_INIT( [purple-facebook], - m4_join([-], [0.9.0], m4_esyscmd_s([cat VERSION])), + m4_join([-], [0.9.3], m4_esyscmd_s([cat VERSION])), [https://github.com/dequis/purple-facebook/issues], [purple-facebook], [https://github.com/dequis/purple-facebook], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/patches/09-thread-query-hash.patch new/purple-facebook-0.9.3-c9b74a765767/patches/09-thread-query-hash.patch --- old/purple-facebook-0.9.0-c9b74a765767/patches/09-thread-query-hash.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/patches/09-thread-query-hash.patch 2017-03-29 11:17:48.000000000 +0200 @@ -0,0 +1,11 @@ +--- a/libpurple/protocols/facebook/api.h 2017-03-29 06:14:14.773605683 -0300 ++++ b/libpurple/protocols/facebook/api.h 2017-03-29 06:13:43.207565647 -0300 +@@ -260,7 +260,7 @@ + * 17: profile_pic_medium_size + * 18: profile_pic_small_size + */ +-#define FB_API_QUERY_THREADS 10153919752026729 ++#define FB_API_QUERY_THREADS 10155268192741729 + + /** + * FB_API_QUERY_XMA: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/patches/10-mqtt-agent.patch new/purple-facebook-0.9.3-c9b74a765767/patches/10-mqtt-agent.patch --- old/purple-facebook-0.9.0-c9b74a765767/patches/10-mqtt-agent.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/patches/10-mqtt-agent.patch 2017-03-29 14:56:21.000000000 +0200 @@ -0,0 +1,35 @@ +--- a/libpurple/protocols/facebook/api.c 2017-03-29 09:51:52.990185503 -0300 ++++ b/libpurple/protocols/facebook/api.c 2017-03-29 09:53:37.107663870 -0300 +@@ -885,7 +885,7 @@ + + /* Write the information string */ + fb_thrift_write_field(thft, FB_THRIFT_TYPE_STRING, 2, 1); +- fb_thrift_write_str(thft, ""); ++ fb_thrift_write_str(thft, FB_API_MQTT_AGENT); + + /* Write the UNKNOWN ("cp"?) */ + fb_thrift_write_field(thft, FB_THRIFT_TYPE_I64, 3, 2); +--- a/libpurple/protocols/facebook/api.h 2017-03-29 09:51:52.990185503 -0300 ++++ b/libpurple/protocols/facebook/api.h 2017-03-29 09:54:02.357053584 -0300 +@@ -98,6 +98,21 @@ + #define FB_API_AGENT "Facebook plugin / Purple / 0.9" + + /** ++ * FB_API_MQTT_AGENT ++ * ++ * The client information string sent in the MQTT CONNECT message ++ * ++ * We announce ourselves as compatible with Orca-Android 38.0 since that's the ++ * closest version to the last major protocol update. Some parts use older ++ * features, some parts use newer ones. ++ * ++ * Fun fact: this version sends old-style MQIsdp CONNECT messages for the first ++ * connection, with JSON payloads instead of compressed thrift. ++ */ ++ ++#define FB_API_MQTT_AGENT FB_API_AGENT " [FBAN/Orca-Android;FBAV/38.0.0.22.155;FBBV/14477681]" ++ ++/** + * FB_API_URL_ATTACH: + * + * The URL for attachment URL requests. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/patches/11-fix-thread-list-query.patch new/purple-facebook-0.9.3-c9b74a765767/patches/11-fix-thread-list-query.patch --- old/purple-facebook-0.9.0-c9b74a765767/patches/11-fix-thread-list-query.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/patches/11-fix-thread-list-query.patch 2017-03-29 15:00:54.000000000 +0200 @@ -0,0 +1,40 @@ +--- a/libpurple/protocols/facebook/api.c 2017-03-29 09:55:50.024456518 -0300 ++++ b/libpurple/protocols/facebook/api.c 2017-03-29 09:59:36.546399711 -0300 +@@ -802,6 +802,7 @@ + case FB_API_QUERY_THREAD: + name = "ThreadQuery"; + break; ++ case FB_API_QUERY_SEQ_ID: + case FB_API_QUERY_THREADS: + name = "ThreadListQuery"; + break; +@@ -1089,7 +1090,7 @@ + if (priv->sid == 0) { + bldr = fb_json_bldr_new(JSON_NODE_OBJECT); + fb_json_bldr_add_str(bldr, "1", "0"); +- fb_api_http_query(api, FB_API_QUERY_THREADS, bldr, ++ fb_api_http_query(api, FB_API_QUERY_SEQ_ID, bldr, + fb_api_cb_seqid); + } else { + fb_api_connect_queue(api); +--- a/libpurple/protocols/facebook/api.h 2017-03-29 09:55:50.024456518 -0300 ++++ b/libpurple/protocols/facebook/api.h 2017-03-29 09:57:34.278827392 -0300 +@@ -275,7 +275,17 @@ + * 17: profile_pic_medium_size + * 18: profile_pic_small_size + */ +-#define FB_API_QUERY_THREADS 10155268192741729 ++#define FB_API_QUERY_THREADS 10153919752026729 ++ ++/** ++ * FB_API_QUERY_SEQ_ID: ++ * ++ * A variant of ThreadListQuery with sequence ID ++ * ++ * TODO: parameters. ++ */ ++ ++#define FB_API_QUERY_SEQ_ID 10155268192741729 + + /** + * FB_API_QUERY_XMA: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/patches/12-http-agent.patch new/purple-facebook-0.9.3-c9b74a765767/patches/12-http-agent.patch --- old/purple-facebook-0.9.0-c9b74a765767/patches/12-http-agent.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/patches/12-http-agent.patch 2017-03-30 07:26:49.000000000 +0200 @@ -0,0 +1,41 @@ +--- a/libpurple/protocols/facebook/api.h 2017-03-30 02:23:36.028335349 -0300 ++++ b/libpurple/protocols/facebook/api.h 2017-03-30 02:24:46.796992132 -0300 +@@ -91,11 +91,28 @@ + #define FB_API_SECRET "374e60f8b9bb6b8cbb30f78030438895" + + /** ++ * FB_ORCA_AGENT ++ * ++ * The part of the user agent that looks like the official client, since the ++ * server started checking this. ++ * ++ * We announce ourselves as compatible with Orca-Android 38.0 since that's the ++ * closest version to the last major protocol update. Some parts use older ++ * features, some parts use newer ones. ++ * ++ * Fun fact: this version sends old-style MQIsdp CONNECT messages for the first ++ * connection, with JSON payloads instead of compressed thrift. ++ * ++ */ ++ ++#define FB_ORCA_AGENT "[FBAN/Orca-Android;FBAV/38.0.0.22.155;FBBV/14477681]" ++ ++/** + * FB_API_AGENT: + * + * The HTTP User-Agent header. + */ +-#define FB_API_AGENT "Facebook plugin / Purple / 0.9" ++#define FB_API_AGENT "Facebook plugin / Purple / 0.9.3 " FB_ORCA_AGENT + + /** + * FB_API_MQTT_AGENT +@@ -110,7 +127,7 @@ + * connection, with JSON payloads instead of compressed thrift. + */ + +-#define FB_API_MQTT_AGENT FB_API_AGENT " [FBAN/Orca-Android;FBAV/38.0.0.22.155;FBBV/14477681]" ++#define FB_API_MQTT_AGENT FB_API_AGENT + + /** + * FB_API_URL_ATTACH: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/pidgin/libpurple/protocols/facebook/api.c new/purple-facebook-0.9.3-c9b74a765767/pidgin/libpurple/protocols/facebook/api.c --- old/purple-facebook-0.9.0-c9b74a765767/pidgin/libpurple/protocols/facebook/api.c 2016-11-21 14:32:44.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/pidgin/libpurple/protocols/facebook/api.c 2017-03-29 14:59:36.000000000 +0200 @@ -802,6 +802,7 @@ case FB_API_QUERY_THREAD: name = "ThreadQuery"; break; + case FB_API_QUERY_SEQ_ID: case FB_API_QUERY_THREADS: name = "ThreadListQuery"; break; @@ -885,7 +886,7 @@ /* Write the information string */ fb_thrift_write_field(thft, FB_THRIFT_TYPE_STRING, 2, 1); - fb_thrift_write_str(thft, ""); + fb_thrift_write_str(thft, FB_API_MQTT_AGENT); /* Write the UNKNOWN ("cp"?) */ fb_thrift_write_field(thft, FB_THRIFT_TYPE_I64, 3, 2); @@ -1089,7 +1090,7 @@ if (priv->sid == 0) { bldr = fb_json_bldr_new(JSON_NODE_OBJECT); fb_json_bldr_add_str(bldr, "1", "0"); - fb_api_http_query(api, FB_API_QUERY_THREADS, bldr, + fb_api_http_query(api, FB_API_QUERY_SEQ_ID, bldr, fb_api_cb_seqid); } else { fb_api_connect_queue(api); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/purple-facebook-0.9.0-c9b74a765767/pidgin/libpurple/protocols/facebook/api.h new/purple-facebook-0.9.3-c9b74a765767/pidgin/libpurple/protocols/facebook/api.h --- old/purple-facebook-0.9.0-c9b74a765767/pidgin/libpurple/protocols/facebook/api.h 2016-11-21 14:32:44.000000000 +0100 +++ new/purple-facebook-0.9.3-c9b74a765767/pidgin/libpurple/protocols/facebook/api.h 2017-03-30 07:24:46.000000000 +0200 @@ -91,11 +91,43 @@ #define FB_API_SECRET "374e60f8b9bb6b8cbb30f78030438895" /** + * FB_ORCA_AGENT + * + * The part of the user agent that looks like the official client, since the + * server started checking this. + * + * We announce ourselves as compatible with Orca-Android 38.0 since that's the + * closest version to the last major protocol update. Some parts use older + * features, some parts use newer ones. + * + * Fun fact: this version sends old-style MQIsdp CONNECT messages for the first + * connection, with JSON payloads instead of compressed thrift. + * + */ + +#define FB_ORCA_AGENT "[FBAN/Orca-Android;FBAV/38.0.0.22.155;FBBV/14477681]" + +/** * FB_API_AGENT: * * The HTTP User-Agent header. */ -#define FB_API_AGENT "Facebook plugin / Purple / 0.9" +#define FB_API_AGENT "Facebook plugin / Purple / 0.9.3 " FB_ORCA_AGENT + +/** + * FB_API_MQTT_AGENT + * + * The client information string sent in the MQTT CONNECT message + * + * We announce ourselves as compatible with Orca-Android 38.0 since that's the + * closest version to the last major protocol update. Some parts use older + * features, some parts use newer ones. + * + * Fun fact: this version sends old-style MQIsdp CONNECT messages for the first + * connection, with JSON payloads instead of compressed thrift. + */ + +#define FB_API_MQTT_AGENT FB_API_AGENT /** * FB_API_URL_ATTACH: @@ -263,6 +295,16 @@ #define FB_API_QUERY_THREADS 10153919752026729 /** + * FB_API_QUERY_SEQ_ID: + * + * A variant of ThreadListQuery with sequence ID + * + * TODO: parameters. + */ + +#define FB_API_QUERY_SEQ_ID 10155268192741729 + +/** * FB_API_QUERY_XMA: * * The query hash for the `XMAQuery`.
