[bug#36477,21/31] gnu: mit-krb5: Fix cross-compilation.
diff mbox series

Message ID 20190708095913.3460-22-m.othacehe@gmail.com
State New
Headers show
Series
  • Fix cross-compilation issues
Related show

Commit Message

Mathieu Othacehe July 8, 2019, 9:59 a.m. UTC
* gnu/packages/kerberos.scm (mit-krb5)[arguments]: Disable tests when
cross-compiling. Add cross-compilation specific configure-flags and
make-flags. Search for perl in native-inputs or inputs.
---
 gnu/packages/kerberos.scm | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

Comments

Marius Bakke July 8, 2019, 6:13 p.m. UTC | #1
Mathieu Othacehe <m.othacehe@gmail.com> writes:

> * gnu/packages/kerberos.scm (mit-krb5)[arguments]: Disable tests when
> cross-compiling. Add cross-compilation specific configure-flags and
> make-flags. Search for perl in native-inputs or inputs.

[...]

> @@ -68,9 +69,23 @@
>         ("perl" ,perl)))
>      (arguments
>       `(;; XXX: On 32-bit systems, 'kdb5_util' hangs on an fcntl/F_SETLKW call
> -       ;; while running the tests in 'src/tests'.
> -       #:tests? ,(string=? (%current-system) "x86_64-linux")
> +       ;; while running the tests in 'src/tests'. Also disable tests when
> +       ;; cross-compiling.
> +       #:tests? ,(and (not (%current-target-system))
> +                      (string=? (%current-system) "x86_64-linux"))
>  
> +       #:configure-flags
> +       (list ,@(if (%current-target-system)
> +                   '("krb5_cv_attr_constructor_destructor=yes"
> +                     "ac_cv_func_regcomp=yes"
> +                     "ac_cv_printf_positional=yes"
> +                     "ac_cv_file__etc_environment=yes"
> +                     "ac_cv_file__etc_TIMEZONE=no")
> +                   '()))

Have you checked whether these (strange!) configure flags are needed
with the newer version on 'core-updates'?

I have a slight preference for not passing #:make-flags etc at all in
the normal context.  E.g.

,@(if (%current-target-system)
      `(#:configure-flags ...)
      '())

...but no strong opinion.
Mathieu Othacehe July 25, 2019, 1:48 p.m. UTC | #2
> Have you checked whether these (strange!) configure flags are needed
> with the newer version on 'core-updates'?

Yup still needed!

> I have a slight preference for not passing #:make-flags etc at all in
> the normal context.  E.g.
>
> ,@(if (%current-target-system)
>       `(#:configure-flags ...)
>       '())
>
> ...but no strong opinion.

Ok I'll patch it.

Mathieu

Patch
diff mbox series

diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm
index 873f5d8a37..8be4bd1ccc 100644
--- a/gnu/packages/kerberos.scm
+++ b/gnu/packages/kerberos.scm
@@ -8,6 +8,7 @@ 
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,9 +69,23 @@ 
        ("perl" ,perl)))
     (arguments
      `(;; XXX: On 32-bit systems, 'kdb5_util' hangs on an fcntl/F_SETLKW call
-       ;; while running the tests in 'src/tests'.
-       #:tests? ,(string=? (%current-system) "x86_64-linux")
+       ;; while running the tests in 'src/tests'. Also disable tests when
+       ;; cross-compiling.
+       #:tests? ,(and (not (%current-target-system))
+                      (string=? (%current-system) "x86_64-linux"))
 
+       #:configure-flags
+       (list ,@(if (%current-target-system)
+                   '("krb5_cv_attr_constructor_destructor=yes"
+                     "ac_cv_func_regcomp=yes"
+                     "ac_cv_printf_positional=yes"
+                     "ac_cv_file__etc_environment=yes"
+                     "ac_cv_file__etc_TIMEZONE=no")
+                   '()))
+       #:make-flags
+       (list ,@(if (%current-target-system)
+                   '("CFLAGS+=-DDESTRUCTOR_ATTR_WORKS=1")
+                   '()))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-source-directory
@@ -78,8 +93,8 @@ 
              (chdir "src")
              #t))
          (add-before 'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((perl (assoc-ref inputs "perl")))
+           (lambda* (#:key inputs native-inputs #:allow-other-keys)
+             (let ((perl (assoc-ref (or native-inputs inputs) "perl")))
                (substitute* "plugins/kdb/db2/libdb2/test/run.test"
                  (("/bin/cat") (string-append perl "/bin/perl"))
                  (("D/bin/sh") (string-append "D" (which "sh")))