[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
17/18: gnu: busybox: Fix cross-compilation.
From: |
guix-commits |
Subject: |
17/18: gnu: busybox: Fix cross-compilation. |
Date: |
Mon, 26 Sep 2022 17:32:11 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit e5fc55493d85f01e8c6036401c73cdb73d2ec30a
Author: Lu Hui <luhux76@gmail.com>
AuthorDate: Fri Sep 16 18:34:59 2022 +0800
gnu: busybox: Fix cross-compilation.
* gnu/packages/busybox.scm (busybox)[arguments]: Switch to gexps.
Honor #:tests? in 'check' phase. Add #:make-flags.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/packages/busybox.scm | 117 +++++++++++++++++++++++++----------------------
1 file changed, 63 insertions(+), 54 deletions(-)
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 4468d71088..ccfe91257b 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,66 +46,74 @@
"0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'configure 'disable-timestamps
- (lambda _
- (setenv "KCONFIG_NOTIMESTAMP" "1")))
- (add-before 'configure 'disable-taskset
- ;; This feature fails its tests in the build environment,
- ;; was default 'n' until after 1.26.2.
- (lambda _
- (substitute* "util-linux/taskset.c"
- (("default y") "default n"))))
- (replace 'configure
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "defconfig" make-flags)))
- (add-after 'configure 'dont-install-to-usr
- (lambda _
- (substitute* ".config"
- (("# CONFIG_INSTALL_NO_USR is not set")
- "CONFIG_INSTALL_NO_USR=y"))))
- (replace 'check
- (lambda* (#:key 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
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'disable-timestamps
+ (lambda _
+ (setenv "KCONFIG_NOTIMESTAMP" "1")))
+ (add-before 'configure 'disable-taskset
+ ;; This feature fails its tests in the build environment,
+ ;; was default 'n' until after 1.26.2.
+ (lambda _
+ (substitute* "util-linux/taskset.c"
+ (("default y") "default n"))))
+ (replace 'configure
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "defconfig" make-flags)))
+ (add-after 'configure 'dont-install-to-usr
+ (lambda _
+ (substitute* ".config"
+ (("# CONFIG_INSTALL_NO_USR is not set")
+ "CONFIG_INSTALL_NO_USR=y"))))
+ (replace 'check
+ (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
- ;; There is no /usr/bin or /bin - replace it with /gnu/store
- (substitute* "testsuite/cpio.tests"
- (("/usr/bin") (%store-directory))
- (("usr") (car (filter (negate string-null?)
- (string-split (%store-directory) #\/)))))
+ ;; There is no /usr/bin or /bin - replace it with
+ ;; /gnu/store.
+ (substitute* "testsuite/cpio.tests"
+ (("/usr/bin") (%store-directory))
+ (("usr") (car (filter (negate string-null?)
+ (string-split (%store-directory)
#\/)))))
- (substitute* "testsuite/date/date-works-1"
- (("/bin/date") (which "date")))
+ (substitute* "testsuite/date/date-works-1"
+ (("/bin/date") (which "date")))
- (substitute* "testsuite/start-stop-daemon.tests"
- (("/bin/false") (which "false")))
+ (substitute* "testsuite/start-stop-daemon.tests"
+ (("/bin/false") (which "false")))
- ;; The pidof tests assume that pid 1 is called "init" but that is
not
- ;; true in guix build environment
- (substitute* "testsuite/pidof.tests"
- (("-s init") "-s $(cat /proc/1/comm)"))
+ ;; The pidof tests assume that pid 1 is called "init" but
+ ;; that is not true in guix build environment
+ (substitute* "testsuite/pidof.tests"
+ (("-s init") "-s $(cat /proc/1/comm)"))
- ;; This test cannot possibly pass.
- ;; It is trying to test that "which ls" returns "/bin/ls" when
PATH is not set.
- ;; However, this relies on /bin/ls existing. Which it does not
in guix.
- (delete-file "testsuite/which/which-uses-default-path")
- (rmdir "testsuite/which")
+ ;; This test cannot possibly pass. It is trying to test
+ ;; that "which ls" returns "/bin/ls" when PATH is not set.
+ ;; However, this relies on /bin/ls existing. Which it does
+ ;; not in guix.
+ (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)))
- (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)))))))
- (native-inputs (list perl ; needed to generate the man pages (pod2man)
+ (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)))))
+ #: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
(@ (gnu packages base) which)
- 06/18: download: Switch savannah mirrors to HTTPS URLs., (continued)
- 06/18: download: Switch savannah mirrors to HTTPS URLs., guix-commits, 2022/09/26
- 09/18: gnu-maintenance: Simplify latest-kernel.org-release., guix-commits, 2022/09/26
- 13/18: gnu: Add texlive-babel-polish., guix-commits, 2022/09/26
- 14/18: gnu: gnome-boxes: Patch 'qemu-img' file name., guix-commits, 2022/09/26
- 12/18: gnu: Add ec., guix-commits, 2022/09/26
- 05/18: gnu-maintenance: Produce mirror:// URIs in latest-html-release., guix-commits, 2022/09/26
- 10/18: gnu-maintenance: Remove unused procedures., guix-commits, 2022/09/26
- 11/18: gnu-maintenance: Test latest-html-release., guix-commits, 2022/09/26
- 15/18: debug-link: Clarify what CRC is., guix-commits, 2022/09/26
- 16/18: services: nginx: Don't emit empty fields, guix-commits, 2022/09/26
- 17/18: gnu: busybox: Fix cross-compilation.,
guix-commits <=
- 18/18: file-systems: Add cgroup2 to %pseudo-file-system-types., guix-commits, 2022/09/26
- 04/18: gnu-maintenance: Produce mirror:// URIs in latest-ftp-release., guix-commits, 2022/09/26
- 07/18: gnu-maintenance: Simplify latest-savannah-release., guix-commits, 2022/09/26
- 08/18: download: Add a kernel.org mirror., guix-commits, 2022/09/26
- 03/18: lint: Extract logic of 'check-mirror-url'., guix-commits, 2022/09/26