[v2] do_bootstrap if {HOST,ROOTFS,DISTRO}_ARCH is not set warns v2

Message ID 20230130143109.2356633-1-roberto.foglietta@linuxteam.org
State Not Applicable, archived
Headers show
Series [v2] do_bootstrap if {HOST,ROOTFS,DISTRO}_ARCH is not set warns v2 | expand

Commit Message

roberto.foglietta@linuxteam.org Jan. 30, 2023, 2:31 p.m. UTC
From: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>

isar-debootstrap, do_bootstrap(): configuration warning added

These variables determine which debootstrap command to use because
in the general case the qemu-debootstrap should be used but it is
a slower choice when the host/target architectures match. This is
obviously managed by ISAR but the machine configuration file set
by the user could miss to properly set one of these 3 values.

So it is necessary to warn about unless the ISAR layer will properly
fix the user shortage. Also, the day the ISAR layer will correctly
address any lack, a double-check reminder/warning would be useful
because fixed things could be broken again in the future.

v.2: the bootstrap type is set coherently with the host and target
     architectures + the warning is provided whatever debootstrap
     is choosen because it is related to missing values on arches.

Signed-off-by: Roberto A. Foglietta <roberto.foglietta@gmail.com>
---
v.2: the bootstrap type is set coherently with the host and target
     architectures + the warning is provided whatever debootstrap
     is choosen because it is related to missing values on arches.

 meta/recipes-core/isar-bootstrap/isar-bootstrap.inc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
index faba73fe..b805e417 100644
--- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
+++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc
@@ -15,7 +15,7 @@  PV = "1.0"
 
 BOOTSTRAP_FOR_HOST ?= "0"
 
-DEBOOTSTRAP ?= "qemu-debootstrap"
+DEBOOTSTRAP ?= "${@'qemu-debootstrap' if d.getVar('BOOTSTRAP_FOR_HOST') == '1' else 'debootstrap'}"
 ROOTFSDIR = "${WORKDIR}/rootfs"
 APTPREFS = "${WORKDIR}/apt-preferences"
 APTSRCS = "${WORKDIR}/apt-sources"
@@ -291,6 +291,10 @@  do_bootstrap() {
     sudo rm -rf --one-file-system "${ROOTFSDIR}"
     deb_dl_dir_import "${ROOTFSDIR}" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}"
 
+    test -z "${HOST_ARCH}" -o -z "${ROOTFS_ARCH}" -o -z "${DISTRO_ARCH}" && \
+        bbwarn "*** ATTENTION *** BOOTSTRAP_FOR_HOST=0, DEBOOTSTRAP=${DEBOOTSTRAP},"\
+            "HOST_ARCH=${HOST_ARCH}, ROOTFS_ARCH=${ROOTFS_ARCH}, DISTRO_ARCH=${DISTRO_ARCH}."
+
     sudo -E -s <<'EOSUDO'
         set -e
         if [ "${BOOTSTRAP_FOR_HOST}" = "0" ]; then