diff options
Diffstat (limited to 'gnu/packages/bash.scm')
-rw-r--r-- | gnu/packages/bash.scm | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 6b2d0b855d..180c64e872 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -214,10 +214,10 @@ without modification.") (license gpl3+) (home-page "http://www.gnu.org/software/bash/")))) -(define-public bash-light +(define-public bash-minimal ;; A stripped-down Bash for non-interactive use. (package (inherit bash) - (name "bash-light") + (name "bash-minimal") (inputs '()) ; no readline, no curses (arguments (let ((args `(#:modules ((guix build gnu-build-system) @@ -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-minimal))) + (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") |