Subject: [PATCH 3/6] gnu: glibc-utf8-locales: Always use native package.

From: Mathieu Othacehe <[email-masked]>
Date: Fri, 12 Apr 2019 15:15:53 +0200

* gnu/installer.scm (build-compiled-file): Use native glibc-utf8-locales.
* gnu/services/base.scm (guix-shepherd-service): Ditto,
(guix-publish-shepherd-service): ditto.
* guix/profiles.scm (profile-derivation): Ditto.
* guix/self.scm (guix-command): Ditto.
* gnu/packages/package-management.scm (guix)[inputs]: Move glibc-utf8-locales
from here ...,
[native-inputs]: ... to here,
[phases]: search for glibc-utf8-locales in native-inputs and inputs in
'wrap-program phase.
---
 gnu/installer.scm                   |  4 ++--
 gnu/packages/package-management.scm | 16 ++++++++++------
 gnu/services/base.scm               |  6 +++---
 guix/profiles.scm                   |  3 ++-
 guix/self.scm                       |  3 ++-
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/gnu/installer.scm b/gnu/installer.scm
index 50e2e7d85e..bbf2441061 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2019 Ludovic Courtès <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -62,7 +62,7 @@ version of this file."
   (define set-utf8-locale
     #~(begin
         (setenv "LOCPATH"
-                #$(file-append glibc-utf8-locales "/lib/locale/"
+                #+(file-append glibc-utf8-locales "/lib/locale/"
                                (version-major+minor
                                 (package-version glibc-utf8-locales))))
         (setlocale LC_ALL "en_US.utf8")))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4808687227..6720cac783 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Eric Bavier <[email-masked]>
 ;;; Copyright © 2019 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2019 Vagrant Cascadian <[email-masked]>
+;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -217,7 +218,10 @@
                         (setenv "SHELL" (which "sh"))
                         #t))
                     (add-after 'install 'wrap-program
-                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (lambda* (#:key
+                                inputs native-inputs
+                                outputs
+                                #:allow-other-keys)
                         ;; Make sure the 'guix' command finds GnuTLS,
                         ;; Guile-JSON, and Guile-Git automatically.
                         (let* ((out    (assoc-ref outputs "out"))
@@ -230,7 +234,8 @@
                                                   "guile-bytestructures"))
                                (ssh    (assoc-ref inputs "guile-ssh"))
                                (gnutls (assoc-ref inputs "gnutls"))
-                               (locales (assoc-ref inputs "glibc-utf8-locales"))
+                               (locales (assoc-ref (or native-inputs inputs)
+                                                   "glibc-utf8-locales"))
                                (deps   (list gcrypt json sqlite gnutls
                                              git bs ssh))
                                (effective
@@ -258,7 +263,8 @@
                             `("GUIX_LOCPATH" ":" suffix (,locpath)))
 
                           #t))))))
-      (native-inputs `(("pkg-config" ,pkg-config)
+      (native-inputs `(("glibc-utf8-locales" ,glibc-utf8-locales)
+                       ("pkg-config" ,pkg-config)
 
                        ;; XXX: Keep the development inputs here even though
                        ;; they're unnecessary, just so that 'guix environment
@@ -288,9 +294,7 @@
          ,@(if (and (not (%current-target-system))
                     (string=? (%current-system) "x86_64-linux"))
                `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
-               '())
-
-         ("glibc-utf8-locales" ,glibc-utf8-locales)))
+               '())))
       (propagated-inputs
        `(("gnutls" ,gnutls)
          ("guile-gcrypt" ,guile-gcrypt)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 65f7ff29c8..760d65e5ca 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <[email-masked]>
 ;;; Copyright © 2016 David Craven <[email-masked]>
 ;;; Copyright © 2016 Ricardo Wurmus <[email-masked]>
-;;; Copyright © 2018 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2019 Efraim Flashner <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -1638,7 +1638,7 @@ archive' public keys, with GUIX."
                      ;; file names such as 'nss-certs'.  See
                      ;; <https://bugs.gnu.org/32942>.
                      (string-append "GUIX_LOCPATH="
-                                    #$glibc-utf8-locales "/lib/locale")
+                                    #+glibc-utf8-locales "/lib/locale")
                      "LC_ALL=en_US.utf8")
 
                #:log-file #$log-file))
@@ -1774,7 +1774,7 @@ archive' public keys, with GUIX."
                       ;; as 'nss-certs'.  See <https://bugs.gnu.org/26948>.
                       #:environment-variables
                       (list (string-append "GUIX_LOCPATH="
-                                           #$glibc-utf8-locales "/lib/locale")
+                                           #+glibc-utf8-locales "/lib/locale")
                             "LC_ALL=en_US.utf8")))
             (stop #~(make-kill-destructor)))))))
 
diff --git a/guix/profiles.scm b/guix/profiles.scm
index dfc9ba1ca0..252910d0e5 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Chris Marusich <[email-masked]>
 ;;; Copyright © 2017 Huang Ying <[email-masked]>
 ;;; Copyright © 2017 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1477,7 +1478,7 @@ are cross-built for TARGET."
       ;; install a UTF-8 locale.
       #~(begin
           (setenv "LOCPATH"
-                  #$(file-append glibc-utf8-locales "/lib/locale/"
+                  #+(file-append glibc-utf8-locales "/lib/locale/"
                                  (version-major+minor
                                   (package-version glibc-utf8-locales))))
           (setlocale LC_ALL "en_US.utf8")))
diff --git a/guix/self.scm b/guix/self.scm
index 7ba2764eb9..dc0aba8987 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -421,7 +422,7 @@ load path."
                               (string-append (if locpath
                                                  (string-append locpath ":")
                                                  "")
-                                             #$(file-append glibc-utf8-locales
+                                             #+(file-append glibc-utf8-locales
                                                             "/lib/locale"))))
 
                     (let ((guix-main (module-ref (resolve-interface '(guix ui))
-- 
2.17.1