summary refs log tree commit diff
path: root/gnu/packages/ssh.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ssh.scm')
-rw-r--r--gnu/packages/ssh.scm68
1 files changed, 68 insertions, 0 deletions
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 50998794f2..b42f3ff7ca 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -21,6 +21,8 @@
                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages groff)
+  #:use-module (gnu packages openssl)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu))
@@ -47,3 +49,69 @@ into an application to perform many different tasks when communicating with
 a server that supports the SSH-2 protocol.")
    (license license:bsd-3)
    (home-page "http://www.libssh2.org/")))
+
+(define-public openssh
+  (package
+   (name "openssh")
+   (version "6.1p1")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                   "ftp://ftp.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-"
+                   version ".tar.gz"))
+            (sha256 (base32
+                     "04f4l4vx6f964v5qjm03nhyixdc3llc90z6cj70r0bl5q3v5ghfi"))))
+   (build-system gnu-build-system)
+   (inputs `(("groff" ,groff)
+             ("openssl" ,openssl)
+             ("zlib" ,zlib)))
+   (arguments
+    `(#:test-target "tests"
+      #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key outputs #:allow-other-keys #:rest args)
+         (let ((configure (assoc-ref %standard-phases 'configure))
+               (out (assoc-ref outputs "out")))
+           (apply configure args)
+           (substitute* "Makefile"
+                        (("PRIVSEP_PATH=/var/empty")
+                        (string-append "PRIVSEP_PATH=" out "/var/empty")))))
+       (alist-replace
+        'check
+        (lambda* (#:key #:allow-other-keys #:rest args)
+         (let ((check (assoc-ref %standard-phases 'check)))
+           ;; remove tests that require the user sshd
+           (substitute* "regress/Makefile"
+                        (("t9 t-exec") "t9"))
+           (apply check args)))
+       (alist-replace
+        'install
+        (lambda* (#:key (make-flags '()) #:allow-other-keys)
+          ;; install without host keys and system configuration files
+          (zero? (apply system* "make" "install-nosysconf" make-flags)))
+       %standard-phases)))))
+   (synopsis "OpenSSH, a client and server for the secure shell (ssh) protocol")
+   (description
+    "The SSH2 protocol implemented in OpenSSH is standardised by the
+IETF secsh working group and is specified in several RFCs and drafts.
+It is composed of three layered components:
+
+The transport layer provides algorithm negotiation and a key exchange.
+The key exchange includes server authentication and results in a
+cryptographically secured connection: it provides integrity, confidentiality
+and optional compression.
+
+The user authentication layer uses the established connection and relies on
+the services provided by the transport layer. It provides several mechanisms
+for user authentication. These include traditional password authentication
+as well as public-key or host-based authentication mechanisms.
+
+The connection layer multiplexes many different concurrent channels over the
+authenticated connection and allows tunneling of login sessions and
+TCP-forwarding. It provides a flow control service for these channels.
+Additionally, various channel-specific options can be negotiated.")
+   (license (license:bsd-style "file://LICENSE"
+                               "See LICENSE in the distribution."))
+   (home-page "http://www.openssh.org/")))
+