summaryrefslogtreecommitdiff
path: root/gnu/packages/shells.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/shells.scm')
-rw-r--r--gnu/packages/shells.scm118
1 files changed, 100 insertions, 18 deletions
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 5237e81206..cc3968f9bf 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -5,6 +5,8 @@
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +28,7 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages documentation)
#:use-module (gnu packages libedit)
#:use-module (gnu packages ncurses)
@@ -34,6 +37,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages scheme)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix download)
@@ -80,14 +84,14 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
(define-public fish
(package
(name "fish")
- (version "2.4.0")
+ (version "2.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://fishshell.com/files/"
version "/fish-" version ".tar.gz"))
(sha256
(base32
- "1iggr6ah0siyak073v2w4sx1man19q8jsxns8i09qhv06crb5fq6"))
+ "19djav128nkhjxgfhwhc32i5y9d9c3karbh5yg67kqrdranyvh7q"))
(modules '((guix build utils)))
;; Don't try to install /etc/fish/config.fish.
(snippet
@@ -106,14 +110,17 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
#:configure-flags '("--sysconfdir=/etc")
#:phases
(modify-phases %standard-phases
- ;; Replace 'bc' by its absolute file name in the store.
- (add-after 'unpack 'patch-bc
+ ;; Embed absolute paths to store items.
+ (add-after 'unpack 'embed-store-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* '("share/functions/math.fish"
"share/functions/seq.fish")
(("\\| bc")
(string-append "| " (assoc-ref %build-inputs "bc")
- "/bin/bc"))))))))
+ "/bin/bc")))
+ (substitute* "share/functions/fish_update_completions.fish"
+ (("python") (which "python")))
+ #t)))))
(synopsis "The friendly interactive shell")
(description
"Fish (friendly interactive shell) is a shell focused on interactive use,
@@ -172,10 +179,45 @@ has a small feature set similar to a traditional Bourne shell.")
(home-page "http://github.com/rakitzis/rc")
(license zlib)))
+(define-public es
+ (package
+ (name "es")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/wryun/es-shell/releases/"
+ "download/v" version "/es-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1fplzxc6lncz2lv2fyr2ig23rgg5j96rm2bbl1rs28mik771zd5h"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 're-enter-rootdir
+ ;; The tarball has no folder.
+ (lambda _
+ (chdir ".."))))))
+ (inputs
+ `(("readline" ,readline)))
+ (native-inputs
+ `(("bison" ,bison)))
+ (synopsis "Extensible shell with higher-order functions")
+ (description
+ "Es is an extensible shell. The language was derived from the Plan 9
+shell, rc, and was influenced by functional programming languages, such as
+Scheme, and the Tcl embeddable programming language. This implementation is
+derived from Byron Rakitzis's public domain implementation of rc, and was
+written by Paul Haahr and Byron Rakitzis.")
+ (home-page "https://wryun.github.io/es-shell/")
+ (license public-domain)))
+
(define-public tcsh
(package
(name "tcsh")
- (replacement tcsh/fixed)
(version "6.18.01")
(source (origin
(method url-fetch)
@@ -188,7 +230,8 @@ has a small feature set similar to a traditional Bourne shell.")
(base32
"1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q"))
(patches (search-patches "tcsh-fix-autotest.patch"
- "tcsh-do-not-define-BSDWAIT.patch"))
+ "tcsh-do-not-define-BSDWAIT.patch"
+ "tcsh-fix-out-of-bounds-read.patch"))
(patch-flags '("-p0"))))
(build-system gnu-build-system)
(inputs
@@ -233,15 +276,6 @@ command-line editor, programmable word completion, spelling correction, a
history mechanism, job control and a C-like syntax.")
(license bsd-4)))
-(define tcsh/fixed
- (package
- (inherit tcsh)
- (name "tcsh")
- (source (origin
- (inherit (package-source tcsh))
- (patches (cons (search-patch "tcsh-fix-out-of-bounds-read.patch")
- (origin-patches (package-source tcsh))))))))
-
(define-public zsh
(package
(name "zsh")
@@ -299,14 +333,14 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
- (version "0.5.2")
+ (version "0.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
(base32
- "13ndyq9cal2j93qqbjyp2jn3cshiavdxsaj2qjzm6mas0gzywmf0"))
+ "1pb1am26wl21g798lpl091j95900py7jj4g98rs9qkhywiln4z4q"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -332,3 +366,51 @@ primitives that you are used to from Bash and IPython. It works on all major
systems including Linux, Mac OSX, and Windows. Xonsh is meant for the daily
use of experts and novices alike.")
(license bsd-2)))
+
+(define-public scsh
+ (let ((commit "114432435e4eadd54334df6b37fcae505079b49f")
+ (revision "1"))
+ (package
+ (name "scsh")
+ (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scheme/scsh")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1ghk08akiz7hff1pndi8rmgamgcrn2mv9asbss9l79d3c2iaav3q"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'replace-rx
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((rx (assoc-ref inputs "scheme48-rx"))
+ (rxpath (string-append rx "/share/scheme48-"
+ ,(package-version scheme48)
+ "/rx")))
+ (delete-file-recursively "rx")
+ (symlink rxpath "rx"))
+ #t))
+ (add-before 'configure 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf")))))))
+ (inputs
+ `(("scheme48" ,scheme48)
+ ("scheme48-rx" ,scheme48-rx)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (home-page "https://github.com/scheme/scsh")
+ (synopsis "Unix shell embedded in Scheme")
+ (description
+ "Scsh is a Unix shell embedded in Scheme. Scsh has two main
+components: a process notation for running programs and setting up pipelines
+and redirections, and a complete syscall library for low-level access to the
+operating system.")
+ (license bsd-3))))