aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ssh.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ssh.scm')
-rw-r--r--gnu/packages/ssh.scm172
1 files changed, 109 insertions, 63 deletions
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 47c2c5aada..5181273407 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2018-2022, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2021, 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
@@ -13,12 +13,14 @@
;;; Copyright © 2018 Manuel Graf <graf@init.at>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2023 Simon Streit <simon@netpanic.org>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
+;;; Copyright © 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -76,6 +78,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
@@ -155,7 +158,13 @@ file names.
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
- '(#:configure-flags '("-DWITH_GCRYPT=ON")
+ `(#:configure-flags '("-DWITH_GCRYPT=ON"
+ ,@(if (and (%current-target-system)
+ (not (target-64bit?)))
+ (list (string-append
+ "-DCMAKE_C_FLAGS=-g -O2"
+ " -Wno-incompatible-pointer-types"))
+ '()))
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
#:tests? #f))
@@ -200,7 +209,7 @@ a server that supports the SSH-2 protocol.")
(define-public openssh
(package
(name "openssh")
- (version "9.8p1")
+ (version "9.9p1")
(source
(origin
(method url-fetch)
@@ -208,7 +217,7 @@ a server that supports the SSH-2 protocol.")
"openssh-" version ".tar.gz"))
(patches (search-patches "openssh-trust-guix-store-directory.patch"))
(sha256
- (base32 "1wrrb8zrfj9wa9nbpx310kl2k05gm4gxsl5hvycx9dbrlc1d12yx"))))
+ (base32 "00kcjs7vm1vha3xvgrkb0qv7v6pwskb1avkfk2qiazzqpz6znhxk"))))
(build-system gnu-build-system)
(arguments
(list
@@ -326,7 +335,7 @@ Additionally, various channel-specific options can be negotiated.")
(define-public guile-ssh
(package
(name "guile-ssh")
- (version "0.17.0")
+ (version "0.18.0")
(home-page "https://github.com/artyom-poptsov/guile-ssh")
(source (origin
(method git-fetch)
@@ -334,10 +343,9 @@ Additionally, various channel-specific options can be negotiated.")
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
- (patches (search-patches "guile-ssh-rename-bool.patch"))
(sha256
(base32
- "1lkhpgbzvh6i1sc4nmdc9rx9yzrdyjxxjb8x6nvq2zif8xy9y9vg"))))
+ "0zh1spkjl5q778y4rd6ml68fvz1r62xmk03khi4kp74z2rxgzcxb"))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(arguments
@@ -513,7 +521,7 @@ responsive, especially over Wi-Fi, cellular, and long-distance links.")
(define-public dropbear
(package
(name "dropbear")
- (version "2024.85")
+ (version "2024.86")
(source
(origin
(method url-fetch)
@@ -521,7 +529,7 @@ responsive, especially over Wi-Fi, cellular, and long-distance links.")
"https://matt.ucc.asn.au/dropbear/releases/"
"dropbear-" version ".tar.bz2"))
(sha256
- (base32 "00m5dmajx0za1zmya4qdz763hxy4cmfk7bpba778k7d66g23dc46"))
+ (base32 "0pha5s1a3l0dadfba4lpp5k0j6arwrmisclrn06jwprrzkgkd2g7"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -800,38 +808,54 @@ shell services and remote host selection.")
(define-public python-asyncssh
(package
(name "python-asyncssh")
- (version "2.13.1")
+ (version "2.18.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asyncssh" version))
(sha256
- (base32
- "11zq9ywzgyljzihdygawzad0ydly0l32zvz11liwyi8bbk087fzb"))))
- (build-system python-build-system)
- (propagated-inputs
- (list python-cryptography python-pyopenssl python-gssapi
- python-bcrypt python-typing-extensions))
- (native-inputs
- (list openssh openssl python-fido2 python-aiofiles netcat
- python-pytest))
+ (base32 "08viv0k32l6f40sbraq4bqzizrkivf09zwy8kmqvjq0zq1hj2chs"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'disable-tests
- (lambda* _
- (substitute* "tests/test_connection.py"
- ;; nc is always available.
- (("which nc") "true"))
- (substitute* "tests/test_agent.py"
- ;; TODO Test fails for unknown reason
- (("(.+)async def test_confirm" all indent)
- (string-append indent "@unittest.skip('disabled by guix')\n"
- indent "async def test_confirm")))))
- (replace 'check
- (lambda* (#:key tests? inputs outputs #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
+ (list
+ #:test-flags
+ #~(list "-k" (string-join
+ (list
+ ;; TODO Test fails for unknown reason
+ "not test_confirm"
+ #$@(if (target-aarch64?)
+ (list
+ ;; Tests fail with: asyncssh.misc.ConnectionLost:
+ ;; Connection lost
+ "test_connect_non_tcp_sock"
+ "test_connect_reverse_proxy"
+ "test_get_server_auth_methods_no_sockn"
+ "test_get_server_auth_methods_no_sockname"
+ "test_get_server_host_key_proxy")
+ '()))
+ " and not " ))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda* _
+ (substitute* "tests/test_connection.py"
+ ;; nc is always available.
+ (("which nc") "true")))))))
+ (native-inputs
+ (list netcat
+ openssh
+ openssl
+ python-aiofiles
+ python-fido2
+ python-pytest
+ python-setuptools
+ python-wheel))
+ (propagated-inputs
+ (list python-cryptography
+ python-pyopenssl
+ python-gssapi
+ python-bcrypt
+ python-typing-extensions))
(home-page "https://asyncssh.readthedocs.io/")
(synopsis "Asynchronous SSHv2 client and server library for Python")
(description
@@ -843,7 +867,7 @@ framework.")
(define-public clustershell
(package
(name "clustershell")
- (version "1.8.4")
+ (version "1.9.2")
(source
(origin
(method git-fetch)
@@ -852,19 +876,36 @@ framework.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "11b87vyamcw4rvgxz74jxwkr9ly0h9ldp2wqsi5wc19p0r06la5j"))))
- (build-system python-build-system)
- (inputs (list openssh))
- (propagated-inputs (list python-pyyaml))
+ (base32 "1zk3syrdck2gi27b9njaq98fnnjf14831yvkma2n4ydsf2mxnkaw"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-before 'build 'record-openssh-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((ssh (assoc-ref inputs "openssh")))
- (substitute* "lib/ClusterShell/Worker/Ssh.py"
- (("info\\(\"ssh_path\"\\) or \"ssh\"")
- (string-append "info(\"ssh_path\") or \""
- ssh "/bin/ssh\"")))))))))
+ (list
+ #:tests? #f ; tests require python-nose, and most of them fail
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'fix-pathes
+ (lambda _
+ (let ((ssh #$(this-package-input "openssh")))
+ (substitute* (list "lib/ClusterShell/Worker/Ssh.py"
+ "lib/ClusterShell/Worker/fastsubprocess.py")
+ (("\"/bin/sh\"") (format #f "'~a'" (which "sh")))
+ (("\"ssh\"") (format #f "'~a/bin/ssh'" ssh))
+ (("\"scp\"") (format #f "'~a/bin/scp'" ssh)))
+ (substitute* (find-files "./tests" "\\.py$")
+ (("\"/bin/hostname\"") (format #f "'~a'" (which "hostname")))
+ (("/bin/sleep") "sleep")
+ (("/bin/echo") "echo")
+ (("/bin/uname") "uname")
+ (("/bin/false") "false")
+ (("/bin/true") "true")
+ (("/usr/bin/printf") "printf"))))))))
+ (native-inputs
+ (list python-setuptools
+ python-wheel))
+ (inputs
+ (list openssh))
+ (propagated-inputs
+ (list python-pyyaml))
(home-page "https://cea-hpc.github.io/clustershell/")
(synopsis "Scalable event-driven Python framework for cluster administration")
(description
@@ -915,23 +956,28 @@ clients at a time.")
(define-public webssh
(package
(name "webssh")
- (version "1.5.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/huashengdun/webssh")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1bcy9flrzbvams5p77swwiygv54ac58ia7hpic1bvg30b3wpvv7b"))))
- (build-system python-build-system)
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/huashengdun/webssh")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0v0dxnqac9xdj06lhljv6bhi8hd16rn6h0qr7fkm640nvr55a8i1"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools
+ python-wheel))
(propagated-inputs
- (list python-paramiko python-tornado))
+ (list python-paramiko
+ python-tornado))
(home-page "https://webssh.huashengdun.org/")
(synopsis "Web application to be used as an SSH client")
- (description "This package provides a web application to be used as an SSH
-client.
+ (description
+ "This package provides a web application to be used as an SSH client.
Features:
@itemize @bullet