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

From: 路辉 <[email-masked]>
Date: Fri, 16 Sep 2022 15:53:14 +0000

2022-09-16 15:08 GMT, Maxime Devos <[email-masked]>:
>
>
> 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
From abb215e6dbee73fefc32dbfd13cf153b028bcf93 Mon Sep 17 00:00:00 2001
From: Lu Hui <[email-masked]>
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 <[email-masked]>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2022 LuHui <[email-masked]>
 ;;;
 ;;; 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