/pidgin/main: fd55a0f119db: Merge release-2.x.y branch into master.

Mark Doliner <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: fd55a0f119db5127e94fe46d16561735823dd4bd
Author:	 Mark Doliner <[email protected]>
Date:	 2014-11-04 22:15 -0800
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/fd55a0f119db

Description:

Merge release-2.x.y branch into master.

Minor manual merging in pidgin/gtkdialogs.c.

diffstat:

 COPYRIGHT                           |      1 +
 ChangeLog                           |      4 +
 configure.ac                        |      2 +-
 libpurple/plugins/ssl/ssl-nss.c     |     82 +-
 libpurple/protocols/gg/lib/config.h |      2 +-
 pidgin/gtkdialogs.c                 |     11 +-
 po/ku_IQ.po                         |  19834 ++++++++++++++++++++++++++++++++++
 7 files changed, 19912 insertions(+), 24 deletions(-)

diffs (truncated from 20064 to 300 lines):

diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -21,6 +21,7 @@ Mark
 Saleem Abdulrasool
 Jakub Adam
 Dave Ahlswede
+Haval A. Ahmed
 Thijs Alkemade
 Manuel Amador
 Matt Amato
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -76,6 +76,10 @@ version 3.0.0 (??/??/????):
 	  was an offline message. (Flavius Anton) (#2497)
 
 version 2.10.11 (?/?/?):
+	Gadu-Gadu:
+	* Fix a bug that prevented plugin to load when compiled without GnuTLS.
+	  (mancha) (#16431)
+
 	General:
 	* Fix handling of Self-Signed SSL/TLS Certificates when using the NSS
           plugin (#16412)
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -449,7 +449,7 @@ if test x$enable_i18n = xyes; then
 	GETTEXT_PACKAGE=pidgin
 	AC_SUBST(GETTEXT_PACKAGE)
 
-	ALL_LINGUAS="af am ar ast az be@latin bg bn bn_IN bs ca ca@valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id it ja ka kk km kn ko ku lt lv mai mhr mk mn mr my_MM nb ne nl nn oc or pa pl pt_BR pt ps ro ru si sk sl sq sr sr@latin sv sw ta te th tr tt uk ur vi xh zh_CN zh_HK zh_TW"
+	ALL_LINGUAS="af am ar ast az be@latin bg bn bn_IN bs ca ca@valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu id it ja ka kk km kn ko ku ku_IQ lt lv mai mhr mk mn mr my_MM nb ne nl nn oc or pa pl pt_BR pt ps ro ru si sk sl sq sr sr@latin sv sw ta te th tr tt uk ur vi xh zh_CN zh_HK zh_TW"
 	AM_GLIB_GNU_GETTEXT
 
 	dnl If we don't have msgfmt, then po/ is going to fail -- ensure that
diff --git a/libpurple/plugins/ssl/ssl-nss.c b/libpurple/plugins/ssl/ssl-nss.c
--- a/libpurple/plugins/ssl/ssl-nss.c
+++ b/libpurple/plugins/ssl/ssl-nss.c
@@ -139,9 +139,61 @@ static gchar *get_error_text(void)
 	return ret;
 }
 
-static void ssl_nss_log_ciphers(void) {
+static const PRUint16 default_ciphers[] = {
+#if NSS_VMAJOR > 3 || ( NSS_VMAJOR == 3 && NSS_VMINOR > 15 ) \
+		|| ( NSS_VMAJOR == 3 && NSS_VMINOR == 15 && NSS_VPATCH >= 1 )
+	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
+	TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
+	TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
+# if NSS_VMAJOR > 3 || ( NSS_VMAJOR == 3 && NSS_VMINOR > 15 ) \
+		|| ( NSS_VMAJOR == 3 && NSS_VMINOR == 15 && NSS_VPATCH >= 2 )
+	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+	TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
+	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+# endif
+#endif
+	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+
+	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+
+	TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
+
+	TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
+
+	TLS_DHE_DSS_WITH_AES_128_CBC_SHA, /* deprecated (DSS) */
+	/* TLS_DHE_DSS_WITH_AES_256_CBC_SHA, false }, // deprecated (DSS) */
+
+	TLS_ECDHE_RSA_WITH_RC4_128_SHA,		/* deprecated (RC4) */
+	TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 	/* deprecated (RC4) */
+
+	/* RFC 6120 Mandatory */
+	TLS_RSA_WITH_AES_128_CBC_SHA,		/* deprecated (RSA key exchange) */
+	TLS_RSA_WITH_AES_256_CBC_SHA,		/* deprecated (RSA key exchange) */
+	/* TLS_RSA_WITH_3DES_EDE_CBC_SHA, 	 deprecated (RSA key exchange, 3DES) */
+
+	0 /* end marker */
+};
+
+/* It's unfortunate we need to manage these manually,
+ * ideally NSS would choose good defaults.
+ * This is mostly based on FireFox's list:
+ * https://hg.mozilla.org/mozilla-central/log/default/security/manager/ssl/src/nsNSSComponent.cpp */
+static void ssl_nss_init_ciphers(void) {
+	/* Disable any ciphers that NSS might have enabled by default */
 	const PRUint16 *cipher;
 	for (cipher = SSL_GetImplementedCiphers(); *cipher != 0; ++cipher) {
+		SSL_CipherPrefSetDefault(*cipher, PR_FALSE);
+	}
+
+	/* Now only set SSL/TLS ciphers we knew about at compile time */
+	for (cipher = default_ciphers; *cipher != 0; ++cipher) {
+		SSL_CipherPrefSetDefault(*cipher, PR_TRUE);
+	}
+
+	/* Now log the available and enabled Ciphers */
+	for (cipher = SSL_GetImplementedCiphers(); *cipher != 0; ++cipher) {
 		const PRUint16 suite = *cipher;
 		SECStatus rv;
 		PRBool enabled;
@@ -150,18 +202,20 @@ static void ssl_nss_log_ciphers(void) {
 
 		rv = SSL_CipherPrefGetDefault(suite, &enabled);
 		if (rv != SECSuccess) {
-			err = PR_GetError();
+			gchar *error_txt = get_error_text();
 			purple_debug_warning("nss",
 					"SSL_CipherPrefGetDefault didn't like value 0x%04x: %s\n",
-					suite, PORT_ErrorToString(err));
+					suite, error_txt);
+			g_free(error_txt);
 			continue;
 		}
 		rv = SSL_GetCipherSuiteInfo(suite, &info, (int)(sizeof info));
 		if (rv != SECSuccess) {
-			err = PR_GetError();
+			gchar *error_txt = get_error_text();
 			purple_debug_warning("nss",
 					"SSL_GetCipherSuiteInfo didn't like value 0x%04x: %s\n",
-					suite, PORT_ErrorToString(err));
+					suite, error_txt);
+			g_free(error_txt);
 			continue;
 		}
 		purple_debug_info("nss", "Cipher - %s: %s\n",
@@ -179,22 +233,11 @@ ssl_nss_init_nss(void)
 
 	PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1);
 	NSS_NoDB_Init(".");
-#if (NSS_VMAJOR == 3 && (NSS_VMINOR < 15 || (NSS_VMINOR == 15 && NSS_VMICRO < 2)))
+#if (NSS_VMAJOR == 3 && (NSS_VMINOR < 15 || (NSS_VMINOR == 15 && NSS_VPATCH < 2)))
 	NSS_SetDomesticPolicy();
 #endif /* NSS < 3.15.2 */
 
-	SSL_CipherPrefSetDefault(TLS_DHE_RSA_WITH_AES_256_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_DHE_DSS_WITH_AES_256_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_RSA_WITH_AES_256_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_DHE_DSS_WITH_RC4_128_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_DHE_DSS_WITH_AES_128_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(SSL_RSA_WITH_RC4_128_SHA, 1);
-	SSL_CipherPrefSetDefault(TLS_RSA_WITH_AES_128_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(SSL_DHE_RSA_WITH_DES_CBC_SHA, 1);
-	SSL_CipherPrefSetDefault(SSL_DHE_DSS_WITH_DES_CBC_SHA, 1);
+	ssl_nss_init_ciphers();
 
 #if NSS_VMAJOR > 3 || ( NSS_VMAJOR == 3 && NSS_VMINOR >= 14 )
 	/* Get the ranges of supported and enabled SSL versions */
@@ -229,7 +272,6 @@ ssl_nss_init_nss(void)
 	_identity = PR_GetUniqueIdentity("Purple");
 	_nss_methods = PR_GetDefaultIOMethods();
 
-	ssl_nss_log_ciphers();
 }
 
 static SECStatus
@@ -1118,7 +1160,9 @@ static void x509_verify_cert(PurpleCerti
 				case SEC_ERROR_CA_CERT_INVALID:
 				case SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE:
 				case SEC_ERROR_UNTRUSTED_CERT:
+#ifdef SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED
 				case SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED:
+#endif
 					if (!self_signed) {
 						*flags |= PURPLE_CERTIFICATE_INVALID_CHAIN;
 					}
diff --git a/libpurple/protocols/gg/lib/config.h b/libpurple/protocols/gg/lib/config.h
--- a/libpurple/protocols/gg/lib/config.h
+++ b/libpurple/protocols/gg/lib/config.h
@@ -49,7 +49,7 @@
 
 /* Defined if libgadu was compiled and linked with GnuTLS support. */
 #undef GG_CONFIG_HAVE_GNUTLS
-#ifdef HAVE_GNUTLS_2_10
+#if defined(HAVE_GNUTLS) && defined(HAVE_GNUTLS_2_10)
 #  define GG_CONFIG_HAVE_GNUTLS
 #endif
 
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c
--- a/pidgin/gtkdialogs.c
+++ b/pidgin/gtkdialogs.c
@@ -210,6 +210,7 @@ static const struct translator translato
 	{N_("Kurdish"),             "ku", "Amed Ç. Jiyan", "[email protected]"},
 	{NULL,                      NULL, "Erdal Ronahi", "[email protected]"},
 	{NULL,                      NULL, "Rizoyê Xerzî", "[email protected]"},
+	{N_("Kurdish (Sorani)"),    "ku_IQ", "Haval A. Ahmed", "[email protected]"},
 	{N_("Lithuanian"),          "lt", "Algimantas Margevičius", "[email protected]"},
 	{N_("Latvian"),             "lv", "Rudolfs Mazurs", "[email protected]"},
 	{N_("Maithili"),            "mai", "Sangeeta Kumari", "[email protected]"},
@@ -245,7 +246,7 @@ static const struct translator translato
 	{N_("Serbian Latin"),       "sr@latin", "MiloÅ¡ Popović", "[email protected]"},
 	{N_("Sinhala"),             "si", "Yajith Ajantha Dayarathna", "[email protected]"},
 	{NULL,                      NULL, "Danishka Navin", "[email protected]"},
-	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "[email protected]"},
+	{N_("Swedish"),             "sv", "Josef Andersson", "[email protected]"},
 	{N_("Swahili"),             "sw", "Paul Msegeya", "[email protected]"},
 	{N_("Tamil"),               "ta", "I. Felix", "[email protected]"},
 	{NULL,                      NULL, "Viveka Nathan K", "[email protected]"},
@@ -254,7 +255,10 @@ static const struct translator translato
 	{N_("Tatar"),               "tt", "ILDAR Valeev", "[email protected]"},
 	{N_("Ukranian"),            "uk", "Oleksandr Kovalenko", "[email protected]"},
 	{N_("Urdu"),                "ur", "RKVS Raman", "[email protected]"},
-	{N_("Uzbek"),               "uz", "Akmal Khushvakov", "[email protected]"},
+	{N_("Uzbek"),               "uz",
+	/* Translators: This is a person's name. For most languages we recommend
+	   not translating it. */
+                                          N_("Akmal Khushvakov"), "[email protected]"},
 	{N_("Vietnamese"),          "vi", "Nguyễn VÅ© Hưng", "[email protected]"},
 	{N_("Simplified Chinese"),  "zh_CN", "Aron Xu", "[email protected]"},
 	{N_("Hong Kong Chinese"),   "zh_HK", "Abel Cheung", "[email protected]"},
@@ -338,7 +342,8 @@ static const struct translator past_tran
 	{N_("Slovenian"),           "sl", "Matjaz Horvat", NULL},
 	{N_("Serbian"),             "sr", "Danilo Å egan", NULL},
 	{NULL,                      NULL, "Aleksandar Urosevic", NULL},
-	{N_("Swedish"),             "sv", "Tore Lundqvist", NULL},
+	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "[email protected]"},
+	{N_("Swedish"),             NULL, "Tore Lundqvist", NULL},
 	{NULL,                      NULL, "Christian Rose", NULL},
 	{N_("Telugu"),              "te", "Mr. Subbaramaih", NULL},
 	{N_("Turkish"),             "tr", "Serdar Soytetir", NULL},
diff --git a/po/ku_IQ.po b/po/ku_IQ.po
new file mode 100644
--- /dev/null
+++ b/po/ku_IQ.po
@@ -0,0 +1,19834 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Pidgin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-11-02 09:57-0600\n"
+"PO-Revision-Date: 2012-02-20 18:15+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Kurdish (Iraq) (http://www.transifex.com/projects/p/pidgin/language/ku_IQ/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ku_IQ\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Translators may want to transliterate the name.
+#. It is not to be translated.
+#: ../finch/finch.c:66 ../finch/finch.c:335 ../finch/finch.c:364
+#: ../finch/finch.c:459
+msgid "Finch"
+msgstr ""
+
+#: ../finch/finch.c:247
+#, c-format
+msgid "%s. Try `%s -h' for more information.\n"
+msgstr ""
+
+#: ../finch/finch.c:249
+#, c-format
+msgid ""
+"%s\n"
+"Usage: %s [OPTION]...\n"
+"\n"
+"  -c, --config=DIR    use DIR for config files\n"
+"  -d, --debug         print debugging messages to stderr\n"
+"  -h, --help          display this help and exit\n"
+"  -n, --nologin       don't automatically login\n"
+"  -v, --version       display the current version and exit\n"
+msgstr ""
+
+#: ../finch/finch.c:362 ../pidgin/gtkmain.c:776
+#, c-format
+msgid ""
+"%s encountered errors migrating your settings from %s to %s. Please "
+"investigate and complete the migration by hand. Please report this error at "
+"http://developer.pidgin.im"
+msgstr ""
+
+#. the user did not fill in the captcha
+#: ../finch/gntaccount.c:128 ../finch/gntaccount.c:171
+#: ../finch/gntaccount.c:178 ../finch/gntaccount.c:558 ../finch/gntblist.c:647
+#: ../finch/gntblist.c:817 ../finch/gntplugin.c:198 ../finch/gntplugin.c:246
+#: ../finch/gntrequest.c:398 ../finch/gntstatus.c:303 ../finch/gntstatus.c:312
+#: ../finch/plugins/gntclipboard.c:115 ../finch/plugins/gntclipboard.c:121
+#: ../finch/plugins/gntclipboard.c:128
+#: ../libpurple/protocols/jabber/chat.c:812
+#: ../libpurple/protocols/jabber/chat.c:823
+#: ../libpurple/protocols/jabber/jabber.c:2360
+#: ../libpurple/protocols/jabber/jutil.c:710
+#: ../libpurple/protocols/mxit/login.c:526
+#: ../libpurple/protocols/mxit/protocol.c:2543
+#: ../libpurple/protocols/silc/ops.c:77 ../libpurple/protocols/silc/ops.c:1471
+#: ../libpurple/protocols/silc10/ops.c:1451
+#: ../pidgin/plugins/disco/xmppdisco.c:514
+#: ../pidgin/plugins/disco/xmppdisco.c:519
+msgid "Error"
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.