1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
4 ;;; This file is part of GNU Guix.
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 (define-module (gnu packages lsh)
20 #:use-module (guix licenses)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix build-system gnu)
24 #:use-module (gnu packages)
25 #:use-module (gnu packages m4)
26 #:use-module (gnu packages linux)
27 #:use-module (gnu packages nettle)
28 #:use-module ((gnu packages compression) #:prefix guix:)
29 #:use-module (gnu packages multiprecision)
30 #:use-module (gnu packages readline)
31 #:use-module (gnu packages gperf)
32 #:use-module (gnu packages guile))
41 (uri (string-append "http://download.ofb.net/liboop/liboop-"
45 "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l"))
46 (patches (list (search-patch "liboop-mips64-deplibs-fix.patch")))))
47 (build-system gnu-build-system)
48 (home-page "http://www.lysator.liu.se/liboop/")
49 (synopsis "Event loop library")
50 (description "Liboop is a low-level event loop management library for
51 POSIX-based operating systems. It supports the development of modular,
52 multiplexed applications which may respond to events from several sources. It
53 replaces the \"select() loop\" and allows the registration of event handlers
54 for file and network I/O, timers and signals. Since processes use these
55 mechanisms for almost all external communication, liboop can be used as the
56 basis for almost any application.")
65 (uri (string-append "mirror://gnu/lsh/lsh-"
69 "1qqjy9zfzgny0rkb27c8c7dfsylvb6n0ld8h3an2r83pmaqr9gwb"))
70 (modules '((guix build utils)))
73 (substitute* "src/testsuite/functions.sh"
75 ;; Avoid host name lookups since they don't work in
79 ;; Make tests more verbose.
82 (substitute* (find-files "src/testsuite" "-test$")
83 (("localhost") "127.0.0.1"))
85 (substitute* "src/testsuite/login-auth-test"
86 (("/bin/cat") "cat"))))))
87 (build-system gnu-build-system)
92 ("psmisc" ,psmisc))) ; for `killall'
94 `(("nettle" ,nettle-2)
95 ("linux-pam" ,linux-pam)
97 ;; 'rl.c' uses the 'CPPFunction' type, which is no longer in
99 ("readline" ,readline-6.2)
105 '(;; Skip the `configure' test that checks whether /dev/ptmx &
106 ;; co. work as expected, because it relies on impurities (for
107 ;; instance, /dev/pts may be unavailable in chroots.)
108 #:configure-flags '("lsh_cv_sys_unix98_ptys=yes")
110 ;; FIXME: Tests won't run in a chroot, presumably because
111 ;; /etc/profile is missing, and thus clients get an empty $PATH
112 ;; and nothing works.
117 'configure 'pre-configure
118 (lambda* (#:key inputs #:allow-other-keys)
119 ;; Make sure 'lsh' and 'lshd' pick 'sexp-conv' in the right place by
121 (substitute* "src/environ.h.in"
122 (("^#define PATH_SEXP_CONV.*")
123 (let* ((nettle (assoc-ref inputs "nettle"))
124 (sexp-conv (string-append nettle "/bin/sexp-conv")))
125 (string-append "#define PATH_SEXP_CONV \""
128 ;; Tests rely on $USER being set.
129 (setenv "USER" "guix"))
131 (home-page "http://www.lysator.liu.se/~nisse/lsh/")
132 (synopsis "GNU implementation of the Secure Shell (ssh) protocols")
134 "GNU lsh is a free implementation of the SSH version 2 protocol. It is
135 used to create a secure line of communication between two computers,
136 providing shell access to the server system from the client. It provides
137 both the server daemon and the client application, as well as tools for
138 manipulating key files.")