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.master
parent
da9adfc7f7
commit
e1f174ae28
|
@ -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 \
|
||||
|
|
|
@ -5162,6 +5162,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
|
|||
(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 @@ 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"
|
||||
|
|
|
@ -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
|
||||
|
Reference in New Issue