summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2019-07-19 10:36:21 -0400
committerTimothy Sample <samplet@ngyro.com>2019-07-19 12:56:03 -0400
commite1f174ae284d9954840f1723ac012c0d3fbcecb4 (patch)
tree7cc4e75dfe3bc41ff4bbd4e7a38d466769193db6 /gnu/packages/patches
parentda9adfc7f7e11e6aeaa6322331e867bbafdab055 (diff)
downloadguix-e1f174ae284d9954840f1723ac012c0d3fbcecb4.tar.gz
gnu: evolution-data-server: Use a proper patch for locales.
See <https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00265.html>.

* gnu/packages/patches/evolution-data-server-locales.patch: New file.
* gnu/local.mk: Add it.
* gnu/packages/gnome.scm (evolution-data-server): Replace the
'patch-locale-canonicalization' phase with the new patch.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/evolution-data-server-locales.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/gnu/packages/patches/evolution-data-server-locales.patch b/gnu/packages/patches/evolution-data-server-locales.patch
new file mode 100644
index 0000000000..48baefb0d8
--- /dev/null
+++ b/gnu/packages/patches/evolution-data-server-locales.patch
@@ -0,0 +1,33 @@
+This patch fixes locale canonicalization when using newer versions of
+ICU.  It comes from the upstream repo, and should appear starting in
+version 3.33.5.
+
+From fe4ac94ce3c14f200e049a5d102fc0e4b811c71e Mon Sep 17 00:00:00 2001
+From: Milan Crha <mcrha@redhat.com>
+Date: Tue, 16 Jul 2019 07:22:07 +0200
+Subject: [PATCH] I#137 - POSIX locale tests fail with ICU 64.x
+
+Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/137
+---
+ src/libedataserver/e-collator.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/libedataserver/e-collator.c b/src/libedataserver/e-collator.c
+index 718eac5da..ec2cf7951 100644
+--- a/src/libedataserver/e-collator.c
++++ b/src/libedataserver/e-collator.c
+@@ -132,6 +132,11 @@ canonicalize_locale (const gchar *posix_locale,
+ 	gint   len;
+ 	const gchar *collation_type = NULL;
+ 
++	if (posix_locale && (
++	    g_ascii_strcasecmp (posix_locale, "C") == 0 ||
++	    g_ascii_strcasecmp (posix_locale, "POSIX") == 0))
++		posix_locale = "en_US_POSIX";
++
+ 	len = uloc_canonicalize (posix_locale, locale_buffer, LOCALE_BUFFER_LEN, &status);
+ 
+ 	if (U_FAILURE (status)) {
+-- 
+2.22.0
+