summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-07 00:38:17 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-07 00:38:17 +0200
commit3d78d51d8e069c7f1cb61e201fc072819930ff88 (patch)
tree0317060ceb10597933db708772456c79960dee8d
parent0e4e4b1329bcf881620f230fda60b6b63d1f8356 (diff)
downloadguix-patches-3d78d51d8e069c7f1cb61e201fc072819930ff88.tar
guix-patches-3d78d51d8e069c7f1cb61e201fc072819930ff88.tar.gz
gnu: Build the final Coreutils before Findutils.
This fixes a bug whereby Findutils' 'updatedb' script would retain a reference to the bootstrap binaries ('sort', etc.) * gnu/packages/base.scm (coreutils-final, %boot5-inputs): New variables. (%final-inputs): Use them.
-rw-r--r--gnu/packages/base.scm23
1 files changed, 21 insertions, 2 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index ce95559ba5..937579b7d7 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1114,13 +1114,32 @@ store.")
,@(fold alist-delete (package-inputs ld-wrapper-boot3)
'("guile" "bash"))))))
+(define coreutils-final
+ ;; The final Coreutils. Treat them specially because some packages, such as
+ ;; Findutils, keep a reference to the Coreutils they were built with.
+ (package-with-bootstrap-guile
+ (package-with-explicit-inputs coreutils
+ %boot4-inputs
+ (current-source-location)
+
+ ;; Use the final Guile, linked against the
+ ;; final libc with working iconv, so that
+ ;; 'substitute*' works well when touching
+ ;; test files in Gettext.
+ #:guile guile-final)))
+
+(define %boot5-inputs
+ ;; Now use the final Coreutils.
+ `(("coreutils" ,coreutils-final)
+ ,@%boot4-inputs))
+
(define-public %final-inputs
;; Final derivations used as implicit inputs by 'gnu-build-system'. We
;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
;; used for origins that have patches, thereby avoiding circular
;; dependencies.
(let ((finalize (compose package-with-bootstrap-guile
- (cut package-with-explicit-inputs <> %boot4-inputs
+ (cut package-with-explicit-inputs <> %boot5-inputs
(current-source-location)))))
`(,@(map (match-lambda
((name package)
@@ -1131,11 +1150,11 @@ store.")
("xz" ,xz)
("diffutils" ,diffutils)
("patch" ,patch)
- ("coreutils" ,coreutils)
("sed" ,sed)
("grep" ,grep)
("findutils" ,findutils)
("gawk" ,gawk)))
+ ("coreutils" ,coreutils-final)
("make" ,gnu-make-final)
("bash" ,bash-final)
("ld-wrapper" ,ld-wrapper)