aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/guile.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-12-04 00:30:08 +0100
committerLudovic Courtès <ludo@gnu.org>2013-12-04 00:30:08 +0100
commit595801e2f4736a7fc08484716adf3bc49432bfa9 (patch)
tree4bbfa1e96cd9cd8d329c98109ee5417218d5c497 /gnu/packages/guile.scm
parentdeed349b4a36d2feac200eb42190c8fb5e7c83c5 (diff)
downloadgnu-guix-595801e2f4736a7fc08484716adf3bc49432bfa9.tar
gnu-guix-595801e2f4736a7fc08484716adf3bc49432bfa9.tar.gz
gnu: Add Guile-SSH.
* gnu/packages/guile.scm (guile-ssh): New variable.
Diffstat (limited to 'gnu/packages/guile.scm')
-rw-r--r--gnu/packages/guile.scm64
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 40d9ae7df8..31fb5c4473 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -33,6 +33,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages ed)
#:use-module (gnu packages which)
+ #:autoload (gnu packages ssh) (libssh)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
@@ -327,4 +328,67 @@ for Guile\".")
;; details.
(license gpl3+)))
+(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 gpl3+)))
+
;;; guile.scm ends here