diff --git a/gnu/local.mk b/gnu/local.mk index 528ad703a4..c95a5c8126 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -780,6 +780,7 @@ dist_patch_DATA = \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ + %D%/packages/patches/evolution-data-server-locales.patch \ %D%/packages/patches/exiv2-CVE-2017-14860.patch \ %D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index beaba3b4c5..9190301ee9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5162,6 +5162,7 @@ (define-public evolution-data-server (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "evolution-data-server-locales.patch")) (sha256 (base32 "1s952wyhgcbmq9nfgk75v15zdy1h3wy5p5rmkqibaavmc0pk3mli")))) @@ -5205,22 +5206,6 @@ (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" 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 +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 +