substitute: Set LC_MESSAGES to the client's locale, not LC_ALL.
Fixes <https://bugs.gnu.org/43039>. Reported by Adam Griffiths <adam.lw.griffiths@gmail.com>. Previously, a client could lead 'guix substitute' to run in a non-UTF-8 locale, such as the "C" locale. Consequently, 'guix substitute' would now fail to decode UTF-8 file names such as those that appear in the 'nss-certs' package. * guix/scripts/substitute.scm (guix-substitute): Set LC_MESSAGES, not LC_ALL.master
parent
8ce6f4dc28
commit
aba8def46d
|
@ -1126,12 +1126,13 @@ default value."
|
|||
;; Sanity-check SUBSTITUTE-URLS so we can provide a meaningful error message.
|
||||
(for-each validate-uri (substitute-urls))
|
||||
|
||||
;; Attempt to install the client's locale, mostly so that messages are
|
||||
;; suitably translated.
|
||||
;; Attempt to install the client's locale so that messages are suitably
|
||||
;; translated. LC_CTYPE must be a UTF-8 locale; it's the case by default so
|
||||
;; don't change it.
|
||||
(match (or (find-daemon-option "untrusted-locale")
|
||||
(find-daemon-option "locale"))
|
||||
(#f #f)
|
||||
(locale (false-if-exception (setlocale LC_ALL locale))))
|
||||
(locale (false-if-exception (setlocale LC_MESSAGES locale))))
|
||||
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
|
|
Reference in New Issue