summary refs log tree commit diff
path: root/gnu/packages/lsh.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/lsh.scm')
-rw-r--r--gnu/packages/lsh.scm82
1 files changed, 46 insertions, 36 deletions
diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm
index ac01a878bc..1c823492c5 100644
--- a/gnu/packages/lsh.scm
+++ b/gnu/packages/lsh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +30,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages gperf)
-  #:use-module (gnu packages base))
+  #:use-module (gnu packages guile))
 
 (define-public liboop
   (package
@@ -61,27 +61,45 @@ basis for almost any application.")
   (package
     (name "lsh")
     (version "2.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/lsh/lsh-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "1qqjy9zfzgny0rkb27c8c7dfsylvb6n0ld8h3an2r83pmaqr9gwb"))))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/lsh/lsh-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1qqjy9zfzgny0rkb27c8c7dfsylvb6n0ld8h3an2r83pmaqr9gwb"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (use-modules (guix build utils))
+
+                  (substitute* "src/testsuite/functions.sh"
+                    (("localhost")
+                     ;; Avoid host name lookups since they don't work in
+                     ;; chroot builds.
+                     "127.0.0.1")
+                    (("set -e")
+                     ;; Make tests more verbose.
+                     "set -e\nset -x"))
+
+                  (substitute* (find-files "src/testsuite" "-test$")
+                    (("localhost") "127.0.0.1"))
+
+                  (substitute* "src/testsuite/login-auth-test"
+                    (("/bin/cat") "cat"))))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("m4" ,m4)
+       ("guile" ,guile-2.0)
+       ("gperf" ,gperf)
+       ("psmisc" ,psmisc)))                       ; for `killall'
     (inputs
      `(("nettle" ,nettle)
        ("linux-pam" ,linux-pam)
-       ("m4" ,m4)
        ("readline" ,readline)
        ("liboop" ,liboop)
        ("zlib" ,guix:zlib)
-       ("gmp" ,gmp)
-       ("guile" ,guile-final)
-       ("gperf" ,gperf)
-       ("psmisc" ,psmisc)                         ; for `killall'
-       ))
+       ("gmp" ,gmp)))
     (arguments
      '(;; Skip the `configure' test that checks whether /dev/ptmx &
        ;; co. work as expected, because it relies on impurities (for
@@ -95,27 +113,19 @@ basis for almost any application.")
 
        #:phases
        (alist-cons-before
-        'configure 'fix-test-suite
-        (lambda _
-          ;; Tests rely on $USER being set.
-          (setenv "USER" "guix")
+        'configure 'pre-configure
+        (lambda* (#:key inputs #:allow-other-keys)
+          ;; Make sure 'lsh' and 'lshd' pick 'sexp-conv' in the right place by
+          ;; default.
+          (substitute* "src/environ.h.in"
+            (("^#define PATH_SEXP_CONV.*")
+             (let* ((nettle    (assoc-ref inputs "nettle"))
+                    (sexp-conv (string-append nettle "/bin/sexp-conv")))
+               (string-append "#define PATH_SEXP_CONV \""
+                              sexp-conv "\"\n"))))
 
-          (substitute* "src/testsuite/functions.sh"
-            (("localhost")
-             ;; Avoid host name lookups since they don't work in chroot
-             ;; builds.
-             "127.0.0.1")
-            (("set -e")
-             ;; Make tests more verbose.
-             "set -e\nset -x"))
-
-          (substitute* (find-files "src/testsuite" "-test$")
-            (("localhost") "127.0.0.1"))
-
-          (substitute* "src/testsuite/login-auth-test"
-            (("/bin/cat")
-             ;; Use the right path to `cat'.
-             (which "cat"))))
+          ;; Tests rely on $USER being set.
+          (setenv "USER" "guix"))
         %standard-phases)))
     (home-page "http://www.lysator.liu.se/~nisse/lsh/")
     (synopsis "GNU implementation of the Secure Shell (ssh) protocols")