summary refs log tree commit diff
path: root/gnu/packages/ssh.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2020-02-18 14:41:37 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2020-02-18 14:43:43 +0100
commit3db8833b4616f84cc8643fb983621e65de0acecd (patch)
tree761179a1a1875de3acf7c9fbfefeeffc4d83c567 /gnu/packages/ssh.scm
parent815d3ac4c343c75beca2d752adc34312bfeff4fe (diff)
downloadguix-3db8833b4616f84cc8643fb983621e65de0acecd.tar.gz
Revert "gnu: guile-ssh: Update to 0.12.0."
This reverts commit 668740cc055b59a6d343fb256881c3632e050459.

This causes the following error when running guix pull:

./guix/store.scm:1224:15: Throw to key `srfi-34' with args `(#<condition &store-protocol-error [message: "build of `/gnu/store/gj4pk7zn0wrvf5c9rl9x8gnd3719l98d-guile3.0-ssh-0.12.0.drv' failed" status: 100] 7fa4df090120>)'.
guix pull: error: You found a bug: the program '/gnu/store/0nbcv4jkhf73qlvc6dsy05iamj6l662c-compute-guix-derivation'
Diffstat (limited to 'gnu/packages/ssh.scm')
-rw-r--r--gnu/packages/ssh.scm63
1 files changed, 49 insertions, 14 deletions
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 90714a4a92..ac9c2f7711 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -12,7 +12,6 @@
 ;;; Copyright © 2017 ng0 <ng0@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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -228,7 +227,7 @@ Additionally, various channel-specific options can be negotiated.")
 (define-public guile-ssh
   (package
     (name "guile-ssh")
-    (version "0.12.0")
+    (version "0.11.3")
     (home-page "https://github.com/artyom-poptsov/guile-ssh")
     (source (origin
               (method git-fetch)
@@ -238,12 +237,31 @@ Additionally, various channel-specific options can be negotiated.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "054hd9rzfhb48gc1hw3rphhp0cnnd4bs5qmidy5ygsyvy9ravlad"))
-              (modules '((guix build utils)))))
+                "03bv3hwp2s8f0bqgfjaan9jx4dyab0abv27n2zn2g0izlidv0vl6"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; libssh >= 0.8.0 no longer provides libssh_threads: see
+                  ;; <https://github.com/artyom-poptsov/guile-ssh/issues/9>.
+                  (substitute* "libguile-ssh/Makefile.am"
+                    (("-lssh_threads") ""))
+
+                  ;; This test would wrongfully pick DSS keys when running on
+                  ;; libssh >= 0.8.0, which fails:
+                  ;; <https://github.com/artyom-poptsov/guile-ssh/issues/10>.
+                  (substitute* "tests/server.scm"
+                    (("= %libssh-minor-version 7")
+                     ">= %libssh-minor-version 7"))
+
+                  ;; Allow builds with Guile 3.0.
+                  (substitute* "configure.ac"
+                    (("^GUILE_PKG.*$")
+                     "GUILE_PKG([3.0 2.2 2.0])\n"))
+                  #t))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
     (arguments
-     `(;; It makes no sense to build libguile-ssh.a.
+     '(;; It makes no sense to build libguile-ssh.a.
        #:configure-flags '("--disable-static")
 
        #:phases (modify-phases %standard-phases
@@ -262,15 +280,6 @@ Additionally, various channel-specific options can be negotiated.")
                           (("\"libguile-ssh\"")
                            (string-append "\"" lib "/libguile-ssh\"")))
                         #t)))
-                  ,@(if (%current-target-system)
-                        '()
-                        '((add-before 'check 'fix-guile-path
-                             (lambda* (#:key inputs #:allow-other-keys)
-                               (let ((guile (assoc-ref inputs "guile")))
-                                 (substitute* "tests/common.scm"
-                                   (("/usr/bin/guile")
-                                    (string-append guile "/bin/guile")))
-                                 #t)))))
                   (add-after 'install 'remove-bin-directory
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
@@ -314,6 +323,32 @@ libssh library.")
   (package
     (inherit guile-ssh)
     (name "guile3.0-ssh")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guile-ssh)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'bootstrap 'delete-old-guile-m4
+             (lambda _
+               ;; The old 'guile.m4' that's shipped would fail to recognize
+               ;; Guile 2.9 as "3.0".
+               (delete-file "m4/guile.m4")
+               #t))
+           (add-before 'build 'adjust-for-guile3
+             (lambda _
+               ;; Adjust for things that are deprecated in 2.2 and removed in
+               ;; 3.0.
+               (substitute* "tests/common.scm"
+                 (("define-module \\(tests common\\)")
+                  "define-module (tests common)
+  #:use-module (ice-9 threads)\n"))
+               (substitute* "modules/ssh/tunnel.scm"
+                 (("define-module \\(ssh tunnel\\)")
+                  "define-module (ssh tunnel)
+  #:use-module (ice-9 threads)"))
+               (substitute* "modules/srfi/srfi-64.upstream.scm"
+                 (("_IOLBF")
+                  "'line"))
+               #t))))))
     (inputs `(("guile" ,guile-next)
               ,@(alist-delete "guile" (package-inputs guile-ssh))))))