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.
This commit is contained in:
parent
b479c3ddaf
commit
87c8b92f50
|
@ -616,12 +616,31 @@ store.")
|
||||||
(current-source-location)
|
(current-source-location)
|
||||||
#:guile %bootstrap-guile)))
|
#:guile %bootstrap-guile)))
|
||||||
|
|
||||||
|
(define glibc-utf8-locales-final
|
||||||
|
;; Now that we have GUILE-FINAL, build the UTF-8 locales. They are needed
|
||||||
|
;; by the build processes afterwards so their 'scm_to_locale_string' works
|
||||||
|
;; with the full range of Unicode codepoints (remember
|
||||||
|
;; 'scm_to_locale_string' is called every time a string is passed to a C
|
||||||
|
;; function.)
|
||||||
|
(package
|
||||||
|
(inherit glibc-utf8-locales)
|
||||||
|
(inputs `(("glibc" ,glibc-final)
|
||||||
|
("gzip"
|
||||||
|
,(package-with-explicit-inputs gzip %boot4-inputs
|
||||||
|
(current-source-location)
|
||||||
|
#:guile %bootstrap-guile))))))
|
||||||
|
|
||||||
|
(define %boot5-inputs
|
||||||
|
;; Now with UTF-8 locale.
|
||||||
|
`(("locales" ,glibc-utf8-locales-final)
|
||||||
|
,@%boot4-inputs))
|
||||||
|
|
||||||
(define gnu-make-final
|
(define gnu-make-final
|
||||||
;; The final GNU Make, which uses the final Guile.
|
;; The final GNU Make, which uses the final Guile.
|
||||||
(package-with-bootstrap-guile
|
(package-with-bootstrap-guile
|
||||||
(package-with-explicit-inputs gnu-make
|
(package-with-explicit-inputs gnu-make
|
||||||
`(("guile" ,guile-final)
|
`(("guile" ,guile-final)
|
||||||
,@%boot4-inputs)
|
,@%boot5-inputs)
|
||||||
(current-source-location))))
|
(current-source-location))))
|
||||||
|
|
||||||
(define-public ld-wrapper
|
(define-public ld-wrapper
|
||||||
|
@ -638,7 +657,7 @@ store.")
|
||||||
;; Findutils, keep a reference to the Coreutils they were built with.
|
;; Findutils, keep a reference to the Coreutils they were built with.
|
||||||
(package-with-bootstrap-guile
|
(package-with-bootstrap-guile
|
||||||
(package-with-explicit-inputs coreutils
|
(package-with-explicit-inputs coreutils
|
||||||
%boot4-inputs
|
%boot5-inputs
|
||||||
(current-source-location)
|
(current-source-location)
|
||||||
|
|
||||||
;; Use the final Guile, linked against the
|
;; Use the final Guile, linked against the
|
||||||
|
@ -652,25 +671,15 @@ store.")
|
||||||
;; built before gzip.
|
;; built before gzip.
|
||||||
(package-with-bootstrap-guile
|
(package-with-bootstrap-guile
|
||||||
(package-with-explicit-inputs grep
|
(package-with-explicit-inputs grep
|
||||||
%boot4-inputs
|
%boot5-inputs
|
||||||
(current-source-location)
|
(current-source-location)
|
||||||
#:guile guile-final)))
|
#:guile guile-final)))
|
||||||
|
|
||||||
(define %boot5-inputs
|
(define %boot6-inputs
|
||||||
;; Now use the final Coreutils.
|
;; Now use the final Coreutils.
|
||||||
`(("coreutils" ,coreutils-final)
|
`(("coreutils" ,coreutils-final)
|
||||||
("grep" ,grep-final)
|
("grep" ,grep-final)
|
||||||
,@%boot4-inputs))
|
,@%boot5-inputs))
|
||||||
|
|
||||||
(define gzip-final
|
|
||||||
(package-with-explicit-inputs gzip %boot5-inputs
|
|
||||||
(current-source-location)))
|
|
||||||
|
|
||||||
(define glibc-utf8-locales-final
|
|
||||||
(package
|
|
||||||
(inherit glibc-utf8-locales)
|
|
||||||
(inputs `(("glibc" ,glibc-final)
|
|
||||||
("gzip" ,gzip-final)))))
|
|
||||||
|
|
||||||
(define-public %final-inputs
|
(define-public %final-inputs
|
||||||
;; Final derivations used as implicit inputs by 'gnu-build-system'. We
|
;; Final derivations used as implicit inputs by 'gnu-build-system'. We
|
||||||
|
@ -678,12 +687,13 @@ store.")
|
||||||
;; used for origins that have patches, thereby avoiding circular
|
;; used for origins that have patches, thereby avoiding circular
|
||||||
;; dependencies.
|
;; dependencies.
|
||||||
(let ((finalize (compose package-with-bootstrap-guile
|
(let ((finalize (compose package-with-bootstrap-guile
|
||||||
(cut package-with-explicit-inputs <> %boot5-inputs
|
(cut package-with-explicit-inputs <> %boot6-inputs
|
||||||
(current-source-location)))))
|
(current-source-location)))))
|
||||||
`(,@(map (match-lambda
|
`(,@(map (match-lambda
|
||||||
((name package)
|
((name package)
|
||||||
(list name (finalize package))))
|
(list name (finalize package))))
|
||||||
`(("tar" ,tar)
|
`(("tar" ,tar)
|
||||||
|
("gzip" ,gzip)
|
||||||
("bzip2" ,bzip2)
|
("bzip2" ,bzip2)
|
||||||
("xz" ,xz)
|
("xz" ,xz)
|
||||||
("file" ,file)
|
("file" ,file)
|
||||||
|
@ -692,7 +702,6 @@ store.")
|
||||||
("sed" ,sed)
|
("sed" ,sed)
|
||||||
("findutils" ,findutils)
|
("findutils" ,findutils)
|
||||||
("gawk" ,gawk)))
|
("gawk" ,gawk)))
|
||||||
("gzip" ,gzip-final)
|
|
||||||
("grep" ,grep-final)
|
("grep" ,grep-final)
|
||||||
("coreutils" ,coreutils-final)
|
("coreutils" ,coreutils-final)
|
||||||
("make" ,gnu-make-final)
|
("make" ,gnu-make-final)
|
||||||
|
|
Loading…
Reference in New Issue