summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-03-04 17:40:44 +0100
committerLudovic Courtès <ludo@gnu.org>2023-03-04 18:46:37 +0100
commita6194d1f35ec8ac9b58f4d05affa5aabf1ca7014 (patch)
tree0f3fcbdd428dc12738933956732748188cccbbcc
parent3442edac8950ccfc243c1b400b9cd15f8840e55d (diff)
downloadguix-a6194d1f35ec8ac9b58f4d05affa5aabf1ca7014.tar.gz
gnu: cross-base: Inherit arguments from 'mig'.
That way, 'xmig' inherits the 'avoid-perl-dependency' build phase.

* gnu/packages/hurd.scm (mig)[arguments]: In 'avoid-perl-dependency',
use 'find-files' to locate the "mig" executable(s).
* gnu/packages/cross-base.scm (cross-kernel-headers*)[xmig]: Use
'substitute-keyword-arguments'.
-rw-r--r--gnu/packages/cross-base.scm27
-rw-r--r--gnu/packages/hurd.scm9
2 files changed, 19 insertions, 17 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index fbedf6e833..2959616af6 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -415,19 +415,20 @@ target that libc."
       (inherit mig)
       (name (string-append "mig-cross"))
       (arguments
-       (list #:modules '((guix build gnu-build-system)
-                         (guix build utils)
-                         (srfi srfi-26))
-             #:phases
-             #~(modify-phases %standard-phases
-                 (add-before 'configure 'set-cross-headers-path
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (let* ((mach #+(this-package-input xgnumach-headers-name))
-                            (cpath (string-append mach "/include")))
-                       (for-each (cut setenv <> cpath)
-                                 '#$%gcc-cross-include-paths)))))
-             #:configure-flags #~(list #$(string-append "--target=" target))
-             #:tests? #f))
+       (substitute-keyword-arguments (package-arguments mig)
+         ((#:configure-flags flags #~'())
+          #~(list #$(string-append "--target=" target)))
+         ((#:tests? _ #f)
+          #f)
+         ((#:phases phases #~%standard-phases)
+          #~(modify-phases #$phases
+              (add-before 'configure 'set-cross-headers-path
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let* ((mach #+(this-package-input xgnumach-headers-name))
+                         (cpath (string-append mach "/include")))
+                    (for-each (lambda (variable)
+                                (setenv variable cpath))
+                              '#$%gcc-cross-include-paths))))))))
       (propagated-inputs (list xgnumach-headers))
       (native-inputs
        (modify-inputs (package-native-inputs mig)
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index f4de5dc6c2..7f02e6141d 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -130,10 +130,11 @@ GNU/Hurd."
            #~(modify-phases %standard-phases
                (add-after 'install 'avoid-perl-dependency
                  (lambda* (#:key build inputs outputs #:allow-other-keys)
-                   (let ((out (assoc-ref outputs "out")))
-                     ;; By default 'mig' uses Perl to compute
-                     ;; 'libexecdir_rel'.  Avoid it.
-                     (substitute* (string-append out "/bin/mig")
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (string-append out "/bin")))
+                     ;; By default 'mig' (or 'TARGET-mig') uses Perl to
+                     ;; compute 'libexecdir_rel'.  Avoid it.
+                     (substitute* (find-files bin "mig$")
                        (("^libexecdir_rel=.*")
                         "libexecdir_rel=../libexec\n"))))))))
     (home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")