summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2019-07-14 23:47:44 -0400
committerTimothy Sample <samplet@ngyro.com>2019-07-16 09:36:15 -0400
commitd619686250d8bb15bf67031f8ac80f9cfb400a26 (patch)
tree265f752d6ad1c7d2d6daf5fc5872816d0e6d8e6f /gnu
parent464a29d3d74e7d2f27042db6ab166bfdbe1f992e (diff)
gnu: evolution-data-server: Fix locale handling.
* gnu/packages/gnome.scm (evolution-data-server)[arguments]: Add a phase that patches the source code to fix a locale handling issue.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnome.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ae5b85d9d0..f42b5064c9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5211,6 +5211,22 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
"tests/libedata-cal/test-cal-cache-utils.c")
(("/bin/rm") (which "rm")))
#t))
+ ;; This phase fixes locale canonicalization when using newer
+ ;; versions of ICU. The bug has been fixed upstream, and
+ ;; should appear starting in version 3.33.5.
+ ;; <https://gitlab.gnome.org/GNOME/evolution-data-server/issues/137>.
+ (add-after 'unpack 'patch-locale-canonicalization
+ (lambda _
+ (substitute* "src/libedataserver/e-collator.c"
+ (("len = uloc_canonicalize \\(posix_locale,.*" x)
+ ((lambda (xs) (string-join xs "\n" 'suffix))
+ (list
+ "if (posix_locale && ("
+ " g_ascii_strcasecmp(posix_locale, \"C\") == 0 ||"
+ " g_ascii_strcasecmp(posix_locale, \"POSIX\") == 0))"
+ " posix_locale = \"en_US_POSIX\";"
+ x))))
+ #t))
(add-before 'configure 'dont-override-rpath
(lambda _
(substitute* "CMakeLists.txt"