summaryrefslogtreecommitdiff
path: root/gnu/packages/tls.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tls.scm')
-rw-r--r--gnu/packages/tls.scm108
1 files changed, 104 insertions, 4 deletions
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 1a0eeb2708..e539686199 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -3,6 +3,8 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,14 +28,17 @@
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
+ #:use-module (guix build-system python)
#:use-module (gnu packages compression)
#:use-module (gnu packages)
#:use-module (gnu packages guile)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages base))
@@ -187,14 +192,14 @@ required structures.")
(define-public openssl
(package
(name "openssl")
- (version "1.0.2d")
+ (version "1.0.2e")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.openssl.org/source/openssl-" version
".tar.gz"))
(sha256
(base32
- "1j58r7rdj9fz2lanir8ajbx4bspb5jnm5ikl6dq8lql5fx43c737"))
+ "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72"))
(patches (map search-patch
'("openssl-runpath.patch"
"openssl-c-rehash.patch")))))
@@ -207,10 +212,11 @@ required structures.")
#:phases
(modify-phases %standard-phases
(add-before
- 'configure 'fix-man-dir
+ 'configure 'patch-Makefile.org
(lambda* (#:key outputs #:allow-other-keys)
;; The default MANDIR is some unusual place. Fix that.
(let ((out (assoc-ref outputs "out")))
+ (patch-makefile-SHELL "Makefile.org")
(substitute* "Makefile.org"
(("^MANDIR[[:blank:]]*=.*$")
(string-append "MANDIR = " out "/share/man\n")))
@@ -249,6 +255,27 @@ required structures.")
(find-files (string-append out "/lib")
"\\.so"))
#t)))
+ (add-after
+ 'unpack 'fix-broken-symlinks
+ (lambda _
+ ;; Repair the broken symlinks in the openssl-1.0.2e tarball.
+ (let* ((link-prefix "openssl-1.0.2e/")
+ (link-prefix-length (string-length link-prefix))
+ (broken-links
+ (find-files "." (lambda (file stat)
+ (and (eq? 'symlink (stat:type stat))
+ (string-prefix? link-prefix
+ (readlink file)))))))
+ (when (null? broken-links)
+ (error "The 'fix-broken-symlinks' phase is obsolete; remove it"))
+ (for-each (lambda (file)
+ (let* ((old-target (readlink file))
+ (new-target (string-drop old-target
+ link-prefix-length)))
+ (delete-file file)
+ (symlink new-target file)))
+ broken-links)
+ #t)))
(add-before
'patch-source-shebangs 'patch-tests
(lambda* (#:key inputs native-inputs #:allow-other-keys)
@@ -257,7 +284,8 @@ required structures.")
(("/bin/sh")
(string-append bash "/bin/bash"))
(("/bin/rm")
- "rm")))))
+ "rm"))
+ #t)))
(add-after
'install 'remove-miscellany
(lambda* (#:key outputs #:allow-other-keys)
@@ -320,6 +348,78 @@ security, and applying best practice development processes.")
"file://COPYING"
"See COPYING in the distribution.")))))
+(define-public acme
+ (package
+ (name "acme")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/a/acme/acme-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0fj0m04zzdxx23vazl00ilqyl3jxqq9c9p4x61pfz1zps7nbzsy3"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2))
+ ;; TODO: Add optional inputs for testing and building documentation.
+ (native-inputs
+ `(("python2-mock" ,python2-mock)
+ ("python2-setuptools" ,python2-setuptools)))
+ (propagated-inputs
+ `(("python2-ndg-httpsclient" ,python2-ndg-httpsclient)
+ ("python2-werkzeug" ,python2-werkzeug)
+ ("python2-six" ,python2-six)
+ ("python2-requests" ,python2-requests)
+ ("python2-pytz" ,python2-pytz)
+ ("python2-pyrfc3339" ,python2-pyrfc3339)
+ ("python2-pyasn1" ,python2-pyasn1)
+ ("python2-cryptography" ,python2-cryptography)
+ ("python2-pyopenssl" ,python2-pyopenssl)))
+ (home-page "https://github.com/letsencrypt/letsencrypt")
+ (synopsis "ACME protocol implementation in Python")
+ (description "ACME protocol implementation in Python")
+ (license license:asl2.0)))
+
+(define-public letsencrypt
+ (package
+ (name "letsencrypt")
+ (version "0.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/l/"
+ "letsencrypt/letsencrypt-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zb96xz32k6ai41h5m1l22qi47y71dq69dcmbz7vfm6jfrhjgxl1"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2))
+ ;; TODO: Add optional inputs for testing building documentation.
+ (native-inputs
+ `(("python2-nose" ,python2-nose)
+ ("python2-mock" ,python2-mock)))
+ (propagated-inputs
+ `(("acme" ,acme)
+ ("python2-zope-interface" ,python2-zope-interface)
+ ("python2-pythondialog" ,python2-pythondialog)
+ ("python2-pyrfc3339" ,python2-pyrfc3339)
+ ("python2-pyopenssl" ,python2-pyopenssl)
+ ("python2-configobj" ,python2-configobj)
+ ("python2-configargparse" ,python2-configargparse)
+ ("python2-zope-component" ,python2-zope-component)
+ ("python2-parsedatetime" ,python2-parsedatetime)
+ ("python2-six" ,python2-six)
+ ("python2-psutil" ,python2-psutil)
+ ("python2-requests" ,python2-requests)
+ ("python2-pytz" ,python2-pytz)))
+ (synopsis "Let's Encrypt client")
+ (description "Tool to automatically receive and install X.509 certificates
+to enable TLS on servers. The client will interoperate with the Let’s Encrypt CA which
+will be issuing browser-trusted certificates for free.")
+ (home-page "https://letsencrypt.org/")
+ (license license:asl2.0)))
+
(define-public perl-net-ssleay
(package
(name "perl-net-ssleay")