;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2018 Manuel Graf <graf@init.at>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix utils)
#:use-module (srfi srfi-1))
+(define-public hss
+ (package
+ (name "hss")
+ (version "1.8")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/six-ddc/hss")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rpysj65j9ls30bf2c5k5hykzzjfknrihs58imp178bx1wqzw4jl"))))
+ (inputs
+ `(("readline" ,readline)))
+ (arguments
+ `(#:make-flags
+ (list ,(string-append "CC=" (cc-for-target))
+ (string-append "INSTALL_BIN=" (assoc-ref %outputs "out") "/bin"))
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-file-names
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("/usr/local/opt/readline")
+ (assoc-ref inputs "readline")))
+ #t))
+ (delete 'configure)))) ; no configure script
+ (build-system gnu-build-system)
+ (home-page "https://github.com/six-ddc/hss/")
+ (synopsis "Interactive SSH client for multiple servers")
+ (description
+ "@command{hss} is an interactive SSH client for multiple servers. Commands
+are executed on all servers in parallel. Execution on one server does not need
+to wait for that on another server to finish before starting. One can run a
+command on hundreds of servers at the same time, with almost the same experience
+as a local Bash shell.
+
+It supports:
+@itemize @bullet
+@item interactive input: based on GNU readline.
+@item history: responding to the @kbd{C-r} key.
+@item auto-completion: @key{TAB}-completion from remote servers for commands and
+file names.
+@end itemize\n")
+ (license license:expat)))
+
(define-public libssh
(package
(name "libssh")
- (version "0.9.3")
+ (version "0.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
(commit (string-append "libssh-" version))))
(sha256
(base32
- "175i3xybg69d5lb078334v6dd3njm743kww8f67ix9w33969rmzf"))
+ "0qr4vi3k1wv69c95d9j26fiv78pzyksaq8ccd76b8nxar5z1fbj6"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
#:tests? #f))
(inputs `(("zlib" ,zlib)
- ("libgcrypt" ,libgcrypt)))
+ ("libgcrypt" ,libgcrypt)
+ ("mit-krb5" ,mit-krb5)))
(synopsis "SSH client library")
(description
"libssh is a C library implementing the SSHv2 and SSHv1 protocol for client
(define-public openssh
(package
(name "openssh")
- (version "8.2p1")
+ (version "8.3p1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/OpenSSH/portable/"
"openssh-" version ".tar.gz"))
+ (patches (search-patches "openssh-hurd.patch"))
(sha256
(base32
- "0wg6ckzvvklbzznijxkk28fb8dnwyjd0w30ra0afwv6gwr8m34j3"))))
+ "1cl74ghi9y21dc3f4xa0qamb7dhwacbynh1ks9syprrg8zhgpgpj"))))
(build-system gnu-build-system)
(native-inputs `(("groff" ,groff)
("pkg-config" ,pkg-config)))
("pam" ,linux-pam)
("mit-krb5" ,mit-krb5)
("zlib" ,zlib)
- ("xauth" ,xauth))) ; for 'ssh -X' and 'ssh -Y'
+ ("xauth" ,xauth))) ; for 'ssh -X' and 'ssh -Y'
(arguments
`(#:test-target "tests"
;; Otherwise, the test scripts try to use a nonexistent directory and
"--with-libedit"
;; Enable PAM support in sshd.
- "--with-pam")
+ "--with-pam"
+
+ ;; "make install" runs "install -s" by default,
+ ;; which doesn't work for cross-compiled binaries
+ ;; because it invokes 'strip' instead of
+ ;; 'TRIPLET-strip'. Work around this.
+ ,,@(if (%current-target-system)
+ '("--disable-strip")
+ '()))
#:phases
(modify-phases %standard-phases
"See LICENSE in the distribution."))
(home-page "https://www.openssh.com/")))
+;; OpenSSH without X support. This allows to use OpenSSH without dragging X
+;; libraries to the closure.
+(define-public openssh-sans-x
+ (package
+ (inherit openssh)
+ (name "openssh-sans-x")
+ (inputs (alist-delete "xauth" (package-inputs openssh)))
+ (synopsis "OpenSSH client and server without X11 support")))
+
(define-public guile-ssh
(package
(name "guile-ssh")
- (version "0.12.0")
+ (version "0.13.0")
(home-page "https://github.com/artyom-poptsov/guile-ssh")
(source (origin
(method git-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "054hd9rzfhb48gc1hw3rphhp0cnnd4bs5qmidy5ygsyvy9ravlad"))
+ "1q96h98p6x7ah6nc0d2wfx503fmsj36riv9ka9s79z3lzwaf0k26"))
(modules '((guix build utils)))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
("texinfo" ,texinfo)
("pkg-config" ,pkg-config)
("which" ,which)
- ("guile" ,guile-2.2))) ;needed when cross-compiling.
- (inputs `(("guile" ,guile-2.2)
+ ("guile" ,guile-3.0))) ;needed when cross-compiling.
+ (inputs `(("guile" ,guile-3.0)
("libssh" ,libssh)
("libgcrypt" ,libgcrypt)))
(synopsis "Guile bindings to libssh")
(inputs `(("guile" ,guile-2.0)
,@(alist-delete "guile" (package-inputs guile-ssh))))))
-(define-public guile3.0-ssh
+(define-public guile2.2-ssh
(package
(inherit guile-ssh)
- (name "guile3.0-ssh")
+ (name "guile2.2-ssh")
(native-inputs
- `(("guile" ,guile-next) ;needed when cross-compiling.
+ `(("guile" ,guile-2.2) ;needed when cross-compiling.
,@(alist-delete "guile" (package-native-inputs guile-ssh))))
- (inputs `(("guile" ,guile-next)
+ (inputs `(("guile" ,guile-2.2)
,@(alist-delete "guile" (package-inputs guile-ssh))))))
+(define-public guile3.0-ssh
+ (deprecated-package "guile3.0-ssh" guile-ssh))
+
(define-public corkscrew
(package
(name "corkscrew")
(version "2.0")
(source
(origin
- (method url-fetch)
- ;; The agroman.net domain name expired on 2017-03-23, and the original
- ;; "http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz" now returns
- ;; bogus HTML. Perhaps it will yet return. Until then, use a mirror.
- (uri (string-append "https://downloads.openwrt.org/sources/"
- "corkscrew-" version ".tar.gz"))
- (sha256 (base32
- "1gmhas4va6gd70i2x2mpxpwpgww6413mji29mg282jms3jscn3qd"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/patpadgett/corkscrew")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "0g4pkczrc1zqpnxyyjwcjmyzdj5qqcpzwf1bm3965zdwp94bpppf"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
;; Replace configure phase as the ./configure script does not like
- ;; CONFIG_SHELL and SHELL passed as parameters
+ ;; CONFIG_SHELL and SHELL passed as parameters.
(lambda* (#:key outputs build target #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (which "bash"))
;; Set --build and --host flags as the provided config.guess
- ;; is not able to detect them
+ ;; is not able to detect them.
(flags `(,(string-append "--prefix=" out)
,(string-append "--build=" build)
,(string-append "--host=" (or target build)))))
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version)))
- (install-file "README" doc)
+ (install-file "README.markdown" doc)
#t))))))
- (home-page "http://www.agroman.net/corkscrew")
+ (home-page "https://github.com/patpadgett/corkscrew")
(synopsis "SSH tunneling through HTTP(S) proxies")
(description
"Corkscrew tunnels SSH connections through most HTTP and HTTPS proxies.
(arguments
'(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-FHS-file-names
+ (lambda _
+ (substitute* "scripts/mosh.pl"
+ (("/bin/sh")
+ (which "sh")))
+ #t))
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure 'mosh' can find 'mosh-client' and
(home-page "https://mosh.org/")
(synopsis "Remote shell tolerant to intermittent connectivity")
(description
- "Remote terminal application that allows roaming, supports intermittent
-connectivity, and provides intelligent local echo and line editing of user
-keystrokes. Mosh is a replacement for SSH. It's more robust and responsive,
-especially over Wi-Fi, cellular, and long-distance links.")
+ "Mosh is a remote terminal application that allows client roaming, supports
+intermittent connectivity, and provides intelligent local echo and line editing
+of user keystrokes. It's a replacement for SSH that's more robust and
+responsive, especially over Wi-Fi, cellular, and long-distance links.")
(license license:gpl3+)))
(define-public et
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/MisterTea/EternalTCP.git")
+ (url "https://github.com/MisterTea/EternalTCP")
(commit (string-append "et-v" version))))
(file-name (git-file-name name version))
(sha256
without interrupting the session. Unlike SSH sessions, ET sessions will
survive even network outages and IP changes. ET uses a custom protocol over
TCP, not the SSH protocol.")
- (home-page "https://mistertea.github.io/EternalTCP/")
+ (home-page "https://eternalterminal.dev/")
(license license:asl2.0)))
(define-public dropbear
(package
(name "dropbear")
- (version "2019.78")
+ (version "2020.80")
(source
(origin
(method url-fetch)
"https://matt.ucc.asn.au/dropbear/releases/"
"dropbear-" version ".tar.bz2"))
(sha256
- (base32 "19242qlr40pbqfqd0gg6h8qpj38q6lgv03ja6sahj9vj2abnanaj"))))
+ (base32 "0jbrbpdzyv11x5rkljdimzq9p6a7da5siw9k405ibnpjj4dr89yr"))))
(build-system gnu-build-system)
(arguments `(#:tests? #f)) ; there is no "make check" or anything similar
;; TODO: Investigate unbundling libtommath and libtomcrypt or at least
(base32
"1q0p1l72pq9k3bi7a366j2rishv7dzzkg3i6r2npsfg7cnnidbsn"))))
(build-system gnu-build-system)
- (home-page "http://www.lysator.liu.se/liboop/")
+ (home-page "https://www.lysator.liu.se/liboop/")
(synopsis "Event loop library")
(description "Liboop is a low-level event loop management library for
POSIX-based operating systems. It supports the development of modular,
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/skeeto/endlessh.git")
+ (url "https://github.com/skeeto/endlessh")
(commit version)))
(file-name (git-file-name name version))
(sha256