unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#67507] [PATCH] packages: Use glibc-utf8-locales/hurd in %standard-patch-inputs.
@ 2023-11-28 11:33 Christopher Baines
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Christopher Baines @ 2023-11-28 11:33 UTC (permalink / raw)
  To: 67507
  Cc: Christopher Baines, Josselin Poiret, Ludovic Courtès,
	Mathieu Othacehe, Ricardo Wurmus, Simon Tournier,
	Tobias Geerinckx-Rice

When targeting the hurd.  This is a follow up to
95ea1277ae2ebd278bdb51a7887f5ba1116fbc64 that prevents an infinite loop when
trying to compute the derivation for guix for the hurd.

* guix/packages.scm (%standard-patch-inputs): Use glibc-utf8-locales/hurd when
targeting the hurd.

Change-Id: I8cdc2d9c28677000290ca1b31f580c4d3043f1ef
---
 guix/packages.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/guix/packages.scm b/guix/packages.scm
index e2e82692ad..f4aa0e78fa 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -866,7 +866,10 @@ (define (%standard-patch-inputs)
       ("lzip"  ,(ref '(gnu packages compression) 'lzip))
       ("unzip" ,(ref '(gnu packages compression) 'unzip))
       ("patch" ,(ref '(gnu packages base) 'patch))
-      ("locales" ,(ref '(gnu packages base) 'glibc-utf8-locales)))))
+      ("locales" ,(ref '(gnu packages base)
+                       (if (target-hurd?)
+                           'glibc-utf8-locales/hurd
+                           'glibc-utf8-locales))))))
 
 (define (default-guile)
   "Return the default Guile package used to run the build code of

base-commit: 62376e3eb67644454bc655bed56be4be965bd13e
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-11-28 11:33 [bug#67507] [PATCH] packages: Use glibc-utf8-locales/hurd in %standard-patch-inputs Christopher Baines
@ 2023-11-29 15:44 ` Ludovic Courtès
  2023-11-29 17:39   ` Janneke Nieuwenhuizen
  2023-12-01 18:42   ` Christopher Baines
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 1/2] gnu: Add ‘libc-locales-for-target’ and related Ludovic Courtès
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 2/2] gnu: Use ‘libc-utf8-locales-for-target’ Ludovic Courtès
  2 siblings, 2 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-11-29 15:44 UTC (permalink / raw)
  To: 67507; +Cc: Ludovic Courtès, Janneke Nieuwenhuizen

Hello!

This is an updated version of Janneke's patches
in <https://issues.guix.gnu.org/66472> combined with
Christopher's patch from <https://issues.guix.gnu.org/67507>.
Team work!

This should fix the infamous dependency cycle introduced
in 95ea1277ae2ebd278bdb51a7887f5ba1116fbc64 *and* ensure
the right version of glibc locale data is used throughout.

One thing that sucks is that, anytime we were doing:

  #~(… #+glibc-utf8-locales …)

we now have to do:

  #~(… #+(libc-locales-for-target (%current-system)) …)

to explicitly request the native libc locales.

I verified things like this:

  ./pre-inst-env guix build coreutils --target=i586-pc-gnu
  ./pre-inst-env guix build findutils -s i586-gnu --no-grafts
  make check-system TESTS=childhurd

and also, after adding #:system "i586-gnu" to the ‘build’
call in ‘build-aux/compile-as-derivation.scm’ as Chris
suggested on IRC:

  make as-derivation

I didn’t let it run to completion because that triggers a
lot of expensive builds, but it no longer eats all the
memory doing nothing as was the case since
95ea1277ae2ebd278bdb51a7887f5ba1116fbc64.

Thanks,
Ludo’.

Janneke Nieuwenhuizen (2):
  gnu: Add ‘libc-locales-for-target’ and related.
  gnu: Use ‘libc-utf8-locales-for-target’.

 gnu/home/services/ssh.scm           |  8 ++++---
 gnu/installer.scm                   |  7 +++---
 gnu/packages/base.scm               | 19 +++++++++++++++
 gnu/packages/chromium.scm           |  2 +-
 gnu/packages/gnome.scm              |  4 ++--
 gnu/packages/javascript.scm         |  2 +-
 gnu/packages/package-management.scm |  4 ++--
 gnu/packages/raspberry-pi.scm       |  2 +-
 gnu/packages/suckless.scm           |  2 +-
 gnu/services.scm                    |  4 +++-
 gnu/services/base.scm               |  7 ++++--
 gnu/services/guix.scm               | 23 +++++++++++-------
 gnu/services/web.scm                |  6 +++--
 gnu/system/image.scm                | 13 ++++++----
 gnu/system/install.scm              |  2 +-
 guix/packages.scm                   |  6 ++++-
 guix/profiles.scm                   | 37 +++++++++++++++++------------
 guix/scripts/pack.scm               |  8 +++++--
 guix/self.scm                       |  5 +++-
 tests/pack.scm                      |  7 +++---
 tests/profiles.scm                  |  4 ++--
 21 files changed, 116 insertions(+), 56 deletions(-)


base-commit: f3173bb901c0eee6c71d066cffab115d27052fc1
-- 
2.41.0





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 1/2] gnu: Add ‘libc-locales-for-target’ and related.
  2023-11-28 11:33 [bug#67507] [PATCH] packages: Use glibc-utf8-locales/hurd in %standard-patch-inputs Christopher Baines
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
@ 2023-11-29 15:44 ` Ludovic Courtès
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 2/2] gnu: Use ‘libc-utf8-locales-for-target’ Ludovic Courtès
  2 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-11-29 15:44 UTC (permalink / raw)
  To: 67507; +Cc: Ludovic Courtès, Janneke Nieuwenhuizen

From: Janneke Nieuwenhuizen <janneke@gnu.org>

Partly fixes <https://issues.guix.gnu.org/66472>.

This is a followup to 95ea1277ae2ebd278bdb51a7887f5ba1116fbc64.

* gnu/packages/base.scm (glibc-locales/hurd): New variable
(libc-locales-for-target): Use it in new procedure.
(libc-utf8-locales-for-target): New procedure.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I16e187fcc65a5d4a3b065066b45ef9e45d1875f6
---
 gnu/packages/base.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 41aff0ca97..6b2e96dc9b 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -76,6 +76,8 @@ (define-module (gnu packages base)
   #:use-module (srfi srfi-26)
   #:export (glibc
             libc-for-target
+            libc-locales-for-target
+            libc-utf8-locales-for-target
             make-ld-wrapper
             libiconv-if-needed
             %final-inputs))
@@ -1526,6 +1528,23 @@ (define* (libc-for-target #:optional
     (_
      glibc)))
 
+(define-public glibc-locales/hurd
+  (make-glibc-locales glibc/hurd))
+
+(define* (libc-locales-for-target #:optional
+                                  (target (or (%current-target-system)
+                                              (%current-system))))
+  (if (target-hurd? target)
+      glibc-locales/hurd
+      glibc-locales))
+
+(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))
+
 (define-public tzdata
   (package
     (name "tzdata")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 2/2] gnu: Use ‘libc-utf8-locales-for-target’.
  2023-11-28 11:33 [bug#67507] [PATCH] packages: Use glibc-utf8-locales/hurd in %standard-patch-inputs Christopher Baines
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 1/2] gnu: Add ‘libc-locales-for-target’ and related Ludovic Courtès
@ 2023-11-29 15:44 ` Ludovic Courtès
  2 siblings, 0 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-11-29 15:44 UTC (permalink / raw)
  To: 67507; +Cc: Ludovic Courtès, Christopher Baines, Janneke Nieuwenhuizen

From: Janneke Nieuwenhuizen <janneke@gnu.org>

* guix/packages.scm (%standard-patch-inputs): Use
‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’.
* guix/self.scm (%packages): Likewise.
* gnu/home/services/ssh.scm (file-join): Likewise
* gnu/installer.scm (build-compiled-file): Likewise.
* gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise.
* gnu/packages/gnome.scm (libgweather4, tracker): Likewise.
* gnu/packages/javascript.scm (js-mathjax): Likewise.
* gnu/packages/package-management.scm (guix, flatpak): Likewise.
* gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise.
* gnu/packages/suckless.scm (svkbd): Likewise.
* gnu/services.scm (cleanup-gexp): Likewise.
* gnu/services/base.scm (guix-publish-shepherd-service): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services)
(guix-build-coordinator-agent-shepherd-services): Likewise.
* gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services):
(guix-data-service-shepherd-services)
(nar-herder-shepherd-services)
(bffe-shepherd-services): Likewise.
* gnu/services/web.scm (anonip-shepherd-service)
(mumi-shepherd-services): Likewise.
* gnu/system/image.scm (system-disk-image, system-iso9660-image)
(system-docker-image, system-tarball-image): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/profiles.scm (info-dir-file): Likewise.
(ca-certificate-bundle, profile-derivation): Likewise.
* guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise.
* tests/pack.scm: Likewise.
* tests/profiles.scm ("profile-derivation, cross-compilation"):
Likewise.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Co-authored-by: Christopher Baines <mail@cbaines.net>
Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374
---
 gnu/home/services/ssh.scm           |  8 ++++---
 gnu/installer.scm                   |  7 +++---
 gnu/packages/chromium.scm           |  2 +-
 gnu/packages/gnome.scm              |  4 ++--
 gnu/packages/javascript.scm         |  2 +-
 gnu/packages/package-management.scm |  4 ++--
 gnu/packages/raspberry-pi.scm       |  2 +-
 gnu/packages/suckless.scm           |  2 +-
 gnu/services.scm                    |  4 +++-
 gnu/services/base.scm               |  7 ++++--
 gnu/services/guix.scm               | 23 +++++++++++-------
 gnu/services/web.scm                |  6 +++--
 gnu/system/image.scm                | 13 ++++++----
 gnu/system/install.scm              |  2 +-
 guix/packages.scm                   |  6 ++++-
 guix/profiles.scm                   | 37 +++++++++++++++++------------
 guix/scripts/pack.scm               |  8 +++++--
 guix/self.scm                       |  5 +++-
 tests/pack.scm                      |  7 +++---
 tests/profiles.scm                  |  4 ++--
 20 files changed, 97 insertions(+), 56 deletions(-)

diff --git a/gnu/home/services/ssh.scm b/gnu/home/services/ssh.scm
index 34b1fe4658..295707d59f 100644
--- a/gnu/home/services/ssh.scm
+++ b/gnu/home/services/ssh.scm
@@ -25,6 +25,7 @@ (define-module (gnu home services ssh)
   #:use-module (guix deprecation)
   #:use-module (guix diagnostics)
   #:use-module (guix i18n)
+  #:use-module ((guix utils) #:select (%current-system))
   #:use-module (gnu services)
   #:use-module (gnu services configuration)
   #:use-module (guix modules)
@@ -32,7 +33,7 @@ (define-module (gnu home services ssh)
   #:use-module (gnu home services shepherd)
   #:use-module ((gnu home services utils)
                 #:select (object->camel-case-string))
-  #:autoload   (gnu packages base) (glibc-utf8-locales)
+  #:autoload   (gnu packages base) (libc-utf8-locales-for-target)
   #:use-module (gnu packages ssh)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
@@ -357,8 +358,9 @@ (define* (file-join name files #:optional (delimiter " "))
 
                        ;; Support non-ASCII file names.
                        (setenv "GUIX_LOCPATH"
-                               #+(file-append glibc-utf8-locales
-                                              "/lib/locale"))
+                               #+(file-append
+                                  (libc-utf8-locales-for-target (%current-system))
+                                  "/lib/locale"))
                        (setlocale LC_ALL "en_US.utf8")
 
                        (call-with-output-file #$output
diff --git a/gnu/installer.scm b/gnu/installer.scm
index d9b71e2ca8..db79c11530 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -85,9 +85,10 @@ (define* (build-compiled-file name locale-builder)
   (define set-utf8-locale
     #~(begin
         (setenv "LOCPATH"
-                #$(file-append glibc-utf8-locales "/lib/locale/"
-                               (version-major+minor
-                                (package-version glibc-utf8-locales))))
+                #$(file-append
+                   (libc-utf8-locales-for-target) "/lib/locale/"
+                   (version-major+minor
+                    (package-version (libc-utf8-locales-for-target)))))
         (setlocale LC_ALL "en_US.utf8")))
 
   (define builder
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 513e545938..bc49e24f0e 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -967,7 +967,7 @@ (define-public ungoogled-chromium/wayland
     (name "ungoogled-chromium-wayland")
     (native-inputs '())
     (inputs
-     (list bash-minimal glibc-utf8-locales ungoogled-chromium))
+     (list bash-minimal (libc-utf8-locales-for-target) ungoogled-chromium))
     (build-system trivial-build-system)
     (arguments
      (list
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0be935585d..7364655d25 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5917,7 +5917,7 @@ (define-public libgweather4
            gi-docgen
            `(,glib "bin")               ;for glib-mkenums
            gobject-introspection
-           glibc-utf8-locales
+           (libc-utf8-locales-for-target)
            gsettings-desktop-schemas
            pkg-config
            python
@@ -9471,7 +9471,7 @@ (define-public tracker
     (native-inputs
      (list gettext-minimal
            `(,glib "bin")
-           glibc-utf8-locales
+           (libc-utf8-locales-for-target)
            gobject-introspection
            docbook-xsl
            docbook-xml
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index e70aa7d7e1..2c7ff744ea 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -184,7 +184,7 @@ (define-public js-mathjax
            #t))))
     (native-inputs
      `(("font-mathjax" ,font-mathjax)
-       ("glibc-utf8-locales" ,glibc-utf8-locales)
+       ("glibc-utf8-locales" ,(libc-utf8-locales-for-target))
        ("uglifyjs" ,node-uglify-js)
        ,@(package-native-inputs font-mathjax)))
     (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 756222318b..ba0bede493 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -524,7 +524,7 @@ (define-public guix
 
          ("git-minimal" ,git-minimal)             ;for 'guix perform-download'
 
-         ("glibc-utf8-locales" ,glibc-utf8-locales)))
+         ("glibc-utf8-locales" ,(libc-utf8-locales-for-target))))
       (propagated-inputs
        `(("guile-gnutls" ,guile-gnutls)
          ;; Avahi requires "glib" which doesn't cross-compile yet.
@@ -2052,7 +2052,7 @@ (define-public flatpak
            dbus ; for dbus-daemon
            gettext-minimal
            `(,glib "bin") ; for glib-mkenums + gdbus-codegen
-           glibc-utf8-locales
+           (libc-utf8-locales-for-target)
            gobject-introspection
            libcap
            pkg-config
diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm
index 80bfaf0896..5c25ed96da 100644
--- a/gnu/packages/raspberry-pi.scm
+++ b/gnu/packages/raspberry-pi.scm
@@ -199,7 +199,7 @@ (define-public raspi-arm64-chainloader
        ("ld-wrapper" ,ld-wrapper)
        ("make" ,gnu-make)
        ("gcc" ,gcc-6)
-       ("locales" ,glibc-utf8-locales)))
+       ("locales" ,(libc-utf8-locales-for-target))))
     (inputs
      `())
     (arguments
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 400832045f..714225c654 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -1247,7 +1247,7 @@ (define-public svkbd
                (delete 'configure)))) ;no configure script
     (native-inputs (list pkg-config))
     (inputs (list freetype libx11 libxft libxtst libxinerama))
-    (propagated-inputs (list glibc-utf8-locales))
+    (propagated-inputs (list (libc-utf8-locales-for-target)))
     (home-page "https://tools.suckless.org/x/svkbd/")
     (synopsis "Virtual on-screen keyboard")
     (description "svkbd is a simple virtual keyboard, intended to be used in
diff --git a/gnu/services.scm b/gnu/services.scm
index ff153fbc7b..23c3d8a9f4 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -651,7 +651,9 @@ (define (cleanup-gexp _)
            ;; Force file names to be decoded as UTF-8.  See
            ;; <https://bugs.gnu.org/26353>.
            (setenv "GUIX_LOCPATH"
-                   #+(file-append glibc-utf8-locales "/lib/locale"))
+                   #+(file-append
+                      (libc-utf8-locales-for-target (%current-system))
+                      "/lib/locale"))
            (setlocale LC_CTYPE "en_US.utf8")
            (delete-file-recursively "/tmp")
            (delete-file-recursively "/var/run")
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 82c6940780..dc001fdef6 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -63,7 +63,9 @@ (define-module (gnu services base)
   #:use-module (gnu packages bash)
   #:use-module ((gnu packages base)
                 #:select (coreutils glibc glibc/hurd
-                          glibc-utf8-locales make-glibc-utf8-locales
+                          glibc-utf8-locales
+                          libc-utf8-locales-for-target
+                          make-glibc-utf8-locales
                           tar canonical-package))
   #:use-module ((gnu packages compression) #:select (gzip))
   #:use-module (gnu packages fonts)
@@ -2147,7 +2149,8 @@ (define (guix-publish-shepherd-service config)
                       ;; nars for packages that contain UTF-8 file names such
                       ;; as 'nss-certs'.  See <https://bugs.gnu.org/26948>.
                       (list (string-append "GUIX_LOCPATH="
-                                           #$glibc-utf8-locales "/lib/locale")
+                                           #$(libc-utf8-locales-for-target)
+                                           "/lib/locale")
                             "LC_ALL=en_US.utf8")
                       #:log-file "/var/log/guix-publish.log"))
           (endpoints #~(let ((ai (false-if-exception
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index fe602efb99..389903451a 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -23,7 +23,7 @@ (define-module (gnu services guix)
   #:use-module (guix records)
   #:use-module (guix packages)
   #:use-module ((gnu packages base)
-                #:select (glibc-utf8-locales))
+                #:select (libc-utf8-locales-for-target))
   #:use-module (gnu packages admin)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages web)
@@ -381,7 +381,8 @@ (define (guix-build-coordinator-shepherd-services config)
                      #:pid-file-timeout 60
                      #:environment-variables
                      `(,(string-append
-                         "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                         "GUIX_LOCPATH="
+                         #$(libc-utf8-locales-for-target) "/lib/locale")
                        "LC_ALL=en_US.utf8"
                        "PATH=/run/current-system/profile/bin" ; for hooks
                        #$@extra-environment-variables)
@@ -508,7 +509,8 @@ (define (guix-build-coordinator-agent-shepherd-services config)
               #:user #$user
               #:environment-variables
               `(,(string-append
-                  "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                  "GUIX_LOCPATH="
+                  #$(libc-utf8-locales-for-target) "/lib/locale")
                 ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
                 "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
                 "LC_ALL=en_US.utf8")
@@ -600,7 +602,8 @@ (define (guix-build-coordinator-queue-builds-shepherd-services config)
               #:user #$user
               #:environment-variables
               `(,(string-append
-                  "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                  "GUIX_LOCPATH="
+                  #$(libc-utf8-locales-for-target) "/lib/locale")
                 "LC_ALL=en_US.utf8")
               #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))))
       (stop #~(make-kill-destructor))
@@ -712,7 +715,8 @@ (define (guix-data-service-shepherd-services config)
                 #:pid-file "/var/run/guix-data-service/pid"
                 #:environment-variables
                 `(,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                    "GUIX_LOCPATH="
+                    #$(libc-utf8-locales-for-target) "/lib/locale")
                   "LC_ALL=en_US.UTF-8")
                 #:log-file "/var/log/guix-data-service/web.log"))
       (stop #~(make-kill-destructor)))
@@ -733,7 +737,8 @@ (define (guix-data-service-shepherd-services config)
                 `("HOME=/var/lib/guix-data-service"
                   "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
                   ,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                    "GUIX_LOCPATH="
+                    #$(libc-utf8-locales-for-target) "/lib/locale")
                   "LC_ALL=en_US.UTF-8")
                 #:log-file "/var/log/guix-data-service/process-jobs.log"))
       (stop #~(make-kill-destructor))))))
@@ -989,7 +994,8 @@ (define (nar-herder-shepherd-services config)
                 #:pid-file "/var/run/nar-herder/pid"
                 #:environment-variables
                 `(,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                    "GUIX_LOCPATH="
+                    #$(libc-utf8-locales-for-target) "/lib/locale")
                   "LC_ALL=en_US.utf8"
                   #$@extra-environment-variables)
                 #:log-file "/var/log/nar-herder/server.log"))
@@ -1108,7 +1114,8 @@ (define (bffe-shepherd-services config)
                 #:directory "/var/lib/bffe"
                 #:environment-variables
                 `(,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                    "GUIX_LOCPATH="
+                    #$(libc-utf8-locales-for-target) "/lib/locale")
                   "LC_ALL=en_US.utf8"
                   #$@extra-environment-variables)
                 #:log-file "/var/log/bffe/server.log"))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 818226a4f7..023b187cb0 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -1498,7 +1498,8 @@ (define (anonip-shepherd-service config)
                '#$(optional anonip-configuration-regex "--regex"))
               ;; Run in a UTF-8 locale
               #:environment-variables
-              (list (string-append "GUIX_LOCPATH=" #$glibc-utf8-locales
+              (list (string-append "GUIX_LOCPATH="
+                                   #$(libc-utf8-locales-for-target)
                                    "/lib/locale")
                     "LC_ALL=en_US.utf8")))
 
@@ -1976,7 +1977,8 @@ (define %mumi-worker-log "/var/log/mumi.worker.log")
 (define (mumi-shepherd-services config)
   (define environment
     #~(list "LC_ALL=en_US.utf8"
-            (string-append "GUIX_LOCPATH=" #$glibc-utf8-locales
+            (string-append "GUIX_LOCPATH="
+                           #$(libc-utf8-locales-for-target)
                            "/lib/locale")))
 
   (match config
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index a990c4f861..b825892232 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -466,7 +466,9 @@ (define* (system-disk-image image
                  ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be
                  ;; decoded.
                  (setenv "GUIX_LOCPATH"
-                         #+(file-append glibc-utf8-locales "/lib/locale"))
+                         #+(file-append (libc-utf8-locales-for-target
+                                         (%current-system))
+                                        "/lib/locale"))
                  (setlocale LC_ALL "en_US.utf8")
 
                  (initializer image-root
@@ -633,7 +635,8 @@ (define* (system-iso9660-image image
 
              ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
              (setenv "GUIX_LOCPATH"
-                     #+(file-append glibc-utf8-locales "/lib/locale"))
+                     #+(file-append (libc-utf8-locales-for-target (%current-system))
+                                    "/lib/locale"))
 
              (setlocale LC_ALL "en_US.utf8")
 
@@ -737,7 +740,8 @@ (define* (system-docker-image image
 
               ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
               (setenv "GUIX_LOCPATH"
-                      #+(file-append glibc-utf8-locales "/lib/locale"))
+                      #+(file-append (libc-utf8-locales-for-target (%current-system))
+                                     "/lib/locale"))
               (setlocale LC_ALL "en_US.utf8")
 
               (set-path-environment-variable "PATH" '("bin" "sbin") '(#+tar))
@@ -816,7 +820,8 @@ (define* (system-tarball-image image
 
               ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
               (setenv "GUIX_LOCPATH"
-                      #+(file-append glibc-utf8-locales "/lib/locale"))
+                      #+(file-append (libc-utf8-locales-for-target (%current-system))
+                                     "/lib/locale"))
               (setlocale LC_ALL "en_US.utf8")
 
               (let ((image-root (string-append (getcwd) "/tmp-root"))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 28161de153..336d13bd07 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -454,7 +454,7 @@ (define* (%installation-services #:key (system (or (and=>
            (service gc-root-service-type
                     (append
                      (list bare-bones-os
-                           glibc-utf8-locales
+                           (libc-utf8-locales-for-target system)
                            texinfo
                            guile-3.0)
                      %default-locale-libcs)))
diff --git a/guix/packages.scm b/guix/packages.scm
index e2e82692ad..b768dddb5f 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -866,7 +866,11 @@ (define (%standard-patch-inputs)
       ("lzip"  ,(ref '(gnu packages compression) 'lzip))
       ("unzip" ,(ref '(gnu packages compression) 'unzip))
       ("patch" ,(ref '(gnu packages base) 'patch))
-      ("locales" ,(ref '(gnu packages base) 'glibc-utf8-locales)))))
+      ("locales"
+       ,(parameterize ((%current-target-system #f))
+          (canonical
+           ((module-ref (resolve-interface '(gnu packages base))
+                        'libc-utf8-locales-for-target))))))))
 
 (define (default-guile)
   "Return the default Guile package used to run the build code of
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 5d2fb8dc64..ce2f8337bf 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1000,8 +1000,9 @@ (define* (info-dir-file manifest #:optional system)
     (module-ref (resolve-interface '(gnu packages texinfo)) 'texinfo))
   (define gzip                                    ;lazy reference
     (module-ref (resolve-interface '(gnu packages compression)) 'gzip))
-  (define glibc-utf8-locales                      ;lazy reference
-    (module-ref (resolve-interface '(gnu packages base)) 'glibc-utf8-locales))
+  (define libc-utf8-locales-for-target            ;lazy reference
+    (module-ref (resolve-interface '(gnu packages base))
+                'libc-utf8-locales-for-target))
 
   (define build
     (with-imported-modules '((guix build utils))
@@ -1043,7 +1044,8 @@ (define* (info-dir-file manifest #:optional system)
 
           (setenv "PATH" (string-append #+gzip "/bin")) ;for info.gz files
           (setenv "GUIX_LOCPATH"
-                  #+(file-append glibc-utf8-locales "/lib/locale"))
+                  #+(file-append (libc-utf8-locales-for-target system)
+                                 "/lib/locale"))
 
           (mkdir-p (string-append #$output "/share/info"))
           (exit (every install-info
@@ -1124,8 +1126,9 @@ (define* (ca-certificate-bundle manifest #:optional system)
   ;; See <http://lists.gnu.org/archive/html/guix-devel/2015-02/msg00429.html>
   ;; for a discussion.
 
-  (define glibc-utf8-locales                      ;lazy reference
-    (module-ref (resolve-interface '(gnu packages base)) 'glibc-utf8-locales))
+  (define libc-utf8-locales-for-target  ;lazy reference
+    (module-ref (resolve-interface '(gnu packages base))
+                'libc-utf8-locales-for-target))
 
   (define build
     (with-imported-modules '((guix build utils))
@@ -1159,9 +1162,11 @@ (define* (ca-certificate-bundle manifest #:optional system)
           ;; Some file names in the NSS certificates are UTF-8 encoded so
           ;; install a UTF-8 locale.
           (setenv "LOCPATH"
-                  (string-append #+glibc-utf8-locales "/lib/locale/"
+                  (string-append #+(libc-utf8-locales-for-target system)
+                                 "/lib/locale/"
                                  #+(version-major+minor
-                                    (package-version glibc-utf8-locales))))
+                                    (package-version
+                                     (libc-utf8-locales-for-target system)))))
           (setlocale LC_ALL "en_US.utf8")
 
           (match (append-map ca-files '#$(manifest-inputs manifest))
@@ -1999,19 +2004,21 @@ (define* (profile-derivation manifest
                     (and (derivation? drv) (gexp-input drv)))
                   extras))
 
-    (define glibc-utf8-locales                    ;lazy reference
+    (define libc-utf8-locales-for-target ;lazy reference
       (module-ref (resolve-interface '(gnu packages base))
-                  'glibc-utf8-locales))
+                  'libc-utf8-locales-for-target))
 
     (define set-utf8-locale
       ;; Some file names (e.g., in 'nss-certs') are UTF-8 encoded so
       ;; install a UTF-8 locale.
-      #~(begin
-          (setenv "LOCPATH"
-                  #$(file-append glibc-utf8-locales "/lib/locale/"
-                                 (version-major+minor
-                                  (package-version glibc-utf8-locales))))
-          (setlocale LC_ALL "en_US.utf8")))
+      (let ((locales (libc-utf8-locales-for-target
+                      (or system (%current-system)))))
+        #~(begin
+            (setenv "LOCPATH"
+                    #$(file-append locales "/lib/locale/"
+                                   (version-major+minor
+                                    (package-version locales))))
+            (setlocale LC_ALL "en_US.utf8"))))
 
     (define builder
       (with-imported-modules '((guix build profiles)
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index bdbea49910..8071840de1 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -137,7 +137,8 @@ (define (store-database items)
 
             ;; Make sure non-ASCII file names are properly handled.
             (setenv "GUIX_LOCPATH"
-                    #+(file-append glibc-utf8-locales "/lib/locale"))
+                    #+(file-append (libc-utf8-locales-for-target (%current-system))
+                                   "/lib/locale"))
             (setlocale LC_ALL "en_US.utf8")
 
             (sql-schema #$schema)
@@ -209,7 +210,10 @@ (define (set-utf8-locale profile)
           (profile-locales? profile))
       #~(begin
           (setenv "GUIX_LOCPATH"
-                  #+(file-append glibc-utf8-locales "/lib/locale"))
+                  #+(file-append (let-system (system target)
+                                   (libc-utf8-locales-for-target
+                                    (or target system)))
+                                 "/lib/locale"))
           (setlocale LC_ALL "en_US.utf8"))
       #~(setenv "GUIX_LOCPATH" "unset for tests")))
 
diff --git a/guix/self.scm b/guix/self.scm
index a1f235659d..f378548959 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -73,7 +73,10 @@ (define %packages
       ("po4a"               . ,(ref 'gettext 'po4a))
       ("gettext-minimal"    . ,(ref 'gettext 'gettext-minimal))
       ("gcc-toolchain"      . ,(ref 'commencement 'gcc-toolchain))
-      ("glibc-utf8-locales" . ,(ref 'base 'glibc-utf8-locales))
+      ("glibc-utf8-locales" . ,(delay
+                                 ((module-ref (resolve-interface
+                                               '(gnu packages base))
+                                              'libc-utf8-locales-for-target))))
       ("graphviz"           . ,(ref 'graphviz 'graphviz-minimal))
       ("font-ghostscript"   . ,(ref 'ghostscript 'font-ghostscript))
       ("texinfo"            . ,(ref 'texinfo 'texinfo)))))
diff --git a/tests/pack.scm b/tests/pack.scm
index 8fdaed0168..ac78817a70 100644
--- a/tests/pack.scm
+++ b/tests/pack.scm
@@ -30,7 +30,7 @@ (define-module (test-pack)
   #:use-module (guix modules)
   #:use-module (guix utils)
   #:use-module (gnu packages)
-  #:use-module ((gnu packages base) #:select (glibc-utf8-locales))
+  #:use-module ((gnu packages base) #:select (libc-utf8-locales-for-target))
   #:use-module (gnu packages bootstrap)
   #:use-module ((gnu packages package-management) #:select (rpm))
   #:use-module ((gnu packages compression) #:select (squashfs-tools))
@@ -197,8 +197,9 @@ (define rpm-for-tests
                              ;; Make sure non-ASCII file names are properly
                              ;; handled.
                              (setenv "GUIX_LOCPATH"
-                                     #+(file-append glibc-utf8-locales
-                                                    "/lib/locale"))
+                                     #+(file-append
+                                        (libc-utf8-locales-for-target)
+                                        "/lib/locale"))
                              (setlocale LC_ALL "en_US.utf8")
 
                              (mkdir #$output)
diff --git a/tests/profiles.scm b/tests/profiles.scm
index 9c419ada93..ddd6d74f3b 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -463,7 +463,7 @@ (define glibc
        (target ->   "arm-linux-gnueabihf")
        (grep        (package->cross-derivation packages:grep target))
        (sed         (package->cross-derivation packages:sed target))
-       (locales     (package->derivation packages:glibc-utf8-locales))
+       (locales     (package->derivation (packages:libc-utf8-locales-for-target)))
        (drv         (profile-derivation manifest
                                         #:hooks '()
                                         #:locales? #t
@@ -482,7 +482,7 @@ (define glibc
                            (derivation-file-name grep))
                  (string=? (find-input packages:sed)
                            (derivation-file-name sed))
-                 (string=? (find-input packages:glibc-utf8-locales)
+                 (string=? (find-input (packages:libc-utf8-locales-for-target))
                            (derivation-file-name locales))))))
 
 (test-assert "package->manifest-entry defaults to \"out\""
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
@ 2023-11-29 17:39   ` Janneke Nieuwenhuizen
  2023-11-30 21:43     ` Ludovic Courtès
  2023-12-01 18:42   ` Christopher Baines
  1 sibling, 1 reply; 11+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-11-29 17:39 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 67507

Ludovic Courtès writes:

Hi!

This looks great...but I've added your patches to the bottom of
hurd-team, and also added a HACK commit with

--8<---------------cut here---------------start------------->8---
diff --git a/build-aux/compile-as-derivation.scm b/build-aux/compile-as-derivation.scm
index d945a8c79c..3bc4509f7a 100644
--- a/build-aux/compile-as-derivation.scm
+++ b/build-aux/compile-as-derivation.scm
@@ -51,7 +51,8 @@
            (mlet* %store-monad ((source (interned-file source "guix-source"
                                                        #:select? git?
                                                        #:recursive? #t))
-                                (drv    (build source #:pull-version 1)))
+                                (drv    (build source #:pull-version 1
+                                               #:system "i586-gnu")))
              (mbegin %store-monad
                (show-what-to-build* (list drv))
                (built-derivations (list drv))
--8<---------------cut here---------------end--------------->8---

...but running `make as-derivation' gives

--8<---------------cut here---------------start------------->8---
$ make as-derivation
Building Guix in Guix...
warning: 'nix-server-socket' is deprecated, use 'store-connection-socket' instead
warning: 'nix-server-major-version' is deprecated, use 'store-connection-major-version' instead
warning: 'nix-server-minor-version' is deprecated, use 'store-connection-minor-version' instead
Computing Guix derivation for 'i586-gnu'... |process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
\normalized load on machine 'kluit.dezyne.org' is 0.91
waiting for locks or build slots...
|process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
\normalized load on machine 'kluit.dezyne.org' is 0.64
\guix offload: sending 0 store items (0 MiB) to 'kluit.dezyne.org'...
offloading '/gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv' to 'kluit.dezyne.org'...
@ build-remote /gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv kluit.dezyne.org
retrieving 1 store item from 'kluit.dezyne.org'...
-importing file or directory '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.37'...
guix offload: error: corrupt input while restoring '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.37' from #<input-output: channel (open) 7f8c392faee0>
Backtrace:
cannot build derivation `/gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.drv': 1 dependencies couldn't be built
          16 (primitive-load "/gnu/store/9glf45m6x8icvia8421jz5gapxkgr3zi-compute-guix-derivation")
In ice-9/eval.scm:
    155:9 15 (_ _)
    159:9 14 (_ #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#<directory (guile-u?> ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?))
In ice-9/boot-9.scm:
    152:2 13 (with-fluid* _ _ _)
    152:2 12 (with-fluid* _ _ _)
In ./guix/store.scm:
  2168:24 11 (run-with-store #<store-connection 256.99 7faed7dee280> #<procedure 7faec76a3d20 at ./guix/self.scm:13?> ?)
In ./guix/self.scm:
   1354:2 10 (_ #<store-connection 256.99 7faed7dee280>)
In ./guix/packages.scm:
  2033:17  9 (_ #<store-connection 256.99 7faed7dee280>)
In ./guix/store.scm:
  2168:24  8 (run-with-store #<store-connection 256.99 7faed7dee280> #<procedure 7faec76bfe40 at ./guix/store.scm:1?> ?)
   1996:8  7 (_ #<store-connection 256.99 7faed7dee280>)
  2040:38  6 (_ #<store-connection 256.99 7faec95b7aa0>)
In ./guix/grafts.scm:
   323:16  5 (graft-derivation #<store-connection 256.99 7faec95b7aa0> #<derivation /gnu/store/2d6gh47cnnsv8zf5dvzn?> ?)
    285:4  4 (_ #<vlist ()>)
    173:4  3 (non-self-references #<store-connection 256.99 7faec95b7aa0> #<derivation /gnu/store/2d6gh47cnnsv8zf5d?> ?)
   175:20  2 (_ #t)
In ./guix/store.scm:
  1417:15  1 (_ #<store-connection 256.99 7faec95b7aa0> ("/gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.?") ?)
  1417:15  0 (loop #f)

./guix/store.scm:1417:15: In procedure loop:
ERROR:
  1. &store-protocol-error:
      message: "build of `/gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.drv' failed"
      status: 1
error: You found a bug: the program '/gnu/store/9glf45m6x8icvia8421jz5gapxkgr3zi-compute-guix-derivation'
failed to compute the derivation for Guix (version: "20231129.17"; system: "i586-gnu";
host version: "1.4.0-13.e863274"; pull-version: 1).
Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

make: *** [Makefile:7125: as-derivation] Error 1
[2]18:23:55 janneke@drakenpad:~/src/guix/hurd-team [env]
--8<---------------cut here---------------end--------------->8---

What am I missing?

(Thanks a lot for looking into this and working on my patches!)

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-11-29 17:39   ` Janneke Nieuwenhuizen
@ 2023-11-30 21:43     ` Ludovic Courtès
  2023-12-01 19:49       ` Janneke Nieuwenhuizen
  0 siblings, 1 reply; 11+ messages in thread
From: Ludovic Courtès @ 2023-11-30 21:43 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen; +Cc: 67507

Hello!

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> $ make as-derivation
> Building Guix in Guix...
> warning: 'nix-server-socket' is deprecated, use 'store-connection-socket' instead
> warning: 'nix-server-major-version' is deprecated, use 'store-connection-major-version' instead
> warning: 'nix-server-minor-version' is deprecated, use 'store-connection-minor-version' instead
> Computing Guix derivation for 'i586-gnu'... |process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
> \normalized load on machine 'kluit.dezyne.org' is 0.91
> waiting for locks or build slots...
> |process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
> \normalized load on machine 'kluit.dezyne.org' is 0.64
> \guix offload: sending 0 store items (0 MiB) to 'kluit.dezyne.org'...
> offloading '/gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv' to 'kluit.dezyne.org'...
> @ build-remote /gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv kluit.dezyne.org
> retrieving 1 store item from 'kluit.dezyne.org'...
> -importing file or directory '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.37'...
> guix offload: error: corrupt input while restoring '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.
[...]

>   1. &store-protocol-error:
>       message: "build of `/gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.drv' failed"
>       status: 1

This looks like an offloading issue.

What happens if you do this beforehand:

  guix build /gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.drv

?

(Note that I tested on ‘master’ though, so I’m not sure if there are
relevant differences between the two branches; I guess I should know
better…)

Thanks for testing!

Ludo’.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
  2023-11-29 17:39   ` Janneke Nieuwenhuizen
@ 2023-12-01 18:42   ` Christopher Baines
  1 sibling, 0 replies; 11+ messages in thread
From: Christopher Baines @ 2023-12-01 18:42 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 67507

[-- Attachment #1: Type: text/plain, Size: 739 bytes --]


Ludovic Courtès <ludo@gnu.org> writes:

> This is an updated version of Janneke's patches
> in <https://issues.guix.gnu.org/66472> combined with
> Christopher's patch from <https://issues.guix.gnu.org/67507>.
> Team work!
>
> This should fix the infamous dependency cycle introduced
> in 95ea1277ae2ebd278bdb51a7887f5ba1116fbc64 *and* ensure
> the right version of glibc locale data is used throughout.

These changes look good to me.

For the data service instances, it would be good to fix the infinite
loop issue sooner rather than later. For affected revisions, I think the
data service is effectively waiting until the relevant processes run out
of memory and crash, and this is slowing down processing revisions.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-11-30 21:43     ` Ludovic Courtès
@ 2023-12-01 19:49       ` Janneke Nieuwenhuizen
  2023-12-02 11:39         ` bug#67507: " Ludovic Courtès
  0 siblings, 1 reply; 11+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-12-01 19:49 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 67507

Ludovic Courtès writes:

Hi!

> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> $ make as-derivation
>> Building Guix in Guix...
>> warning: 'nix-server-socket' is deprecated, use 'store-connection-socket' instead
>> warning: 'nix-server-major-version' is deprecated, use 'store-connection-major-version' instead
>> warning: 'nix-server-minor-version' is deprecated, use 'store-connection-minor-version' instead
>> Computing Guix derivation for 'i586-gnu'... |process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
>> \normalized load on machine 'kluit.dezyne.org' is 0.91
>> waiting for locks or build slots...
>> |process 7189 acquired build slot '/var/guix/offload/kluit.dezyne.org:10022/0'
>> \normalized load on machine 'kluit.dezyne.org' is 0.64
>> \guix offload: sending 0 store items (0 MiB) to 'kluit.dezyne.org'...
>> offloading '/gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv' to 'kluit.dezyne.org'...
>> @ build-remote /gnu/store/3hc9fardc4pwmcjh6x5x6mi1yicvy861-glibc-utf8-locales-2.37.drv kluit.dezyne.org
>> retrieving 1 store item from 'kluit.dezyne.org'...
>> -importing file or directory '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.37'...
>> guix offload: error: corrupt input while restoring '/gnu/store/30knn5niz8j43aqly8qy4k20755n92kv-glibc-utf8-locales-2.
> [...]
>
>>   1. &store-protocol-error:
>>       message: "build of `/gnu/store/2d6gh47cnnsv8zf5dvznlsszai4ry5qc-guile-3.0.9.drv' failed"
>>       status: 1
>
> This looks like an offloading issue.

Yes, somehow I didn't have the correct chilhurd signging-key registered.

> (Note that I tested on ‘master’ though, so I’m not sure if there are
> relevant differences between the two branches; I guess I should know
> better…)
>
> Thanks for testing!

So, I created a new VM (needed to create yet another guix package update
commit on hurd-team to avoid the circular dependency thing), and (with
my curl fix from yesterday), now "guix shell -D guix" works again; and
without any glibc-2.35 afaics (there's only one x86_64-linux glibc-2.35
in the hurd's store, I guess that's to be expected).

I also tested on hurd-team using the `make as-derivation' trick with
#:system "i586-gnu" in compile-as-derivation.scm, which now fails with

--8<---------------cut here---------------start------------->8---
offloading '/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' to 'kluit.dezyne.org'...
@ build-remote /gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv kluit.dezyne.org
Backtrace:
In ice-9/boot-9.scm:
 160: 10 [catch #t #<catch-closure 1ba1510> ...]
In unknown file:
   ?: 9 [apply-smob/1 #<catch-closure 1ba1510>]
In ice-9/boot-9.scm:
  66: 8 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 7 [eval # #]
In ice-9/boot-9.scm:
2412: 6 [save-module-excursion #<procedure 1bb2c00 at ice-9/boot-9.scm:4084:3 ()>]
4089: 5 [#<procedure 1bb2c00 at ice-9/boot-9.scm:4084:3 ()>]
1734: 4 [%start-stack load-stack ...]
1739: 3 [#<procedure 1bbb930 ()>]
In unknown file:
   ?: 2 [primitive-load "/gnu/store/dljmqd3db20j9z9bbqlha71p3jzj7cvk-bash-minimal-5.1.16-builder"]
In ice-9/eval.scm:
 432: 1 [eval # ()]
In unknown file:
   ?: 0 [setlocale 6 "en_US.utf8"]

ERROR: In procedure setlocale:
ERROR: In procedure setlocale: Invalid argument
builder for `/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' failed with exit code 1
derivation '/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' offloaded to 'kluit.dezyne.org' failed: build of `/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' failed
--8<---------------cut here---------------end--------------->8---

Not sure where that comes from or if that's a problem

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#67507: [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-12-01 19:49       ` Janneke Nieuwenhuizen
@ 2023-12-02 11:39         ` Ludovic Courtès
  2023-12-02 14:38           ` [bug#67507] " Janneke Nieuwenhuizen
  2023-12-04 19:34           ` itd
  0 siblings, 2 replies; 11+ messages in thread
From: Ludovic Courtès @ 2023-12-02 11:39 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen, Christopher Baines; +Cc: 67507-done

Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> So, I created a new VM (needed to create yet another guix package update
> commit on hurd-team to avoid the circular dependency thing), and (with
> my curl fix from yesterday), now "guix shell -D guix" works again; and
> without any glibc-2.35 afaics (there's only one x86_64-linux glibc-2.35
> in the hurd's store, I guess that's to be expected).

Good.

> I also tested on hurd-team using the `make as-derivation' trick with
> #:system "i586-gnu" in compile-as-derivation.scm, which now fails with
>
> offloading '/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' to 'kluit.dezyne.org'...
> @ build-remote /gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv kluit.dezyne.org
> Backtrace:
> In ice-9/boot-9.scm:
>  160: 10 [catch #t #<catch-closure 1ba1510> ...]
> In unknown file:
>    ?: 9 [apply-smob/1 #<catch-closure 1ba1510>]
> In ice-9/boot-9.scm:
>   66: 8 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 7 [eval # #]
> In ice-9/boot-9.scm:
> 2412: 6 [save-module-excursion #<procedure 1bb2c00 at ice-9/boot-9.scm:4084:3 ()>]
> 4089: 5 [#<procedure 1bb2c00 at ice-9/boot-9.scm:4084:3 ()>]
> 1734: 4 [%start-stack load-stack ...]
> 1739: 3 [#<procedure 1bbb930 ()>]
> In unknown file:
>    ?: 2 [primitive-load "/gnu/store/dljmqd3db20j9z9bbqlha71p3jzj7cvk-bash-minimal-5.1.16-builder"]
> In ice-9/eval.scm:
>  432: 1 [eval # ()]
> In unknown file:
>    ?: 0 [setlocale 6 "en_US.utf8"]
>
> ERROR: In procedure setlocale:
> ERROR: In procedure setlocale: Invalid argument
> builder for `/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' failed with exit code 1

It builds for me now on ‘master’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build bash-minimal -s i586-gnu  --no-grafts
/gnu/store/0iw3v18ar8vy1yknnf84lv0jzmq6gjhm-bash-minimal-5.1.16-doc
/gnu/store/1gsf6zrl3fmbrip98nsqpkjykfhahmvd-bash-minimal-5.1.16
$ git log |head -1
commit aeb494322ca9dec4a4d66a7d063239c8536bd538
--8<---------------cut here---------------end--------------->8---

\o/

Christopher Baines <mail@cbaines.net> skribis:

> These changes look good to me.
>
> For the data service instances, it would be good to fix the infinite
> loop issue sooner rather than later. For affected revisions, I think the
> data service is effectively waiting until the relevant processes run out
> of memory and crash, and this is slowing down processing revisions.

Yeah.

Pushed as b0715d7cd2a74bc231751f8afc9dffb2047501ac.

Let’s do some more testing from here and see how it goes.

Thanks!

Ludo’.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-12-02 11:39         ` bug#67507: " Ludovic Courtès
@ 2023-12-02 14:38           ` Janneke Nieuwenhuizen
  2023-12-04 19:34           ` itd
  1 sibling, 0 replies; 11+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-12-02 14:38 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Christopher Baines, 67507-done

Ludovic Courtès writes:

Hi,

> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> I also tested on hurd-team using the `make as-derivation' trick with
>> #:system "i586-gnu" in compile-as-derivation.scm, which now fails with
[..]
>> ERROR: In procedure setlocale:
>> ERROR: In procedure setlocale: Invalid argument
>> builder for `/gnu/store/qy6l0gjjpc40frz57fv08shpwj4pssfd-bash-minimal-5.1.16.drv' failed with exit code 1
>
> It builds for me now on ‘master’:
>
> $ ./pre-inst-env guix build bash-minimal -s i586-gnu  --no-grafts
> /gnu/store/0iw3v18ar8vy1yknnf84lv0jzmq6gjhm-bash-minimal-5.1.16-doc
> /gnu/store/1gsf6zrl3fmbrip98nsqpkjykfhahmvd-bash-minimal-5.1.16
> $ git log |head -1
> commit aeb494322ca9dec4a4d66a7d063239c8536bd538
>
> \o/

Yeah, for me too; it's the grafting that seems to be implicit in `make
as-derivation'...so maybe that's not a great way to test this?

> Christopher Baines <mail@cbaines.net> skribis:
>
>> These changes look good to me.
>>
>> For the data service instances, it would be good to fix the infinite
>> loop issue sooner rather than later. For affected revisions, I think the
>> data service is effectively waiting until the relevant processes run out
>> of memory and crash, and this is slowing down processing revisions.
>
> Yeah.
>
> Pushed as b0715d7cd2a74bc231751f8afc9dffb2047501ac.
>
> Let’s do some more testing from here and see how it goes.

Great, thanks all!  For `guix shell -D guix' to work with this (i.e.,
not hang resolving the circular dependency), I updated the guix package
once again.

Does hurd-packages need to be enabled again at https://ci.guix.gnu.org/?

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd
  2023-12-02 11:39         ` bug#67507: " Ludovic Courtès
  2023-12-02 14:38           ` [bug#67507] " Janneke Nieuwenhuizen
@ 2023-12-04 19:34           ` itd
  1 sibling, 0 replies; 11+ messages in thread
From: itd @ 2023-12-04 19:34 UTC (permalink / raw)
  To: Ludovic Courtès, Janneke Nieuwenhuizen, Christopher Baines; +Cc: 67507

Dear all,

Ludovic Courtès <ludo@gnu.org> writes:

> Let’s do some more testing from here and see how it goes.

there was some discussion on IRC which, I think, is related to this
issue:
- https://logs.guix.gnu.org/guix/2023-12-03.log#104632
- https://logs.guix.gnu.org/guix/2023-12-04.log#165604

In short, people observe issues such as: "package glibc-locales@2.37
does not support x86_64-linux".  There is also #67586 describing this.

I am sharing it in case it is related and with the hope that it helps.

Best regards
itd




^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-12-04 19:36 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-28 11:33 [bug#67507] [PATCH] packages: Use glibc-utf8-locales/hurd in %standard-patch-inputs Christopher Baines
2023-11-29 15:44 ` [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd Ludovic Courtès
2023-11-29 17:39   ` Janneke Nieuwenhuizen
2023-11-30 21:43     ` Ludovic Courtès
2023-12-01 19:49       ` Janneke Nieuwenhuizen
2023-12-02 11:39         ` bug#67507: " Ludovic Courtès
2023-12-02 14:38           ` [bug#67507] " Janneke Nieuwenhuizen
2023-12-04 19:34           ` itd
2023-12-01 18:42   ` Christopher Baines
2023-11-29 15:44 ` [bug#67507] [PATCH v2 1/2] gnu: Add ‘libc-locales-for-target’ and related Ludovic Courtès
2023-11-29 15:44 ` [bug#67507] [PATCH v2 2/2] gnu: Use ‘libc-utf8-locales-for-target’ Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).