gnu: commencement: Make UTF-8 locales available right after 'guile-final'.
authorLudovic Courtès <ludo@gnu.org>
Sun, 1 Mar 2015 15:58:43 +0000 (16:58 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sun, 1 Mar 2015 16:03:04 +0000 (17:03 +0100)
commit87c8b92f50c852de05eab2a0a50217adf8897c65
tree701d4d5279ac2cf606ab8850a831bb66cdd3d1df
parentb479c3ddaf85c831e34888229849bc1ce34419de
gnu: commencement: Make UTF-8 locales available right after 'guile-final'.

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.
gnu/packages/commencement.scm