Subject: [bug#52975] [PATCH] gnu: guile-ssh: Update to 0.15.0

From: [email-masked] (Artyom V. Poptsov)
Date: Mon, 03 Jan 2022 14:06:18 +0300

Hello,

this patch updates Guile-SSH[1] to version 0.15.0.

In Guile-SSH 0.15.0 I fixed libguile-ssh library version that I forgot
to bump before the 0.14.0. Now the library version is properly bumped to
"0:14:0" according to libtool rules.

Also I removed a hidden build-time dependency on 'whereis' program from
'util-linux' package.

Note that I haven't properly tested GNU Guix with the new release of
Guile-SSH.

As Guix itself uses Guile-SSH and my update may break something, please
check if it works as expected before merging the update and report any
bugs to me.

- Artyom

References:
1: https://github.com/artyom-poptsov/guile-ssh
From 9417b4755dec780d851cefac858b99438958e7b4 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Wed, 22 Dec 2021 22:03:24 +0300
Subject: [PATCH] gnu: guile-ssh: Update to 0.15.0

* gnu/packages/ssh.scm (guile-ssh): Update to 0.15.0.
  (guile2.0-ssh, guile2.2-ssh): Likewise.
* gnu/packages/patches/guile-ssh-fix-test-suite.patch,
  gnu/packages/patches/guile-ssh-read-error.patch: Remove.
* gnu/local.mk: Update.
---
 gnu/local.mk                                  |   3 +-
 .../patches/guile-ssh-fix-test-suite.patch    | 217 ------------------
 .../patches/guile-ssh-read-error.patch        |  18 --
 gnu/packages/ssh.scm                          |  13 +-
 4 files changed, 6 insertions(+), 245 deletions(-)
 delete mode 100644 gnu/packages/patches/guile-ssh-fix-test-suite.patch
 delete mode 100644 gnu/packages/patches/guile-ssh-read-error.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d63978f705..77590560b0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -47,6 +47,7 @@
 # Copyright © 2021 Dmitry Polyakov <[email-masked]>
 # Copyright © 2021 Andrew Tropin <[email-masked]>
 # Copyright © 2021 Simon Tournier <[email-masked]>
+# Copyright © 2022 Artyom V. Poptsov <[email-masked]>
 #
 # This file is part of GNU Guix.
 #
@@ -1230,8 +1231,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-rsvg-pkgconfig.patch		\
   %D%/packages/patches/guile-emacs-fix-configure.patch		\
   %D%/packages/patches/guile-email-fix-tests.patch		\
-  %D%/packages/patches/guile-ssh-fix-test-suite.patch		\
-  %D%/packages/patches/guile-ssh-read-error.patch		\
   %D%/packages/patches/gtk2-fix-builder-test.patch		\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
diff --git a/gnu/packages/patches/guile-ssh-fix-test-suite.patch b/gnu/packages/patches/guile-ssh-fix-test-suite.patch
deleted file mode 100644
index dc10e08b0f..0000000000
--- a/gnu/packages/patches/guile-ssh-fix-test-suite.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-From f7942cded8b65341916a555186e2219efe174cd0 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <[email-masked]>
-Date: Thu, 4 Feb 2021 14:38:25 -0500
-Subject: [PATCH] tests: Fix test suite for Guile 3.0.5.
-
-The test-runner object is now reset to #f when calling the 'test-end'
-procedure.  See the commit de5d1a7f99b8e952b115237ebc29633062f99bb9 in
-Guile (srfi-64: Reset test-runner-current if done) which introduced this
-change.
-
-* tests/client-server.scm (exit-status): New variable.  Use it when calling
-exit.
-* tests/dist.scm: Likewise.
-* tests/key.scm: Likewise.
-* tests/log.scm: Likewise.
-* tests/popen.scm: Likewise.
-* tests/server-client.scm: Likewise.
-* tests/server.scm: Likewise.
-* tests/session.scm: Likewise.
-* tests/shell.scm: Likewise.
-* tests/sssh-ssshd.scm: Likewise.
-* tests/tunnel.scm: Likewise.
----
- tests/client-server.scm | 4 +++-
- tests/dist.scm          | 4 +++-
- tests/key.scm           | 3 ++-
- tests/log.scm           | 5 ++++-
- tests/popen.scm         | 4 +++-
- tests/server-client.scm | 4 +++-
- tests/server.scm        | 4 +++-
- tests/session.scm       | 4 +++-
- tests/shell.scm         | 3 ++-
- tests/sssh-ssshd.scm    | 4 +++-
- tests/tunnel.scm        | 4 +++-
- 11 files changed, 32 insertions(+), 11 deletions(-)
-
-diff --git a/tests/client-server.scm b/tests/client-server.scm
-index 432a48c..fc46140 100644
---- a/tests/client-server.scm
-+++ b/tests/client-server.scm
-@@ -743,8 +743,10 @@
- 
- ;;;
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "client-server")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; client-server.scm ends here.
-diff --git a/tests/dist.scm b/tests/dist.scm
-index 2a3a75f..79f9e23 100644
---- a/tests/dist.scm
-+++ b/tests/dist.scm
-@@ -269,8 +269,10 @@ $4 = #<session #<undefined>@#<undefined>:22 (disconnected) 453fff>"
- ;;;
- 
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "dist")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; dist.scm ends here.
-diff --git a/tests/key.scm b/tests/key.scm
-index be31378..e1678f4 100644
---- a/tests/key.scm
-+++ b/tests/key.scm
-@@ -170,9 +170,10 @@
-                    (eq? (get-key-type key) 'ecdsa-p256)))))))
- 
- ;;;
-+(define exit-status (test-runner-fail-count (test-runner-current)))
- 
- (test-end "key")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; key.scm ends here.
-diff --git a/tests/log.scm b/tests/log.scm
-index f547202..d528251 100644
---- a/tests/log.scm
-+++ b/tests/log.scm
-@@ -64,8 +64,11 @@
-   (get-log-verbosity))
- 
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "log")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
-+
- 
- ;;; log.scm ends here
-diff --git a/tests/popen.scm b/tests/popen.scm
-index e063e0b..fe77108 100644
---- a/tests/popen.scm
-+++ b/tests/popen.scm
-@@ -129,8 +129,10 @@
-           (format-log/scm 'nolog "open-remote-output-pipe"  "channel: ~A" channel)
-           (output-only? channel)))))))
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "popen")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; popen.scm ends here.
-diff --git a/tests/server-client.scm b/tests/server-client.scm
-index 920aa22..b6ed3eb 100644
---- a/tests/server-client.scm
-+++ b/tests/server-client.scm
-@@ -148,8 +148,10 @@
-          (equal? x session))))))
- 
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "server-client")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; server-client.scm ends here.
-diff --git a/tests/server.scm b/tests/server.scm
-index c7f8b6c..1a6daea 100644
---- a/tests/server.scm
-+++ b/tests/server.scm
-@@ -157,9 +157,11 @@
-     (server-listen server)
-     #t))
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "server")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; server.scm ends here.
- 
-diff --git a/tests/session.scm b/tests/session.scm
-index 8caa039..7310647 100644
---- a/tests/session.scm
-+++ b/tests/session.scm
-@@ -210,8 +210,10 @@
-   (let ((session (%make-session)))
-     (not (connected? session))))
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "session")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; session.scm ends here.
-diff --git a/tests/shell.scm b/tests/shell.scm
-index 7d613fb..e36e661 100644
---- a/tests/shell.scm
-+++ b/tests/shell.scm
-@@ -113,9 +113,10 @@
- 
- 
- ;;;
-+(define exit-status (test-runner-fail-count (test-runner-current)))
- 
- (test-end "shell")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; shell.scm ends here.
-diff --git a/tests/sssh-ssshd.scm b/tests/sssh-ssshd.scm
-index 2fe23db..edb53fc 100644
---- a/tests/sssh-ssshd.scm
-+++ b/tests/sssh-ssshd.scm
-@@ -118,8 +118,10 @@
-       result)))
- 
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "sssh-ssshd")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; sssh-ssshd.scm ends here.
-diff --git a/tests/tunnel.scm b/tests/tunnel.scm
-index ef5a568..d6453b7 100644
---- a/tests/tunnel.scm
-+++ b/tests/tunnel.scm
-@@ -191,8 +191,10 @@
-                   (= pnum portnum)))
-            (eq? (channel-cancel-forward session "localhost" portnum) 'ok))))))))
- 
-+(define exit-status (test-runner-fail-count (test-runner-current)))
-+
- (test-end "tunnel")
- 
--(exit (= (test-runner-fail-count (test-runner-current)) 0))
-+(exit (= 0 exit-status))
- 
- ;;; tunnel.scm ends here.
--- 
-2.30.0
-
diff --git a/gnu/packages/patches/guile-ssh-read-error.patch b/gnu/packages/patches/guile-ssh-read-error.patch
deleted file mode 100644
index 9cc6b048a0..0000000000
--- a/gnu/packages/patches/guile-ssh-read-error.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-This patch adjusts to slightly different 'read-error' in Guile 3.0.6
-compared to earlier versions:
-
-  https://github.com/artyom-poptsov/guile-ssh/issues/28
-
---- a/tests/dist.scm
-+++ b/tests/dist.scm
-@@ -183,8 +183,8 @@ Unbound variable: e"
-    rrepl-get-result))
- 
- (test-error-with-log/= "rrepl-get-result, unknown # object error"
--  'node-repl-error "Reader error: scm_lreadr: #<unknown port>:1:3: \
--Unknown # object: (#\\<): scheme@(guile-user)> \
-+  'node-repl-error "Reader error: #f: #<unknown port>:1:3: \
-+Unknown # object: (\"#<\"): scheme@(guile-user)> \
- $4 = #<session #<undefined>@#<undefined>:22 (disconnected) 453fff>"
-   (call-with-input-string
-    (string-append  "scheme@(guile-user)> $4 = "
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index ae64e99948..5d22d8ba1e 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2020 Oleg Pykhalov <[email-masked]>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
+;;; Copyright © 2022 Artyom V. Poptsov <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -308,7 +309,7 @@ Additionally, various channel-specific options can be negotiated.")
 (define-public guile-ssh
   (package
     (name "guile-ssh")
-    (version "0.13.1")
+    (version "0.15.0")
     (home-page "https://github.com/artyom-poptsov/guile-ssh")
     (source (origin
               (method git-fetch)
@@ -318,9 +319,7 @@ Additionally, various channel-specific options can be negotiated.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xpxkvgj7wgcl450djkcrmrf957mcy2f36hfs5g6kpla1gax2d1g"))
-              (patches (search-patches "guile-ssh-fix-test-suite.patch"
-                                       "guile-ssh-read-error.patch"))))
+                "179l6nl25r28w5h2g5qsxc0ppvj2fwk5j57165mjrz5ma91vghbm"))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
     (arguments
@@ -385,8 +384,7 @@ libssh library.")
     (inherit guile-ssh)
     (name "guile2.0-ssh")
     (source (origin
-              (inherit (package-source guile-ssh))
-              (patches (search-patches "guile-ssh-fix-test-suite.patch"))))
+              (inherit (package-source guile-ssh))))
     (native-inputs
      (modify-inputs (package-native-inputs guile-ssh)
        (delete "guile")
@@ -400,8 +398,7 @@ libssh library.")
     (inherit guile-ssh)
     (name "guile2.2-ssh")
     (source (origin
-              (inherit (package-source guile-ssh))
-              (patches (search-patches "guile-ssh-fix-test-suite.patch"))))
+              (inherit (package-source guile-ssh))))
     (native-inputs
      (modify-inputs (package-native-inputs guile-ssh)
        (delete "guile")
-- 
2.25.1

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F