In <http://hydra.gnu.org/build/263170>, we see:
153: 12 [patch-usr-bin-file #:native-inputs #f ...]
[...]
?: 1 [regexp-exec # ...]
In ice-9/boot-9.scm:
106: 0 [#<procedure 1998ec0 at ice-9/boot-9.scm:97:6 (thrown-k . args)> encoding-error ...]
ice-9/boot-9.scm:106:20: In procedure #<procedure 1998ec0 at ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert narrow string to output locale" 84 #f #f)'.
This is due to that fact that 'patch-/usr/bin/file' read a line
containing a byte sequence with bytes > 127 (namely a copyright sign.)
But this build was running with a C locale, and so those bytes cannot be
represented in that locale, hence this error.
This commit makes the UTF-8 locales available earlier such that
everything can be represented in locale encoding.
* gnu/packages/commencement.scm (glibc-utf8-locales-final): Move
earlier; change "gzip" input to GZIP built with %BOOT4-INPUTS.
(%boot5-inputs): Define to %BOOT4-INPUTS plus
GLIBC-UTF8-LOCALES-FINAL.
(gnu-make-final, coreutils-final, grep-final): Use it instead of
%BOOT4-INPUTS.
(gzip-final): Remove.
(%boot6-inputs): New variable.
(%final-inputs): Use it instead of %BOOT5-INPUTS. Don't rely on
GZIP-FINAL.
Previously processes started from the window manager would have a couple
of leaked file descriptors: writable /var/log/slim.log and readable
/gnu/store/…-xinitrc.
* gnu/services/xorg.scm (xinitrc)[builder]: Add 'close-all-fdes'. Use
it in 'exec-from-login-shell'.
* guix/build/gnu-build-system.scm (gnu-build): Leave
%DEFAULT-PORT-CONVERSION-STRATEGY unchanged when 'string->bytevector'
fails to convert to ISO-8859-1. This is an attempt to work around the
build failures at <http://hydra.gnu.org/build/263002>.
* gnu/packages/audio.scm (soundtouch)[arguments]: Move 'bootstrap'
after 'unpack'. Remove custom /usr/bin/file patching, which will
now be handled by the 'patch-usr-bin-file' phase.
* gnu/packages/emacs.scm (emacs-w3m)[arguments]: Rename 'pre-configure'
phase to 'autoconf' and move it after 'unpack'.
* gnu/packages/fontutils.scm (libuninameslist)[arguments]: Move 'bootstrap'
phase after 'unpack'.
* gnu/packages/libevent.scm (libuv)[arguments]: Move 'autogen' phase after
'unpack'. Run "sh autogen.sh" instead of "./autogen.sh".
* gnu/packages/linux.scm (bridge-utils)[arguments]: Move 'bootstrap' phase
after 'unpack'.
* gnu/packages/mail.scm (libetpan)[arguments]: Move 'autogen' phase after
'unpack'. Run "sh autogen.sh" instead of "./autogen.sh". Setenv
"NOCONFIGURE" before running autogen.sh.
* gnu/packages/package-management.scm (guix-devel)[arguments]: Move
'bootstrap' phase after 'unpack'. Run "sh autogen.sh" instead of
"./autogen.sh".
* gnu/packages/rdf.scm (lrdf)[arguments]: Move 'autoreconf' phase after
'remove-out-of-tree-references' phase.
* gnu/packages/tor.scm (privoxy)[arguments]: Move 'autoconf' phase after
'unpack'.
* gnu/packages/web.scm (libpsl)[arguments]: Move 'bootstrap' phase after
'unpack'. Run "sh autogen.sh" instead of "./autogen.sh". Remove
'fix-autogen-shebang' phase.
Suggested by Mark H Weaver.
* guix/build/gnu-build-system.scm (gnu-build): Set
%DEFAULT-PORT-CONVERSION-STRATEGY to 'error.
* guix/packages.scm (patch-and-repack)[builder]: Likewise.
* gnu/packages/python.scm (python-numpydoc): Drop one test for all Python
versions.
(python2-numpydoc): Define it by package-with-python2 without modifications.
* guix/build/utils.scm (get-char*): New procedure.
(patch-shebang): Use it instead of 'read-char'.
(fold-port-matches): Remove local 'get-char' and use 'get-char*'
instead.
Suggested by Mark H Weaver.
* guix/build/utils.scm (locale-category->string): New procedure.
* guix/build/gnu-build-system.scm (install-locale): Add 'setenv' call.