From d619686250d8bb15bf67031f8ac80f9cfb400a26 Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Sun, 14 Jul 2019 23:47:44 -0400 Subject: [PATCH] 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. --- gnu/packages/gnome.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 @@ (define-public evolution-data-server "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. + ;; . + (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"