diff mbox series

[bug#57857] gnu: busybox: fix the cross build.

Message ID CAGNyvehF7vEL0XejBy_jUcaBU94AgBwjadDfYWYT1+cSnL7seA@mail.gmail.com
State Accepted
Headers show
Series [bug#57857] gnu: busybox: fix the cross build. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

路辉 Sept. 16, 2022, 3:53 p.m. UTC
2022-09-16 15:08 GMT, Maxime Devos <maximedevos@telenet.be>:
>
>
> On 16-09-2022 14:35, 路辉 wrote:
>>
>
>
> +             (if tests?
> +                 (apply invoke "make"
> +                        ;; "V=1"
> +                        "SKIP_KNOWN_BUGS=1"
> +                        "SKIP_INTERNET_TESTS=1"
> +                        "check" make-flags)
> +                 #t)))
>
> Can be simplified to
>
> (when tests?
>    (apply invoke "make"
>            ;; "V=1"
>            "SKIP_KNOWN_BUGS=1"
>            "SKIP_INTERNET_TESTS=1"
>            "check" make-flags))
>
>
> +     `(#:tests? (if ,(%current-target-system) #f #t)
>
> That's the default, no need to mention it again here.
>
> +       #:make-flags
> +       (let ((target ,(%current-target-system)))
> +         (if target
> +             (list (string-append "CROSS_COMPILE=" target "-"))
> +             (list)))
>
> Can be simplified:
>
> #:make-flags
> ,(let ((target ,(%current-target-system)))
>     (if target
>         #~(list (string-append "CROSS_COMPILE=" ,target))
>         #~'()))
>
> (the #~ makes the phasing more explicit, if you go for that, I recommend
> turning the arguments into (arguments (list #:phases #~(modify-phases
> ...) #:make-flags ...)), instead of using ` / , , to remain consistent.)
>
> Greetings,
> Maxime
>

new patch vvvv

Comments

M Sept. 25, 2022, 5:55 p.m. UTC | #1
On 16-09-2022 17:53, 路辉 wrote:
>> Can be simplified:
>>
>> #:make-flags
>> ,(let ((target ,(%current-target-system)))

Oops the , before (%current-target-system) shouldn't be there

>>      (if target
>>          #~(list (string-append "CROSS_COMPILE=" ,target))

OOps, ,target -> #$target

>>          #~'()))
>>
>> (the #~ makes the phasing more explicit, if you go for that, I recommend
>> turning the arguments into (arguments (list #:phases #~(modify-phases
>> ...) #:make-flags ...)), instead of using ` / , , to remain consistent.)
>>
>> Greetings,
>> Maxime
>>
> 
> new patch vvvv

The #:make-flags simplification is missing (it can help with avoiding 
rebuilds (e.g. if a particular architecture needs some different 
#:make-flags than usual), but otherwise looks good.

Greetings,
Maxime.
Ludovic Courtès Sept. 26, 2022, 9:27 p.m. UTC | #2
Hi,

路辉 <luhux76@gmail.com> skribis:

> * gnu/packages/busybox.scm (busybox): fix cross build

Applied!  Thank you and thanks Maxime for reviewing.

Ludo’.
diff mbox series

Patch

From abb215e6dbee73fefc32dbfd13cf153b028bcf93 Mon Sep 17 00:00:00 2001
From: Lu Hui <luhux76@gmail.com>
Date: Fri, 16 Sep 2022 18:34:59 +0800
Subject: [PATCH] gnu: busybox: fix the cross build.

* gnu/packages/busybox.scm (busybox): fix cross build
---
 gnu/packages/busybox.scm | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 4468d71088..4601205f8b 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -2,6 +2,7 @@ 
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 LuHui <luhux76@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,8 +46,9 @@  (define-public busybox
                 "0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
+     (list
+      #:phases
+       #~(modify-phases %standard-phases
          (add-before 'configure 'disable-timestamps
            (lambda _
              (setenv "KCONFIG_NOTIMESTAMP" "1")))
@@ -65,7 +67,7 @@  (define-public busybox
                (("# CONFIG_INSTALL_NO_USR is not set")
                 "CONFIG_INSTALL_NO_USR=y"))))
          (replace 'check
-           (lambda* (#:key make-flags #:allow-other-keys)
+           (lambda* (#:key tests? make-flags #:allow-other-keys)
              (substitute* '("testsuite/du/du-s-works"
                             "testsuite/du/du-works")
                (("/bin") "/etc"))  ; there is no /bin but there is a /etc
@@ -93,17 +95,23 @@  (define-public busybox
              (delete-file "testsuite/which/which-uses-default-path")
              (rmdir "testsuite/which")
 
-             (apply invoke "make"
-                     ;; "V=1"
-                     "SKIP_KNOWN_BUGS=1"
-                     "SKIP_INTERNET_TESTS=1"
-                     "check" make-flags)))
+             (when tests?
+                 (apply invoke "make"
+                        ;; "V=1"
+                        "SKIP_KNOWN_BUGS=1"
+                        "SKIP_INTERNET_TESTS=1"
+                        "check" make-flags))))
          (replace 'install
            (lambda* (#:key outputs make-flags #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (apply invoke "make"
                        (string-append "CONFIG_PREFIX=" out)
-                       "install" make-flags)))))))
+                       "install" make-flags)))))
+      #:make-flags
+      #~(let ((target #$(%current-target-system)))
+          (if target
+              (list (string-append "CROSS_COMPILE=" target "-"))
+              '()))))
     (native-inputs (list perl ; needed to generate the man pages (pod2man)
                          ;; The following are needed by the tests.
                          inetutils
-- 
2.37.3