summary refs log tree commit diff
path: root/gnu/packages/tls.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tls.scm')
-rw-r--r--gnu/packages/tls.scm93
1 files changed, 91 insertions, 2 deletions
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 31ce1b3910..63893c0462 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
-;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,11 +20,13 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages tls)
-  #:use-module ((guix licenses) #:select (lgpl2.0+ lgpl2.1+ bsd-3))
+  #:use-module ((guix licenses)
+                #:select (lgpl2.0+ lgpl2.1+ bsd-3 openssl))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages)
   #:use-module (gnu packages guile)
@@ -173,3 +175,90 @@ and DTLS protocols.  It is provided in the form of a C library to support the
 protocols, as well as to parse and write X.5009, PKCS 12, OpenPGP and other
 required structures.")
     (license lgpl2.1+)))
+
+(define-public openssl
+  (package
+   (name "openssl")
+   (version "1.0.2c")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version
+                                ".tar.gz"))
+            (sha256
+             (base32
+              "10vasdg52qiyqvgbp14n9z7ghglmhzvag9qpiz2nfqssycvvlf00"))
+            (patches (list (search-patch "openssl-runpath.patch")))))
+   (build-system gnu-build-system)
+   (native-inputs `(("perl" ,perl)))
+   (arguments
+    '(#:parallel-build? #f
+      #:parallel-tests? #f
+      #:test-target "test"
+      #:phases
+      (alist-replace
+       'configure
+       (lambda* (#:key outputs #:allow-other-keys)
+         (let ((out (assoc-ref outputs "out")))
+           (zero?
+            (system* "./config"
+                     "shared"                   ; build shared libraries
+                     "--libdir=lib"
+                     (string-append "--prefix=" out)))))
+       (alist-cons-before
+        'patch-source-shebangs 'patch-tests
+        (lambda* (#:key inputs native-inputs #:allow-other-keys)
+          (let ((bash (assoc-ref (or native-inputs inputs) "bash")))
+            (substitute* (find-files "test" ".*")
+              (("/bin/sh")
+               (string-append bash "/bin/bash"))
+              (("/bin/rm")
+               "rm"))))
+        %standard-phases))))
+   (native-search-paths
+    ;; FIXME: These two variables must designate a single file or directory
+    ;; and are not actually "search paths."  In practice it works OK in user
+    ;; profiles because there's always just one item that matches the
+    ;; specification.
+    (list (search-path-specification
+           (variable "SSL_CERT_DIR")
+           (files '("etc/ssl/certs")))
+          (search-path-specification
+           (variable "SSL_CERT_FILE")
+           (files '("etc/ssl/certs/ca-certificates.crt")))))
+   (synopsis "SSL/TLS implementation")
+   (description
+    "OpenSSL is an implementation of SSL/TLS")
+   (license openssl)
+   (home-page "http://www.openssl.org/")))
+
+(define-public perl-net-ssleay
+  (package
+    (name "perl-net-ssleay")
+    (version "1.68")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cpan/authors/id/M/MI/MIKEM/"
+                                  "Net-SSLeay-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1m2wwzhjwsg0drlhp9w12fl6bsgj69v8gdz72jqrqll3qr7f408p"))
+              (patches
+               ;; XXX Try removing this patch for perl-net-ssleay > 1.68
+               (list (search-patch "perl-net-ssleay-disable-ede-test.patch")))))
+    (build-system perl-build-system)
+    (inputs `(("openssl" ,openssl)))
+    (arguments
+     `(#:phases (alist-cons-before
+                 'configure 'set-ssl-prefix
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (setenv "OPENSSL_PREFIX" (assoc-ref inputs "openssl")))
+                 %standard-phases)))
+    (synopsis "Perl extension for using OpenSSL")
+    (description
+     "This module offers some high level convenience functions for accessing
+web pages on SSL servers (for symmetry, the same API is offered for accessing
+http servers, too), an sslcat() function for writing your own clients, and
+finally access to the SSL api of the SSLeay/OpenSSL package so you can write
+servers or clients for more complicated applications.")
+    (license (package-license perl))
+    (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/")))