Merge branch 'multiarch-container-locale-fix' into 'master'

nonguix: multiarch-container: Install locales after symlinking in fhs-internal.

See merge request nonguix/nonguix!728
This commit is contained in:
Noah Evans 2025-10-01 13:54:49 +00:00
commit 86562b8e5a

View file

@ -42,6 +42,7 @@
(define-module (nonguix multiarch-container) (define-module (nonguix multiarch-container)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix records) #:use-module (guix records)
@ -443,7 +444,9 @@ the exact path for the fhs-internal package."
(package-version (ngc-wrap-package container)))) (package-version (ngc-wrap-package container))))
(source #f) (source #f)
(inputs `(("fhs-internal-script" (inputs `(("fhs-internal-script"
,(make-internal-script container)))) ,(make-internal-script container))
("bash-minimal" ,bash-minimal) ; for wrap-program
))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -452,9 +455,15 @@ the exact path for the fhs-internal package."
(use-modules (guix build utils)) (use-modules (guix build utils))
(let* ((bin (string-append (assoc-ref %outputs "out") "/bin")) (let* ((bin (string-append (assoc-ref %outputs "out") "/bin"))
(internal-target (assoc-ref %build-inputs "fhs-internal-script")) (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) (mkdir-p bin)
(symlink internal-target internal-dest))))) (symlink internal-target internal-dest)
;; We want to install the locale manually after symlinking it.
;; See <https://gitlab.com/nonguix/nonguix/-/issues/407>
(wrap-program internal-dest #:sh sh
'("GUILE_INSTALL_LOCALE" = ("0")))))))
(home-page #f) (home-page #f)
(synopsis "Script used to set up sandbox") (synopsis "Script used to set up sandbox")
(description "Script used inside the FHS Guix container to set up the (description "Script used inside the FHS Guix container to set up the
@ -595,6 +604,14 @@ application."
;; See <https://gitlab.com/nonguix/nonguix/-/issues/384> ;; See <https://gitlab.com/nonguix/nonguix/-/issues/384>
(setenv "SDL_JOYSTICK_DISABLE_UDEV" "1") (setenv "SDL_JOYSTICK_DISABLE_UDEV" "1")
;; Try to install the locale after symlinking it.
;; See <https://gitlab.com/nonguix/nonguix/-/issues/407>
(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. ;; Process FHS-specific command line options.
(let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec)) (let* ((options (getopt-long (or fhs-args '("")) fhs-option-spec))
(asound32-opt (option-ref options 'asound32 #f)) (asound32-opt (option-ref options 'asound32 #f))