diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-08-20 00:13:25 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-08-29 01:25:08 +0200 |
commit | 90d891fc6c28120ec19c8f3b0e34943b034a0a15 (patch) | |
tree | f6cdbb08a1ea08b7b6b048c4214a94bd8f869533 /gnu/packages/commencement.scm | |
parent | aad5df405843c6eadec1e3866438501b0740704b (diff) | |
download | guix-90d891fc6c28120ec19c8f3b0e34943b034a0a15.tar guix-90d891fc6c28120ec19c8f3b0e34943b034a0a15.tar.gz |
gnu: glibc: Do not copy static Bash binary to bin/.
This avoids problems when installing 'glibc' in a profile, where glibc's
limited 'bash' would take precedence over the valid 'bash'.
* gnu/packages/base.scm (glibc)[arguments]: Do not copy STATIC-BASH to
OUT/bin. Instead, simply refer to it directly.
[inputs]: Use STATIC-BASH instead of BASH-LIGHT.
* gnu/packages/commencement.scm (static-bash-for-glibc): Likewise.
(glibc-final)[arguments]: Add STATIC-BASH-FOR-GLIBC to
#:allowed-references.
(gcc-final)[arguments]: Likewise.
[native-inputs]: Add "static-bash".
Diffstat (limited to 'gnu/packages/commencement.scm')
-rw-r--r-- | gnu/packages/commencement.scm | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 74c3f304af..fe26089494 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -419,18 +419,17 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" #:guile %bootstrap-guile)))) (define static-bash-for-glibc - ;; A statically-linked Bash to be embedded in GLIBC-FINAL, for use by - ;; system(3) & co. + ;; A statically-linked Bash to be used by GLIBC-FINAL in system(3) & co. (let* ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0 glibc-final-with-bootstrap-bash (car (assoc-ref %boot1-inputs "bash")))) - (bash (package (inherit bash-light) + (bash (package (inherit static-bash) (native-inputs `(("bison" ,bison-boot1))) (arguments `(#:guile ,%bootstrap-guile - ,@(package-arguments bash-light)))))) + ,@(package-arguments static-bash)))))) (package-with-bootstrap-guile - (package-with-explicit-inputs (static-package bash) + (package-with-explicit-inputs bash `(("gcc" ,gcc) ("libc" ,glibc-final-with-bootstrap-bash) ,@(fold alist-delete %boot1-inputs @@ -490,6 +489,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (arguments `(#:allowed-references ,(cons* `(,gcc-boot0 "lib") (linux-libre-headers-boot0) + static-bash-for-glibc (package-outputs glibc-final-with-bootstrap-bash)) ,@(package-arguments glibc-final-with-bootstrap-bash))))) @@ -562,7 +562,8 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" `(#:guile ,%bootstrap-guile #:implicit-inputs? #f - #:allowed-references ("out" "lib" ,glibc-final) + #:allowed-references ("out" "lib" + ,glibc-final ,static-bash-for-glibc) ;; Things like libasan.so and libstdc++.so NEED ld.so for some ;; reason, but it is not in their RUNPATH. This is a false @@ -596,8 +597,12 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ((#:phases phases) `(alist-delete 'symlink-libgcc_eh ,phases))))) - ;; This time we want Texinfo, so we get the manual. + ;; This time we want Texinfo, so we get the manual. Add + ;; STATIC-BASH-FOR-GLIBC so that it's used in the final shebangs of + ;; scripts such as 'mkheaders' and 'fixinc.sh' (XXX: who cares about these + ;; scripts?). (native-inputs `(("texinfo" ,texinfo-boot0) + ("static-bash" ,static-bash-for-glibc) ,@(package-native-inputs gcc-boot0))) (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp))) |