summaryrefslogtreecommitdiff
path: root/gnu/packages/bash.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-08-19 14:40:59 +0200
committerLudovic Courtès <ludo@gnu.org>2015-08-29 01:25:07 +0200
commit6c7f44efc24ce089c2c8e3c41b014ac05e20e119 (patch)
tree153da127f64dd947a7f680a82b04321404f80d5d /gnu/packages/bash.scm
parentced200328ca6337ac446e4557c645629e7d7a997 (diff)
downloadgnu-guix-6c7f44efc24ce089c2c8e3c41b014ac05e20e119.tar
gnu-guix-6c7f44efc24ce089c2c8e3c41b014ac05e20e119.tar.gz
gnu: Add 'bash-static'.
* gnu/packages/bash.scm (static-bash): New variable.
Diffstat (limited to 'gnu/packages/bash.scm')
-rw-r--r--gnu/packages/bash.scm22
1 files changed, 22 insertions, 0 deletions
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 6b2d0b855d..fcfa337fab 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -239,6 +239,28 @@ without modification.")
'("bash_cv_job_control_missing=no")
'()))))))))
+(define-public static-bash
+ ;; Statically-linked Bash that contains nothing but the 'bash' binary and
+ ;; 'sh' symlink, without any reference.
+ (let ((bash (static-package bash-light)))
+ (package
+ (inherit bash)
+ (name "bash-static")
+ (arguments
+ (substitute-keyword-arguments
+ `(#:allowed-references ("out") ,@(package-arguments bash))
+ ((#:phases phases)
+ `(alist-cons-after
+ 'strip 'remove-everything-but-the-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (remove-store-references (string-append bin "/bash"))
+ (delete-file (string-append bin "/bashbug"))
+ (delete-file-recursively (string-append out "/share"))
+ #t))
+ ,phases)))))))
+
(define-public bash-completion
(package
(name "bash-completion")