aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/tls.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/tls.scm')
-rw-r--r--gnu/packages/tls.scm84
1 files changed, 62 insertions, 22 deletions
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 1ee5400a9c..4ee75ace3d 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -329,6 +329,23 @@ required structures.")
(properties '((ftp-server . "ftp.gnutls.org")
(ftp-directory . "/gcrypt/gnutls")))))
+(define-public gnutls-latest
+ ;; Version 3.7.7 introduces 'set-session-record-port-close!', which allows
+ ;; us to get rid of the wrapper port in 'tls-wrap'.
+ (package
+ (inherit gnutls)
+ (version "3.7.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnupg/gnutls/v"
+ (version-major+minor version)
+ "/gnutls-" version ".tar.xz"))
+ (patches (search-patches "gnutls-skip-trust-store-test.patch"
+ "gnutls-cross.patch"))
+ (sha256
+ (base32
+ "01i1gl15k6qwvxmxx0by1mn9nlmcmym18wdpm7dn9awfsp8474dy"))))))
+
(define-public gnutls/guile-2.0
;; GnuTLS for Guile 2.0.
(package/inherit gnutls
@@ -359,27 +376,44 @@ OpenSSL for TARGET."
;; Keep this code outside the build code,
;; such that new targets can be added
;; without causing rebuilds for other targets.
- (cond ((string-prefix? "i586" target)
- "hurd-x86")
- ((string-prefix? "i686" target)
- "linux-x86")
- ((string-prefix? "x86_64" target)
- "linux-x86_64")
- ((string-prefix? "mips64el" target)
- "linux-mips64")
- ((string-prefix? "arm" target)
- "linux-armv4")
- ((string-prefix? "aarch64" target)
- "linux-aarch64")
- ((string-prefix? "powerpc64le" target)
- "linux-ppc64le")
- ((string-prefix? "powerpc64" target)
- "linux-ppc64")
- ((string-prefix? "powerpc" target)
- "linux-ppc")
- ((string-prefix? "riscv64" target)
- ;; linux64-riscv64 isn't recognized until 3.0.0.
- "linux-generic64")))
+ (if (target-mingw? target)
+ (string-append
+ "mingw"
+ (if (target-x86-64? target)
+ "64"
+ ""))
+ (let ((kernel
+ (cond ((target-hurd? target)
+ "hurd")
+ ((target-linux? target)
+ "linux")
+ (else
+ (error "unsupported openssl target kernel"))))
+ (arch
+ (cond
+ ((target-x86-32? target)
+ "x86")
+ ((target-x86-64? target)
+ "x86_64")
+ ((target-mips64el? target)
+ "mips64")
+ ((target-arm32? target)
+ "armv4")
+ ((target-aarch64? target)
+ "aarch64")
+ ((target-ppc64le? target)
+ "ppc64le")
+ ((target-ppc32? target)
+ "ppc")
+ ((and (target-powerpc? target)
+ (target-64bit? target))
+ "ppc64")
+ ((target-64bit? target)
+ ;; linux64-riscv64 isn't recognized until 3.0.0.
+ "generic64")
+ (else
+ (error "unsupported openssl target architecture")))))
+ (string-append kernel "-" arch))))
(define-public openssl
(package
@@ -473,7 +507,13 @@ OpenSSL for TARGET."
(for-each (lambda (file)
(install-file file slib)
(delete-file file))
- (find-files lib "\\.a$")))))
+ (find-files
+ lib
+ #$(if (target-mingw?)
+ '(lambda (filename _)
+ (and (string-suffix? ".a" filename)
+ (not (string-suffix? ".dll.a" filename))))
+ "\\.a$"))))))
(add-after 'install 'move-extra-documentation
(lambda _
;; Move man pages and full HTML documentation to "doc".