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

Mark Doliner mark at kingant.net
Wed Nov 5 01:14:18 EST 2014


Changeset: fd55a0f119db5127e94fe46d16561735823dd4bd
Author:	 Mark Doliner <mark at kingant.net>
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 at latin bg bn bn_IN bs ca ca at 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 at 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 at latin bg bn bn_IN bs ca ca at 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 at 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", "amedcj at hotmail.com"},
 	{NULL,                      NULL, "Erdal Ronahi", "erdal.ronahi at gmail.com"},
 	{NULL,                      NULL, "Rizoyê Xerzî", "rizoxerzi at hotmail.com"},
+	{N_("Kurdish (Sorani)"),    "ku_IQ", "Haval A. Ahmed", "haval.abdulkarim at gmail.com"},
 	{N_("Lithuanian"),          "lt", "Algimantas Margevičius", "margevicius.algimantas at gmail.com"},
 	{N_("Latvian"),             "lv", "Rudolfs Mazurs", "rudolfs.mazurs at gmail.com"},
 	{N_("Maithili"),            "mai", "Sangeeta Kumari", "sangeeta_0975 at yahoo.com"},
@@ -245,7 +246,7 @@ static const struct translator translato
 	{N_("Serbian Latin"),       "sr at latin", "Miloš Popović", "gpopac at gmail.com"},
 	{N_("Sinhala"),             "si", "Yajith Ajantha Dayarathna", "yajith at gmail.com"},
 	{NULL,                      NULL, "Danishka Navin", "snavin at redhat.com"},
-	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "xake at telia.com"},
+	{N_("Swedish"),             "sv", "Josef Andersson", "josef.andersson at gmail.com"},
 	{N_("Swahili"),             "sw", "Paul Msegeya", "msegeya at gmail.com"},
 	{N_("Tamil"),               "ta", "I. Felix", "ifelix25 at gmail.com"},
 	{NULL,                      NULL, "Viveka Nathan K", "vivekanathan at users.sourceforge.net"},
@@ -254,7 +255,10 @@ static const struct translator translato
 	{N_("Tatar"),               "tt", "ILDAR Valeev", "v_ildar at bk.ru"},
 	{N_("Ukranian"),            "uk", "Oleksandr Kovalenko", "alx.kovalenko at gmail.com"},
 	{N_("Urdu"),                "ur", "RKVS Raman", "rkvsraman at gmail.com"},
-	{N_("Uzbek"),               "uz", "Akmal Khushvakov", "uzbadmin at gmail.com"},
+	{N_("Uzbek"),               "uz",
+	/* Translators: This is a person's name. For most languages we recommend
+	   not translating it. */
+                                          N_("Akmal Khushvakov"), "uzbadmin at gmail.com"},
 	{N_("Vietnamese"),          "vi", "Nguyá»
n VÅ© HÆ°ng", "vuhung16plus at gmail.com"},
 	{N_("Simplified Chinese"),  "zh_CN", "Aron Xu", "happyaron.xu at gmail.com"},
 	{N_("Hong Kong Chinese"),   "zh_HK", "Abel Cheung", "abelindsay at gmail.com"},
@@ -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", "xake at telia.com"},
+	{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 at 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"



More information about the Commits mailing list