diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-09-02 15:53:06 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-09-02 17:17:36 +0200 |
commit | aba8def46d392b3ef2278d16a2c9708fab05c6fd (patch) | |
tree | 63af5aedfca23f13c583f398b7d37dc8a13b46bb | |
parent | 8ce6f4dc2879919c12bc76a2f4b01200af97e019 (diff) | |
download | guix-aba8def46d392b3ef2278d16a2c9708fab05c6fd.tar.gz guix-aba8def46d392b3ef2278d16a2c9708fab05c6fd.zip |
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.
-rwxr-xr-x | guix/scripts/substitute.scm | 7 |
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 () |