summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-03-07 21:30:41 +0100
committerLudovic Courtès <ludo@gnu.org>2018-03-07 21:39:32 +0100
commit7c788ed2276957ea52858d80faeca2962cd26f8d (patch)
treeaf8cdc24a4a1f7381f9ee462c18b2ae13efa96c2
parent0fccb24765dfda3e90d7ce6981d9204f05aa6117 (diff)
downloadguix-7c788ed2276957ea52858d80faeca2962cd26f8d.tar.gz
gnu: commencement: 'glibc-final' inherits the replacement of 'glibc'.
That was the intent of commit b672a8160755bab07fb3c13dbc43dcc26525a7b7,
but that commit left 'glibc-final' ungrafted.

Reported by Ricardo Wurmus at
<https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00435.html>.

* gnu/packages/commencement.scm (glibc-final): Use 'package/inherit' so
that we inherit the 'replacement' of GLIBC.
-rw-r--r--gnu/packages/commencement.scm53
1 files changed, 25 insertions, 28 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 1584f000d4..fe9fbebcc2 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -673,35 +673,32 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
 
 (define glibc-final
   ;; The final glibc, which embeds the statically-linked Bash built above.
-  (package (inherit glibc)
-  (package
-    (inherit (package
-               (inherit glibc)
-               ;; Use the source patched with %BOOTSTRAP-GUILE.
-               (source (package-source glibc-final-with-bootstrap-bash))))
-    (name "glibc")
-    (inputs `(("static-bash" ,static-bash-for-glibc)
-              ,@(alist-delete
-                 "static-bash"
-                 (package-inputs glibc-final-with-bootstrap-bash))))
-
-    ;; This time we need 'msgfmt' to install all the libc.mo files.
-    (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
-                     ("gettext" ,gettext-boot0)))
-
-    (propagated-inputs
-     (package-propagated-inputs glibc-final-with-bootstrap-bash))
-
-    ;; The final libc only refers to itself, but the 'debug' output contains
-    ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
-    ;; if 'allowed-references' were per-output.
-    (arguments
-     `(#:allowed-references
-       ,(cons* `(,gcc-boot0 "lib") (kernel-headers-boot0)
-               static-bash-for-glibc
-               (package-outputs glibc-final-with-bootstrap-bash))
+  ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any.
+  (let ((glibc (package-with-bootstrap-guile glibc)))
+    (package/inherit glibc
+      (name "glibc")
+      (inputs `(("static-bash" ,static-bash-for-glibc)
+                ,@(alist-delete
+                   "static-bash"
+                   (package-inputs glibc-final-with-bootstrap-bash))))
+
+      ;; This time we need 'msgfmt' to install all the libc.mo files.
+      (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
+                       ("gettext" ,gettext-boot0)))
+
+      (propagated-inputs
+       (package-propagated-inputs glibc-final-with-bootstrap-bash))
+
+      ;; The final libc only refers to itself, but the 'debug' output contains
+      ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
+      ;; if 'allowed-references' were per-output.
+      (arguments
+       `(#:allowed-references
+         ,(cons* `(,gcc-boot0 "lib") (kernel-headers-boot0)
+                 static-bash-for-glibc
+                 (package-outputs glibc-final-with-bootstrap-bash))
 
-       ,@(package-arguments glibc-final-with-bootstrap-bash)))))
+         ,@(package-arguments glibc-final-with-bootstrap-bash))))))
 
 (define gcc-boot0-wrapped
   ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the