aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ssh.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-12-04 22:24:28 +0100
committerLudovic Courtès <ludo@gnu.org>2013-12-04 22:24:28 +0100
commit49d294e5c8eefdbf166fbc82ee535dd1a5de4571 (patch)
tree7557c2f8ae6936c71360627fdd4a3e84d532acaa /gnu/packages/ssh.scm
parentf4badde3fab0e2b05574811de712b6dab676cbc4 (diff)
downloadgnu-guix-49d294e5c8eefdbf166fbc82ee535dd1a5de4571.tar
gnu-guix-49d294e5c8eefdbf166fbc82ee535dd1a5de4571.tar.gz
gnu: Move 'guile-ssh' to (gnu packages ssh).
Reported by John Darrington <john@darrington.wattle.id.au>. * gnu/packages/guile.scm (guile-ssh): Move to... * gnu/packages/ssh.scm (guile-ssh): ... here. New variable. This fixes a circular dependency issue, as reported at <https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00024.html>.
Diffstat (limited to 'gnu/packages/ssh.scm')
-rw-r--r--gnu/packages/ssh.scm66
1 files changed, 66 insertions, 0 deletions
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 5c07835895..1d3ba7d828 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -24,6 +24,10 @@
#:use-module (gnu packages groff)
#:use-module (gnu packages openssl)
#:use-module (gnu packages patchelf)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages which)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
@@ -175,3 +179,65 @@ Additionally, various channel-specific options can be negotiated.")
"See LICENSE in the distribution."))
(home-page "http://www.openssh.org/")))
+(define-public guile-ssh
+ (package
+ (name "guile-ssh")
+ (version "0.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/artyom-poptsov/libguile-ssh/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0vw02r261amkp6238cflww2y9y1v6vfx9ias6hvn8dlx0ghrd5dw"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-before
+ 'configure 'autoreconf
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The 'configure' script would want libssh 0.5.4, but that
+ ;; doesn't exist.
+ (substitute* "configure.ac"
+ (("0\\.5\\.4")
+ "0.5.3"))
+
+ (substitute* "src/Makefile.am"
+ (("-lssh_threads" match)
+ (string-append "-L" (assoc-ref inputs "libssh")
+ "/lib " match)))
+
+ (zero? (system* "autoreconf" "-vfi")))
+ (alist-cons-after
+ 'install 'fix-libguile-ssh-file-name
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libdir (string-append out "/lib"))
+ (guiledir (string-append out
+ "/share/guile/site/2.0")))
+ (substitute* (find-files guiledir ".scm")
+ (("\"libguile-ssh\"")
+ (string-append "\"" libdir "/libguile-ssh\"")))
+
+ ;; Make sure it works.
+ (setenv "GUILE_LOAD_PATH" guiledir)
+ (setenv "GUILE_LOAD_COMPILED_PATH" guiledir)
+ (system* "guile" "-c" "(use-modules (ssh session))")))
+ %standard-phases))
+ #:configure-flags (list (string-append "--with-guilesitedir="
+ (assoc-ref %outputs "out")
+ "/share/guile/site/2.0"))))
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool "bin")
+ ("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (inputs `(("guile" ,guile-2.0)
+ ("libssh" ,libssh)))
+ (synopsis "Guile bindings to libssh")
+ (description
+ "Guile-SSH is a library that provides access to the SSH protocol for
+programs written in GNU Guile interpreter. It is a wrapper to the underlying
+libssh library.")
+ (home-page "https://github.com/artyom-poptsov/libguile-ssh")
+ (license license:gpl3+)))