gnu: openssl-1.1: Clean-up definition.

* gnu/packages/tls.scm (openssl-1.1): Do not quasiquote arguments.  Remove
extraneous let-bound variables and use more gexp variables.
This commit is contained in:
Maxim Cournoyer 2023-02-25 23:51:51 -05:00
parent 4895846197
commit 732105ef7e
No known key found for this signature in database
GPG Key ID: 1260E46482E63562

View File

@ -15,7 +15,7 @@
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
@ -447,112 +447,104 @@ OpenSSL for TARGET."
"static")) ;6.4 MiB of .a files
(native-inputs (list perl))
(arguments
`(#:parallel-tests? #f
#:test-target "test"
(list
#:parallel-tests? #f
#:test-target "test"
;; Changes to OpenSSL sometimes cause Perl to "sneak in" to the closure,
;; so we explicitly disallow it here.
#:disallowed-references (list (canonical-package perl))
#:phases
#~(modify-phases %standard-phases
#$@(if (%current-target-system)
#~((add-before 'configure 'set-cross-compile
(lambda* (#:key target #:allow-other-keys)
(setenv "CROSS_COMPILE" (string-append target "-"))
(setenv "CONFIGURE_TARGET_ARCH"
#$(target->openssl-target
(%current-target-system))))))
#~())
(replace 'check
(lambda* (#:key tests? test-target #:allow-other-keys)
(when tests?
;; 'test_ssl_new.t' in 1.1.1n and 3.0.3 fails due to an expired
;; certificate:
;; <https://github.com/openssl/openssl/issues/18441>.
;; Skip it.
;;
;; 'test_afalg' seems to be dependent on kernel features:
;; <https://github.com/openssl/openssl/issues/12242>.
(invoke "make" test-target
#$(if (or (target-arm?) (target-riscv64?))
"TESTS=-test_afalg -tls_ssl_new"
"TESTS=-test_ssl_new")))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
;; It's not a shebang so patch-source-shebangs misses it.
(substitute* "config"
(("/usr/bin/env")
(which "env")))
(apply
invoke #$@(if (%current-target-system)
#~("./Configure")
#~("./config"))
"shared" ;build shared libraries
"--libdir=lib"
;; Changes to OpenSSL sometimes cause Perl to "sneak in" to the closure,
;; so we explicitly disallow it here.
#:disallowed-references ,(list (canonical-package perl))
#:phases
,#~
(modify-phases %standard-phases
#$@(if (%current-target-system)
#~((add-before
'configure 'set-cross-compile
(lambda* (#:key target #:allow-other-keys)
(setenv "CROSS_COMPILE" (string-append target "-"))
(setenv "CONFIGURE_TARGET_ARCH"
#$(target->openssl-target
(%current-target-system))))))
#~())
(replace 'check
(lambda* (#:key tests? test-target #:allow-other-keys)
(when tests?
;; 'test_ssl_new.t' in 1.1.1n and 3.0.3 fails due to an expired
;; certificate:
;; <https://github.com/openssl/openssl/issues/18441>.
;; Skip it.
;;
;; 'test_afalg' seems to be dependent on kernel features:
;; <https://github.com/openssl/openssl/issues/12242>.
(invoke "make" test-target
#$(if (or (target-arm?) (target-riscv64?))
"TESTS=-test_afalg -tls_ssl_new"
"TESTS=-test_ssl_new")))))
(replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(let* ((out #$output)
(lib (string-append out "/lib")))
;; It's not a shebang so patch-source-shebangs misses it.
(substitute* "config"
(("/usr/bin/env")
(string-append (assoc-ref %build-inputs "coreutils")
"/bin/env")))
(apply
invoke #$@(if (%current-target-system)
#~("./Configure")
#~("./config"))
"shared" ;build shared libraries
"--libdir=lib"
;; The default for this catch-all directory is
;; PREFIX/ssl. Change that to something more
;; conventional.
(string-append "--openssldir=" #$output
"/share/openssl-"
#$(package-version this-package))
;; The default for this catch-all directory is
;; PREFIX/ssl. Change that to something more
;; conventional.
(string-append "--openssldir=" out
"/share/openssl-"
#$(package-version this-package))
(string-append "--prefix=" out)
(string-append "-Wl,-rpath," lib)
#$@(if (%current-target-system)
#~((getenv "CONFIGURE_TARGET_ARCH"))
#~())
configure-flags)
;; Output the configure variables.
(invoke "perl" "configdata.pm" "--dump"))))
(add-after 'install 'move-static-libraries
(lambda _
;; Move static libraries to the "static" output.
(let* ((out #$output)
(lib (string-append out "/lib"))
(static #$output:static)
(slib (string-append static "/lib")))
(for-each (lambda (file)
(install-file file slib)
(delete-file file))
(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".
(let* ((out #$output)
(man (string-append out "/share/man"))
(html (string-append out "/share/doc/openssl"))
(doc #$output:doc)
(man-target (string-append doc "/share/man"))
(html-target (string-append doc "/share/doc/openssl")))
(mkdir-p (dirname man-target))
(mkdir-p (dirname html-target))
(rename-file man man-target)
(rename-file html html-target))))
(add-after
'install 'remove-miscellany
(lambda _
;; The 'misc' directory contains random undocumented shell and Perl
;; scripts. Remove them to avoid retaining a reference on Perl.
(delete-file-recursively (string-append #$output "/share/openssl-"
#$(package-version this-package)
"/misc")))))))
(string-append "--prefix=" #$output)
(string-append "-Wl,-rpath," (string-append #$output "/lib"))
#$@(if (%current-target-system)
#~((getenv "CONFIGURE_TARGET_ARCH"))
#~())
configure-flags)
;; Output the configure variables.
(invoke "perl" "configdata.pm" "--dump")))
(add-after 'install 'move-static-libraries
(lambda _
;; Move static libraries to the "static" output.
(let* ((lib (string-append #$output "/lib"))
(slib (string-append #$output:static "/lib")))
(for-each (lambda (file)
(install-file file slib)
(delete-file file))
(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".
(let* ((man (string-append #$output "/share/man"))
(html (string-append #$output "/share/doc/openssl"))
(man-target (string-append #$output:doc "/share/man"))
(html-target (string-append
#$output:doc "/share/doc/openssl")))
(mkdir-p (dirname man-target))
(mkdir-p (dirname html-target))
(rename-file man man-target)
(rename-file html html-target))))
(add-after 'install 'remove-miscellany
(lambda _
;; The 'misc' directory contains random undocumented shell and
;; Perl scripts. Remove them to avoid retaining a reference on
;; Perl.
(delete-file-recursively
(string-append #$output "/share/openssl-"
#$(package-version this-package) "/misc")))))))
(native-search-paths
(list $SSL_CERT_DIR $SSL_CERT_FILE))
(synopsis "SSL/TLS implementation")
(description
"OpenSSL is an implementation of SSL/TLS.")
(description "OpenSSL is an implementation of SSL/TLS.")
(license license:openssl)
(home-page "https://www.openssl.org/")))