gnu: openldap: Fix cross-compilation.

* gnu/packages/openldap.scm (openldap)[inputs]: Move groff from here to ...
[native-inputs]: ... here. Also add bdb and automake.
[arguments]: Add cross-compilation specific configure-flags. Do not strip when
cross-compiling. Add a new fix-configure phase to update outdated config.sub
and config.guess. Add a fix-cross-gcc phase to set CC variable to
cross-compiler name when cross-compiling.
This commit is contained in:
Mathieu Othacehe 2019-07-31 16:54:28 +02:00
parent 63539587bc
commit 1c8b1870a6
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -4,6 +4,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -50,6 +51,7 @@ (define-module (gnu packages openldap)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl)) #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
@ -79,16 +81,46 @@ (define-public openldap
(inputs `(("bdb" ,bdb-5.3) (inputs `(("bdb" ,bdb-5.3)
("cyrus-sasl" ,cyrus-sasl) ("cyrus-sasl" ,cyrus-sasl)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("groff" ,groff)
("icu4c" ,icu4c) ("icu4c" ,icu4c)
("libgcrypt" ,libgcrypt) ("libgcrypt" ,libgcrypt)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs `(("libtool" ,libtool))) (native-inputs `(("libtool" ,libtool)
("groff" ,groff)
("bdb" ,bdb-5.3)
;; For up to date 'config.guess' and 'config.sub'.
("automake" ,automake)))
(arguments (arguments
`(#:tests? #f `(#:tests? #f
#:configure-flags '("--disable-static") #:configure-flags
'("--disable-static"
,@(if (%current-target-system)
'("--with-yielding_select=yes"
"ac_cv_func_memcmp_working=yes")
'()))
;; Disable install stripping as it breaks cross-compiling.
#:make-flags '("STRIP=")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
;; Replace outdated config.sub and config.guess:
(with-directory-excursion "build"
(for-each (lambda (file)
(install-file (string-append
(assoc-ref
(or native-inputs inputs) "automake")
"/share/automake-"
,(version-major+minor
(package-version automake))
"/" file) "."))
'("config.sub" "config.guess")))
#t))
,@(if (%current-target-system)
'((add-before 'configure 'fix-cross-gcc
(lambda* (#:key target #:allow-other-keys)
(setenv "CC" (string-append target "-gcc"))
#t)))
'())
(add-after 'install 'patch-sasl-path (add-after 'install 'patch-sasl-path
;; Give -L arguments for cyrus-sasl to avoid propagation. ;; Give -L arguments for cyrus-sasl to avoid propagation.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)