Subject: [bug#67507] [PATCH v2 0/2] Using the right locales on GNU/Hurd

From: Ludovic Courtès <[email-masked]>
Date: Wed, 29 Nov 2023 16:44:49 +0100

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