~ruther/guix-local

92727f4af5d410b0a521d57d5ecef6b35779bdc2 — Ludovic Courtès 2 years ago 5b3e996d2
gnu: commencement: Remove ‘glibc-utf8-locales’ from ‘%final-inputs’.

* gnu/packages/commencement.scm (%boot5-inputs): Make an alias for
‘%boot4-inputs’.
(with-boot5): Turn into an alias for ‘with-boot4’.
(%final-inputs): Override ‘native-inputs’ of GAWK.  Remove "locales"
entry.
(canonical-package): Add “glibc-utf8-locales” entry.
* gnu/packages/base.scm (libc-utf8-locales-for-target): Use
‘canonical-package’.
* gnu/packages/gawk.scm (gawk)[native-inputs]: New field.
* gnu/packages/texinfo.scm (texinfo)[native-inputs]: Add
‘libc-utf8-locales-for-target’.

Change-Id: I2283ffc6c6000c98ad2db89c04d581e050667c94
4 files changed, 33 insertions(+), 22 deletions(-)

M gnu/packages/base.scm
M gnu/packages/commencement.scm
M gnu/packages/gawk.scm
M gnu/packages/texinfo.scm
M gnu/packages/base.scm => gnu/packages/base.scm +8 -3
@@ 1651,9 1651,14 @@ command.")
(define* (libc-utf8-locales-for-target #:optional
                                       (target (or (%current-target-system)
                                                   (%current-system))))
  (if (target-hurd? target)
      glibc-utf8-locales/hurd
      glibc-utf8-locales))
  "Return the glibc UTF-8 locale package for TARGET."
  ;; Note: To avoid circular dependencies (such as: texinfo ->
  ;; glibc-utf8-locales -> glibc -> texinfo), refer to
  ;; 'glibc-utf8-locales-final' via 'canonical-package'.
  (canonical-package
   (if (target-hurd? target)
       glibc-utf8-locales/hurd
       glibc-utf8-locales)))

(define-public tzdata
  (package

M gnu/packages/commencement.scm => gnu/packages/commencement.scm +15 -16
@@ 3394,17 3394,11 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                   #:guile guile-final
                   #:bash bash-final))

(define (%boot5-inputs)
  ;; Now with UTF-8 locales.  Remember that the bootstrap binaries were built
  ;; with an older libc, which cannot load the new locale format.  See
  ;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
  `(("locales" ,(if (target-hurd?)
                    glibc-utf8-locales-final/hurd
                    glibc-utf8-locales-final))
    ,@(%boot4-inputs)))

(define with-boot5
  (package-with-explicit-inputs %boot5-inputs))
;; There used to be a "stage 5" including a variant of the
;; 'glibc-utf8-locales' package.  This is no longer necessary since 'glibc'
;; embeds the "C.UTF-8" locale, but these aliases are kept for convenience.
(define %boot5-inputs %boot4-inputs)
(define with-boot5 with-boot4)

(define gnu-make-final
  ;; The final GNU Make, which uses the final Guile.


@@ 3493,7 3487,11 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                   ("diffutils" ,diffutils)
                   ("patch" ,patch/pinned)
                   ("findutils" ,findutils)
                   ("gawk" ,gawk)))
                   ("gawk" ,(package/inherit gawk
                              (native-inputs
                               (list (if (target-hurd?)
                                         glibc-utf8-locales-final/hurd
                                         glibc-utf8-locales-final)))))))
          ("sed" ,sed-final)
          ("grep" ,grep-final)
          ("xz" ,xz-final)


@@ 3504,10 3502,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
          ("binutils" ,binutils-final)
          ("gcc" ,gcc-final)
          ("libc" ,glibc-final)
          ("libc:static" ,glibc-final "static")
          ("locales" ,(if (target-hurd? (%current-system))
                          glibc-utf8-locales-final/hurd
                          glibc-utf8-locales-final)))))))
          ("libc:static" ,glibc-final "static"))))))

(define-public canonical-package
  (let ((name->package (mlambda (system)


@@ 3518,6 3513,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
                                                package result))))
                               vlist-null
                               `(("guile" ,guile-final)
                                 ("glibc-utf8-locales"
                                  ,(if (target-hurd? system)
                                       glibc-utf8-locales-final/hurd
                                       glibc-utf8-locales-final))
                                 ,@(%final-inputs system))))))
    (lambda (package)
      "Return the 'canonical' variant of PACKAGE---i.e., if PACKAGE is one of

M gnu/packages/gawk.scm => gnu/packages/gawk.scm +5 -1
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2016, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org>


@@ 79,6 79,10 @@
                    (("#! /usr/bin/gawk")
                     (string-append "#!" (which "gawk")))))))))

   ;; Tests explicitly require en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8 and
   ;; ja_JP.UTF-8.
   (native-inputs (list (libc-utf8-locales-for-target)))

   (inputs (list libsigsegv
                 ;; Use the full-fledged Bash package, otherwise the test suite
                 ;; sometimes fail non-deterministically.

M gnu/packages/texinfo.scm => gnu/packages/texinfo.scm +5 -2
@@ 38,6 38,7 @@
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages base)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages ncurses)


@@ 79,10 80,12 @@
       #:tests? ,(and (not (target-hurd?))
                      (not (%current-target-system)))))
    (inputs (list ncurses perl))

    ;; When cross-compiling, texinfo will build some of its own binaries with
    ;; the native compiler. This means ncurses is needed both in both inputs
    ;; and native-inputs.
    (native-inputs (list perl ncurses))
    ;; and native-inputs.  Some of its tests require extra locales such as
    ;; fr_FR.UTF-8.
    (native-inputs (list perl ncurses (libc-utf8-locales-for-target)))

    (native-search-paths
     ;; This is the variable used by the standalone Info reader.