/pidgin/main: 3ce95eee429d: Merge in the public updates

Gary Kramlich grim at reaperworld.com
Mon Jun 20 20:10:08 EDT 2016


Changeset: 3ce95eee429d18ccaa77de7371cc8843f4dc8519
Author:	 Gary Kramlich <grim at reaperworld.com>
Date:	 2016-06-18 19:12 -0500
Branch:	 release-2.x.y
URL: https://hg.pidgin.im/pidgin/main/rev/3ce95eee429d

Description:

Merge in the public updates

diffstat:

 ChangeLog                                                        |     30 +-
 ChangeLog.API                                                    |     12 +
 configure.ac                                                     |      6 +-
 libpurple/account.c                                              |     60 +
 libpurple/account.h                                              |     59 +
 libpurple/cmds.c                                                 |     62 +-
 libpurple/cmds.h                                                 |     65 +-
 libpurple/internal.h                                             |      3 -
 libpurple/media.h                                                |      2 +
 libpurple/media/backend-iface.h                                  |      2 +
 libpurple/mediamanager.c                                         |     82 +-
 libpurple/prefs.c                                                |    389 +-
 libpurple/prefs.h                                                |    114 +
 libpurple/protocols/irc/msgs.c                                   |     11 +-
 libpurple/protocols/oscar/Makefile.am                            |      1 +
 libpurple/protocols/oscar/Makefile.mingw                         |      1 +
 libpurple/protocols/oscar/kerberos.c                             |    441 +
 libpurple/protocols/oscar/oscar.c                                |     94 +-
 libpurple/protocols/oscar/oscar.h                                |      7 +-
 libpurple/protocols/oscar/oscarcommon.h                          |      9 +-
 libpurple/util.c                                                 |     18 +-
 libpurple/util.h                                                 |     26 +
 libpurple/win32/global.mak                                       |      2 +-
 pidgin/win32/gtkwin32dep.c                                       |     14 +-
 pidgin/win32/nsis/pidgin-installer.nsi                           |      2 +
 po/POTFILES.in                                                   |      1 +
 po/ar.po                                                         |    377 +-
 po/ast.po                                                        |    109 +-
 po/br.po                                                         |  16068 +++------
 po/ca.po                                                         |    112 +-
 po/cs.po                                                         |    324 +-
 po/de.po                                                         |   3317 +-
 po/el.po                                                         |    196 +-
 po/en_AU.po                                                      |    140 +-
 po/en_GB.po                                                      |    112 +-
 po/es.po                                                         |    308 +-
 po/es_AR.po                                                      |    290 +-
 po/et.po                                                         |    108 +-
 po/fa.po                                                         |    130 +-
 po/fi.po                                                         |    212 +-
 po/ga.po                                                         |    112 +-
 po/gl.po                                                         |   2402 +-
 po/he.po                                                         |    119 +-
 po/hi.po                                                         |    214 +-
 po/hu.po                                                         |    166 +-
 po/hy.po                                                         |   7158 +---
 po/id.po                                                         |    114 +-
 po/import-from-transifex                                         |     85 +
 po/it.po                                                         |    411 +-
 po/ja.po                                                         |    115 +-
 po/ka.po                                                         |    107 +-
 po/km.po                                                         |    109 +-
 po/ku_IQ.po                                                      |    106 +-
 po/lt.po                                                         |    164 +-
 po/lv.po                                                         |   7592 ++--
 po/mai.po                                                        |    111 +-
 po/mr.po                                                         |    112 +-
 po/ms_MY.po                                                      |   7438 +----
 po/my_MM.po                                                      |    112 +-
 po/nb.po                                                         |   3195 +-
 po/ne.po                                                         |   1301 +-
 po/nl.po                                                         |    156 +-
 po/nn.po                                                         |    193 +-
 po/oc.po                                                         |    138 +-
 po/pa.po                                                         |    112 +-
 po/pl.po                                                         |    831 +-
 po/pt.po                                                         |    181 +-
 po/pt_BR.po                                                      |    135 +-
 po/ro.po                                                         |    112 +-
 po/ru.po                                                         |    312 +-
 po/sl.po                                                         |    177 +-
 po/sq.po                                                         |    208 +-
 po/sv.po                                                         |    214 +-
 po/te.po                                                         |    109 +-
 po/tr.po                                                         |   2924 +-
 po/tt.po                                                         |    105 +-
 po/uk.po                                                         |    112 +-
 po/uz.po                                                         |    157 +-
 share/ca-certs/AOL_Member_CA.pem                                 |     25 -
 share/ca-certs/AddTrust_External_Root.pem                        |     25 -
 share/ca-certs/America_Online_Root_Certification_Authority_1.pem |     23 -
 share/ca-certs/Baltimore_CyberTrust_Root.pem                     |     21 -
 share/ca-certs/Certum_Root_CA.pem                                |     19 -
 share/ca-certs/Certum_Trusted_Network_CA.pem                     |     22 -
 share/ca-certs/Deutsche_Telekom_Root_CA_2.pem                    |     23 -
 share/ca-certs/DigiCertHighAssuranceCA-3.pem                     |     36 -
 share/ca-certs/DigiCertHighAssuranceEVRootCA.pem                 |     23 -
 share/ca-certs/Entrust.net_2048.pem                              |     27 -
 share/ca-certs/Entrust.net_Secure_Server_CA.pem                  |     28 -
 share/ca-certs/Equifax_Secure_CA.pem                             |     20 -
 share/ca-certs/Equifax_Secure_Global_eBusiness_CA-1.pem          |     16 -
 share/ca-certs/GTE_CyberTrust_Global_Root.pem                    |     16 -
 share/ca-certs/Go_Daddy_Class_2_CA.pem                           |     25 -
 share/ca-certs/Makefile.am                                       |     42 +-
 share/ca-certs/Microsoft_Internet_Authority_2010.pem             |     30 -
 share/ca-certs/Microsoft_Secure_Server_Authority_2010.pem        |     35 -
 share/ca-certs/StartCom_Certification_Authority.pem              |     44 -
 share/ca-certs/Thawte_Premium_Server_CA.pem                      |     19 -
 share/ca-certs/Thawte_Primary_Root_CA.pem                        |     25 -
 share/ca-certs/ValiCert_Class_2_VA.pem                           |     19 -
 share/ca-certs/VeriSign_Class3_Extended_Validation_CA.pem        |     34 -
 share/ca-certs/VeriSign_Class_3_Primary_CA-G2.pem                |     19 -
 share/ca-certs/VeriSign_Class_3_Primary_CA-G5-2.pem              |     29 -
 share/ca-certs/VeriSign_Class_3_Primary_CA-G5.pem                |     30 -
 share/ca-certs/VeriSign_International_Server_Class_3_CA.pem      |     21 -
 share/ca-certs/Verisign_Class3_Primary_CA.pem                    |     14 -
 share/ca-certs/mk-ca-bundle.pl                                   |    499 +
 share/ca-certs/mozilla.pem                                       |   3865 ++
 108 files changed, 30047 insertions(+), 35762 deletions(-)

diffs (truncated from 149672 to 300 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,18 +1,44 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
-version 2.10.13 (MM/DD/YY):
+version 2.11.0 (06/21/16):
+	General:
+	* 2.10.12 was accidentally released with new additions to the API and
+	  should have been released as 2.11.0.  Unfortunately, we did not catch
+	  the mistake until after 2.10.12 was released, but we're fixing it now.
+	  See ChangeLog.API for more information.
+
+	libpurple:
+	* media: fix an issue with ximagesink displaying only a corner cut-out of
+	  a larger webcam video (Jakub Adam)
+	* mediamanager: update output window destruction so that it reflects recent
+	  changes in the media pipeline structure (Jakub Adam)
+	* Ported Instantbird's CommandUiOps to libpurple (Dequis)
+
 	Pidgin:
 	* Fixed #14962
 	* Fixed alignment of incoming right-to-left messages in protocols that
-	don't support rich text
+	  don't support rich text
 	* Fix a potential crash while exiting pidgin
 
+	AIM:
+	* Add support for the newer kerberos-based authentication of AIM 8.x
+
 	Windows-Specific Changes:
 	* Use getaddrinfo for DNS to enable IPv6 (#1075)
+	* Updates to dependencies:
+		* NSS 3.24 and NSPR 4.12.
 
 	Bonjour
 	* Fixed building on Mac OSX (Patrick Cloke) (#16883)
 
+	ICQ:
+	* Stop truncating passwords to 8 characters like old ICQ clients did.
+	  (#16692). If you actually needed this, truncate your password
+	  manually by pressing backspace a few times.
+
+	IRC:
+	* Base64-decode SASL messages before passing to libsasl (#16268)
+
 	MXit
 	* Fixed a buffer overflow.  Discovered by Yves Younan of Cisco Talos.
 	  (TALOS-CAN-0120)
diff --git a/ChangeLog.API b/ChangeLog.API
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -5,6 +5,18 @@ version 2.11.0:
 		Added:
 		* account-status-changing signal (account signals)
 		* buddy-removed-from-group signal (blist signals)
+		* PurpleCommandsUiOps, to allow the UI to override the
+		  built-in handling of commands.
+		* PurplePrefsUiOps, to allow the UI to override the way global
+		  preferences are stored.
+		* PurpleAccountPrefsUiOps, to allow the UI to handle storage
+		  of account preferences.
+		* purple_media_set_encryption_parameters
+		* purple_media_set_decryption_parameters
+		* purple_xfer_write_file
+		* purple_xfer_read_file
+		* purple_media_set_send_rtcp_mux
+		* purple_media_backend_set_send_rtcp_mux
 
 version 2.10.12:
 	* No changes
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -43,10 +43,10 @@ AC_PREREQ([2.50])
 #
 # Make sure to update finch/libgnt/configure.ac with libgnt version changes.
 #
-m4_define([purple_lt_current], [10])
+m4_define([purple_lt_current], [11])
 m4_define([purple_major_version], [2])
-m4_define([purple_minor_version], [10])
-m4_define([purple_micro_version], [13])
+m4_define([purple_minor_version], [11])
+m4_define([purple_micro_version], [0])
 m4_define([purple_version_suffix], [devel])
 m4_define([purple_version],
           [purple_major_version.purple_minor_version.purple_micro_version])
diff --git a/libpurple/account.c b/libpurple/account.c
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -84,6 +84,7 @@ typedef struct
 } PurpleAccountRequestInfo;
 
 static PurpleAccountUiOps *account_ui_ops = NULL;
+static PurpleAccountPrefsUiOps *account_prefs_ui_ops = NULL;
 
 static GList   *accounts = NULL;
 static guint    save_timer = 0;
@@ -480,6 +481,7 @@ accounts_to_xmlnode(void)
 static void
 sync_accounts(void)
 {
+	PurpleAccountPrefsUiOps *ui_ops;
 	xmlnode *node;
 	char *data;
 
@@ -490,6 +492,13 @@ sync_accounts(void)
 		return;
 	}
 
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->save != NULL) {
+		ui_ops->save();
+		return;
+	}
+
 	node = accounts_to_xmlnode();
 	data = xmlnode_to_formatted_str(node, NULL);
 	purple_util_write_data_to_file("accounts.xml", data, -1);
@@ -508,6 +517,15 @@ save_cb(gpointer data)
 static void
 schedule_accounts_save(void)
 {
+	PurpleAccountPrefsUiOps *ui_ops;
+
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->schedule_save != NULL) {
+		ui_ops->schedule_save();
+		return;
+	}
+
 	if (save_timer == 0)
 		save_timer = purple_timeout_add_seconds(5, save_cb, NULL);
 }
@@ -1019,10 +1037,19 @@ parse_account(xmlnode *node)
 static void
 load_accounts(void)
 {
+	PurpleAccountPrefsUiOps *ui_ops;
 	xmlnode *node, *child;
 
 	accounts_loaded = TRUE;
 
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->load != NULL) {
+		ui_ops->load();
+		_purple_buddy_icons_account_loaded_cb();
+		return;
+	}
+
 	node = purple_util_read_xml_from_file("accounts.xml", _("accounts"));
 
 	if (node == NULL)
@@ -2036,6 +2063,7 @@ void
 purple_account_set_int(PurpleAccount *account, const char *name, int value)
 {
 	PurpleAccountSetting *setting;
+	PurpleAccountPrefsUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2047,6 +2075,12 @@ purple_account_set_int(PurpleAccount *ac
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
 
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->set_int != NULL) {
+		ui_ops->set_int(account, name, value);
+	}
+
 	schedule_accounts_save();
 }
 
@@ -2055,6 +2089,7 @@ purple_account_set_string(PurpleAccount 
 						const char *value)
 {
 	PurpleAccountSetting *setting;
+	PurpleAccountPrefsUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2066,6 +2101,12 @@ purple_account_set_string(PurpleAccount 
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
 
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->set_string != NULL) {
+		ui_ops->set_string(account, name, value);
+	}
+
 	schedule_accounts_save();
 }
 
@@ -2073,6 +2114,7 @@ void
 purple_account_set_bool(PurpleAccount *account, const char *name, gboolean value)
 {
 	PurpleAccountSetting *setting;
+	PurpleAccountPrefsUiOps *ui_ops;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
@@ -2084,6 +2126,12 @@ purple_account_set_bool(PurpleAccount *a
 
 	g_hash_table_insert(account->settings, g_strdup(name), setting);
 
+	ui_ops = purple_account_prefs_get_ui_ops();
+
+	if (ui_ops != NULL && ui_ops->set_bool != NULL) {
+		ui_ops->set_bool(account, name, value);
+	}
+
 	schedule_accounts_save();
 }
 
@@ -3150,6 +3198,18 @@ purple_accounts_get_ui_ops(void)
 	return account_ui_ops;
 }
 
+void
+purple_account_prefs_set_ui_ops(PurpleAccountPrefsUiOps *ops)
+{
+	account_prefs_ui_ops = ops;
+}
+
+PurpleAccountPrefsUiOps *
+purple_account_prefs_get_ui_ops(void)
+{
+	return account_prefs_ui_ops;
+}
+
 void *
 purple_accounts_get_handle(void)
 {
diff --git a/libpurple/account.h b/libpurple/account.h
--- a/libpurple/account.h
+++ b/libpurple/account.h
@@ -32,6 +32,8 @@
 
 /** @copydoc _PurpleAccountUiOps */
 typedef struct _PurpleAccountUiOps PurpleAccountUiOps;
+/** @copydoc _PurpleAccountPrefsUiOps */
+typedef struct _PurpleAccountPrefsUiOps PurpleAccountPrefsUiOps;
 /** @copydoc _PurpleAccount */
 typedef struct _PurpleAccount      PurpleAccount;
 
@@ -121,6 +123,47 @@ struct _PurpleAccountUiOps
 	void (*_purple_reserved4)(void);
 };
 
+/**  Account prefs UI operations, to allow the UI to catch account preference
+ *   changes. Unlike the #PurplePrefsUiOps API, these are always stored
+ *   internally in a hash table. If the UI wants to handle accounts settings,
+ *   it must set them to the account on load and handle changes with set_
+ *   methods. Implementing load/save/schedule_save disables the built-in
+ *   accounts.xml code.
+ *
+ *   @since 2.11.0
+ */
+struct _PurpleAccountPrefsUiOps
+{
+	/** Notifies the UI that an integer account setting was set. */
+	void (*set_int)(PurpleAccount *account, const char *name, int value);
+
+	/** Notifies the UI that a string account setting was set. */
+	void (*set_string)(PurpleAccount *account, const char *name, const char *value);
+
+	/** Notifies the UI that a boolean account setting was set. */
+	void (*set_bool)(PurpleAccount *account, const char *name, gboolean value);
+
+	/** If this is set, accounts.xml loading will be disabled and this
+	 *  function will be called instead.
+	 */
+	void (*load)(void);
+
+	/** If this is set, accounts.xml saving will be disabled and this
+	 *  function will be called instead.
+	 */
+	void (*save)(void);
+
+	/** If this is set, the UI will handle scheduling the timer to call the
+	 *  save function, overriding the default timeout of 5 seconds.
+	 */
+	void (*schedule_save)(void);
+
+	void (*_purple_reserved1)(void);
+	void (*_purple_reserved2)(void);
+	void (*_purple_reserved3)(void);
+	void (*_purple_reserved4)(void);
+};
+
 /** Structure representing an account.
  */
 struct _PurpleAccount



More information about the Commits mailing list