[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#36477] [PATCH v4 01/23] gnu: openssl: Fix cross-compilation.
From: |
Efraim Flashner |
Subject: |
[bug#36477] [PATCH v4 01/23] gnu: openssl: Fix cross-compilation. |
Date: |
Wed, 2 Oct 2019 13:17:14 +0300 |
User-agent: |
Mutt/1.12.2 (2019-09-21) |
On Wed, Oct 02, 2019 at 11:58:42AM +0200, Mathieu Othacehe wrote:
> * gnu/packages/tls.scm (openssl-next)[arguments]: Pass CROSS_COMPILE
> environment variable and target system to configure script.
> ---
> gnu/packages/tls.scm | 62 ++++++++++++++++++++++++++++++++------------
> 1 file changed, 45 insertions(+), 17 deletions(-)
>
> diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> index 6689375da6..8797429dcf 100644
> --- a/gnu/packages/tls.scm
> +++ b/gnu/packages/tls.scm
> @@ -13,6 +13,7 @@
> ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <address@hidden>
> ;;; Copyright © 2017 Rutger Helling <address@hidden>
> ;;; Copyright © 2018 Clément Lassieur <address@hidden>
> +;;; Copyright © 2019 Mathieu Othacehe <address@hidden>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -301,6 +302,23 @@ required structures.")
> #:disallowed-references ,(list (canonical-package perl))
> #:phases
> (modify-phases %standard-phases
> + ,@(if (%current-target-system)
> + '((add-before
> + 'configure 'set-cross-compile
> + (lambda* (#:key target outputs #:allow-other-keys)
> + (setenv "CROSS_COMPILE" (string-append target "-"))
> + (setenv "CONFIGURE_TARGET_ARCH"
> + (cond
> + ((string-prefix? "i686" target)
> + "linux-x86")
> + ((string-prefix? "x86_64" target)
> + "linux-x86_64")
> + ((string-prefix? "arm" target)
> + "linux-armv4")
> + ((string-prefix? "aarch64" target)
> + "linux-aarch64")))
This needs a null case. I think I'd try
(_
(string-append "linux-" (string-tokenize
(%current-target-system)
(char-set-compliment (char-set #\-)))))
This would create something somewhat usable for uncovered cases, and in
the case of x86_64-linux, it would (should) spit out "linux-x86_64"
This is basically the code used in (gnu services desktop) for the
enlightenment-setuid-programs.
> + #t)))
> + '())
> (replace 'configure
> (lambda* (#:key outputs #:allow-other-keys)
> (let* ((out (assoc-ref outputs "out"))
> @@ -310,7 +328,9 @@ required structures.")
> (("/usr/bin/env")
> (string-append (assoc-ref %build-inputs "coreutils")
> "/bin/env")))
> - (invoke "./config"
> + (invoke ,@(if (%current-target-system)
> + '("./Configure")
> + '("./config"))
> "shared" ;build shared libraries
> "--libdir=lib"
>
> @@ -321,7 +341,10 @@ required structures.")
> "/share/openssl-" ,version)
>
> (string-append "--prefix=" out)
> - (string-append "-Wl,-rpath," lib)))))
> + (string-append "-Wl,-rpath," lib)
> + ,@(if (%current-target-system)
> + '((getenv "CONFIGURE_TARGET_ARCH"))
> + '())))))
could this be changed to
,@(when (%current-target-system)
'((getenv "CONFIGURE_TARGET_ARCH")))
if it works then you don't need the 'if not' null case.
> (add-after 'install 'move-static-libraries
> (lambda* (#:key outputs #:allow-other-keys)
> ;; Move static libraries to the "static" output.
> @@ -435,21 +458,26 @@ required structures.")
> (("^MANDIR[[:blank:]]*=.*$")
> (string-append "MANDIR = " out "/share/man\n")))
> #t)))
> - (replace 'configure
> - ;; Override this phase because OpenSSL 1.0 does not understand
> -rpath.
> - (lambda* (#:key outputs #:allow-other-keys)
> - (let ((out (assoc-ref outputs "out")))
> - (invoke "./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=" out
> - "/share/openssl-" ,version)
> -
> - (string-append "--prefix=" out)))))
> + (replace 'configure
> + ;; Override this phase because OpenSSL 1.0 does not understand
> -rpath.
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let ((out (assoc-ref outputs "out")))
> + (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=" out
> + "/share/openssl-" ,version)
> +
> + (string-append "--prefix=" out)
> + ,@(if (%current-target-system)
> + '((getenv "CONFIGURE_TARGET_ARCH"))
> + '())))))
> (delete 'move-extra-documentation)
> (add-after 'install 'move-man3-pages
> (lambda* (#:key outputs #:allow-other-keys)
> --
> 2.23.0
>
>
>
>
--
Efraim Flashner <address@hidden> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
signature.asc
Description: PGP signature
- [bug#36477] [PATCH v4 00/23] System cross-compilation, Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 01/23] gnu: openssl: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 01/23] gnu: openssl: Fix cross-compilation.,
Efraim Flashner <=
- [bug#36477] [PATCH v4 02/23] gnu: cmake: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 03/23] gnu: groff: Fix cross compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 04/23] gnu: cyrus-sasl: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 07/23] gnu: eudev: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 05/23] gnu: icu4c: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 08/23] gnu: bdb: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 06/23] gnu: boost: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 11/23] gnu: git: Fix cross-compilation., Mathieu Othacehe, 2019/10/02
- [bug#36477] [PATCH v4 10/23] gnu: swig: Fix cross-compilation., Mathieu Othacehe, 2019/10/02