summaryrefslogtreecommitdiff
path: root/guix/scripts
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-09-02 15:53:06 +0200
committerLudovic Courtès <ludo@gnu.org>2020-09-02 17:17:36 +0200
commitaba8def46d392b3ef2278d16a2c9708fab05c6fd (patch)
tree63af5aedfca23f13c583f398b7d37dc8a13b46bb /guix/scripts
parent8ce6f4dc2879919c12bc76a2f4b01200af97e019 (diff)
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.
Diffstat (limited to 'guix/scripts')
-rwxr-xr-xguix/scripts/substitute.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index f9d19fd735..117d824449 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -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 ()