aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorArun Isaac <arunisaac@systemreboot.net>2017-07-12 19:33:56 +0530
committerArun Isaac <arunisaac@systemreboot.net>2017-07-20 19:55:22 +0530
commit0daa1d646ae1ee6337bdbf13d8555020c7f119a8 (patch)
tree82dbc80ff21a6a79b169b5e417506b2bf9ceecd8 /gnu
parent41209a6f3a9945b55bcc06b989628e09e9f98b6a (diff)
downloadguix-0daa1d646ae1ee6337bdbf13d8555020c7f119a8.tar.gz
guix-0daa1d646ae1ee6337bdbf13d8555020c7f119a8.zip
gnu: Add mksh.
* gnu/packages/shells.scm (mksh): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/shells.scm40
1 files changed, 40 insertions, 0 deletions
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 339faba05f..c66c575c18 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 ng0 <ng0@no-reply.infotropique.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -587,3 +588,42 @@ interactive POSIX shell targeted at resource-constrained systems.")
;; The file 'LEGAL' says it is the public domain, and the 2
;; exceptions which are listed are not included in this port.
(license public-domain)))
+
+(define-public mksh
+ (package
+ (name "mksh")
+ (version "55")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R"
+ version ".tgz"))
+ (sha256
+ (base32
+ "0mssqd2wp3cs9x01v6g66iy3ymdxagbyw2c0v597vnc1l6s2rm6f"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; tests require access to /dev/tty
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (setenv "CC" "gcc")
+ (zero? (system* (which "sh") "Build.sh"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "mksh" bin)
+ (with-directory-excursion bin
+ (symlink "mksh" "ksh"))
+ (install-file "mksh.1" man)))))))
+ (home-page "https://www.mirbsd.org/mksh.htm")
+ (synopsis "Korn Shell from MirBSD")
+ (description "mksh is an actively developed free implementation of the
+Korn Shell programming language and a successor to the Public Domain Korn
+Shell (pdksh).")
+ (license (list miros
+ isc)))) ; strlcpy.c
* gnu/services/herd.scm (%shepherd-socket-file): Make it an exported parameter. (open-connection): Adapt. 2016-08-31services: herd: Provide <live-service> objects.Ludovic Courtès * gnu/services/herd.scm (<live-service>): New record type. (current-services): Change to return a single value: #f or a list of <live-service>. * guix/scripts/system.scm (call-with-service-upgrade-info): Adjust accordingly. * gnu/tests/base.scm (run-basic-test)["shepherd services"]: Adjust accordingly. 2016-05-04utils: Move combinators to (guix combinators).Ludovic Courtès * guix/utils.scm (compile-time-value, memoize, fold2) (fold-tree, fold-tree-leaves): Move to... * guix/combinators: ... here. New file. * tests/utils.scm ("fold2, 1 list", "fold2, 2 lists") (fold-tree tests): Move to... * tests/combinators.scm: ... here. New file. * Makefile.am (MODULES, SCM_TESTS): Add them. * gnu/packages.scm, gnu/packages/bootstrap.scm, gnu/services/herd.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/elpa.scm, guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports accordingly. 2016-05-04services: herd: Move UI handling to 'guix system'.Ludovic Courtès This makes (gnu services herd) independent of (guix ui). * gnu/services/herd.scm (&shepherd-error, &service-not-found-error) (&action-not-found-error, &action-exception-error) (&unknown-shepherd-error): New error condition types. (report-action-error): Remove. (raise-shepherd-error): New procedure. (display-message): Do not use 'info' and '_'. (invoke-action): Use 'raise-shepherd-error' instead of 'report-action-error'. Do not use 'warning'. (current-services): Do not use 'warning'. * guix/scripts/system.scm (with-shepherd-error-handling): New macro. (report-shepherd-error, call-with-service-upgrade-info): New procedures. (upgrade-shepherd-services): Use it.