diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-12-06 10:52:49 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-08-31 10:42:47 +0200 |
commit | ed0cd12a82b429bc5058f693a0f75f2ba0ee47c4 (patch) | |
tree | 3cb7b7e704084f9cfcf788551f723f10994ceee1 /gnu | |
parent | 9dbba0238210facd04ebc90cec6fc5e1135540fb (diff) | |
download | guix-ed0cd12a82b429bc5058f693a0f75f2ba0ee47c4.tar.gz |
gnu: glibc: Install C.UTF-8 locale.
* gnu/packages/base.scm (glibc)[arguments]: Add ‘install-utf8-c-locale’ phase. (glibc-2.35)[arguments]: Delete ‘install-utf8-c-locale’ phase. (glibc-2.33, glibc-2.32, glibc-2.31): Inherit from ‘glibc-2.35’. Change-Id: I7ba515184c7b7c40eaefd355639ffef8eeca66d8
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/base.scm | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index d440031eb5..b7e5b0479f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1075,6 +1075,26 @@ the store.") (map (cut string-append slib "/" <>) files)))))) + (add-after 'install 'install-utf8-c-locale + (lambda* (#:key outputs #:allow-other-keys) + ;; Install the C.UTF-8 locale so there's always a UTF-8 + ;; locale around. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (locale (string-append out "/lib/locale/" + ,(package-version + this-package)))) + (mkdir-p locale) + + ;; FIXME: When cross-compiling, attempt to use + ;; 'localedef' from the same libc version. + (invoke ,(if (%current-target-system) + "true" + '(string-append bin "/localedef")) + "--no-archive" "--prefix" locale + "-i" "C" "-f" "UTF-8" + (string-append locale "/C.UTF-8"))))) + ,@(if (target-hurd?) '((add-after 'install 'augment-libc.so (lambda* (#:key outputs #:allow-other-keys) @@ -1169,11 +1189,19 @@ with the Linux kernel.") "glibc-hurd-clock_t_centiseconds.patch" "glibc-hurd-clock_gettime_monotonic.patch" "glibc-hurd-mach-print.patch" - "glibc-hurd-gettyent.patch")))))) + "glibc-hurd-gettyent.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments glibc) + ((#:phases phases) + ;; The C.UTF-8 fails to build in glibc 2.35: + ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28861>. + ;; It is missing altogether in versions earlier than 2.35. + `(modify-phases ,phases + (delete 'install-utf8-c-locale))))))) (define-public glibc-2.33 (package - (inherit glibc) + (inherit glibc-2.35) (name "glibc") (version "2.33") (source (origin @@ -1200,7 +1228,7 @@ with the Linux kernel.") (define-public glibc-2.32 (package - (inherit glibc) + (inherit glibc-2.35) (version "2.32") (source (origin (inherit (package-source glibc)) @@ -1255,7 +1283,7 @@ with the Linux kernel.") (define-public glibc-2.31 (package - (inherit glibc) + (inherit glibc-2.35) (version "2.31") (source (origin (inherit (package-source glibc)) |