From b8ff269aeba1290021588331ba58d2be68843b72 Mon Sep 17 00:00:00 2001 From: Noah Evans Date: Mon, 11 Aug 2025 07:45:25 -0400 Subject: [PATCH] nonguix: multiarch-container: Try to install locale after symlinking. * nonguix/multiarch-container.scm (make-container-internal): Wrap fhs-internal-script with GUILE_INSTALL_LOCALE=0. * (make-internal-script): Try to install the locale after creating symlinks. --- nonguix/multiarch-container.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index dfebe9fb..010ecf7a 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -42,6 +42,7 @@ (define-module (nonguix multiarch-container) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (guix build-system trivial) #:use-module (guix gexp) #:use-module (guix records) @@ -443,7 +444,9 @@ the exact path for the fhs-internal package." (package-version (ngc-wrap-package container)))) (source #f) (inputs `(("fhs-internal-script" - ,(make-internal-script container)))) + ,(make-internal-script container)) + ("bash-minimal" ,bash-minimal) ; for wrap-program + )) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -452,9 +455,15 @@ the exact path for the fhs-internal package." (use-modules (guix build utils)) (let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) (internal-target (assoc-ref %build-inputs "fhs-internal-script")) - (internal-dest (string-append bin "/" ,(ngc-internal-name container)))) + (internal-dest (string-append bin "/" ,(ngc-internal-name container))) + (sh (string-append (assoc-ref %build-inputs "bash-minimal") "/bin/bash"))) (mkdir-p bin) - (symlink internal-target internal-dest))))) + (symlink internal-target internal-dest) + + ;; We want to install the locale manually after symlinking it. + ;; See + (wrap-program internal-dest #:sh sh + '("GUILE_INSTALL_LOCALE" = ("0"))))))) (home-page #f) (synopsis "Script used to set up sandbox") (description "Script used inside the FHS Guix container to set up the @@ -595,6 +604,14 @@ application." ;; See (setenv "SDL_JOYSTICK_DISABLE_UDEV" "1") + ;; Try to install the locale after symlinking it. + ;; See + (with-exception-handler + (lambda _ + (format #t "\n\nFailed to install locale. Is glibc-locales available in the container?\n")) + (lambda _ (setlocale LC_ALL "")) + #:unwind? #t) + ;; Process FHS-specific command line options. (let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec)) (asound32-opt (option-ref options 'asound32 #f))