From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7291218501940805632 X-Received: by 2002:a05:6512:3b28:b0:4ff:a04c:8a5b with SMTP id f40-20020a0565123b2800b004ffa04c8a5bmr4436554lfv.47.1697619100020; Wed, 18 Oct 2023 01:51:40 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a19:750d:0:b0:507:b8d5:d6d4 with SMTP id y13-20020a19750d000000b00507b8d5d6d4ls125556lfe.0.-pod-prod-03-eu; Wed, 18 Oct 2023 01:51:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9tSSjAXBC5cpQ1/3oSSSH/c6wtFay9c/G4Ybu7uPn7OwtKV3WKb3wDILes7gS4InCy3Wi X-Received: by 2002:ac2:5937:0:b0:504:357b:d68 with SMTP id v23-20020ac25937000000b00504357b0d68mr3164270lfi.62.1697619098238; Wed, 18 Oct 2023 01:51:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697619098; cv=none; d=google.com; s=arc-20160816; b=haudqUMad+Qnt1rzYg/kN48BpU+ws3nolMQFCW2xnEk7j4jvUpO8Cr70z5afXP/00j 5imu87U2hi5bamd+QuxTqtFMGNd1N+iGexlj4CO26m4UflKUvqRf+vw+Ymep/7zoJ10C s1F9+NOl2imazrf1Dw5KflB2K5wZVCm560PKkXs0jzsbXYJUlLV80aCeVr6Fd3TiHjOR fDnZwzguttpnGSToihImFch21KBR6998ffzf8bODouqD3e6LcpHOmpF/7n8mYyHoo4dR V0T+ELjHwkyDpzw0B1uDN7kCab/VRGreWgNM6ankIUEW+E+rnKnZ9NWzNCcBWod7wK7g Cgaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=Y4GPY4zgziOCKXpRaP5OEK0Fq/Lro7yZKDjfPRx7Bpw=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=uWuu0lm1W4wK29GuoYf1seNXFCTdsiMsodl6gA4Ia188PNltH08kYqNMnjTYll4P6g n0hUlMtjnTGEsOF7vbV1GbgjqJM99hqEUcxlehCw2Yv7MU7COUnN6LMiuhCDBDO7Z6+m 0YG7bG8NHC76UPauGCXlwLowl9RUPta0MHZ5FXwV5Htx0E3yAnwJ7a2RVmERzzPrhopn UkTIKvzWcBh/+GfO2BzLZ5//Q/kZUyE1vslB2NzNGDYFiEoo0c8pOgtIGARrCreA0JsV V1IqHbBetijZSgcbawf17SMUArZ9pKPHgRIxALO/zZFljTAFSTwFJAsIyInw89WlALWV pezw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id c25-20020a196559000000b00505701698aasi228047lfj.2.2023.10.18.01.51.37 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 18 Oct 2023 01:51:38 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from user-B660.promwad.corp ([159.148.83.123]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 39I8pXU4024948 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 18 Oct 2023 10:51:37 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v5 4/7] isar-bootstrap: Use tar output instead of directory Date: Wed, 18 Oct 2023 11:51:22 +0300 Message-Id: <20231018085125.378989-5-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231018085125.378989-1-amikan@ilbers.de> References: <20231018085125.378989-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: P2oWARfdMRPM Do not unpack tar with rootfs content inside bootstrap recipe. This change can allow to remove sudo usage during the bootstrap later. Using tar output requires moving chroot prepare step to the later unpack step. Signed-off-by: Anton Mikanovich --- meta/classes/rootfs.bbclass | 11 +++++---- .../isar-bootstrap/isar-bootstrap.inc | 23 ++++--------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 65574a6c..98e17c3c 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -73,12 +73,15 @@ rootfs_do_qemu() { fi } -BOOTSTRAP_SRC = "${DEPLOY_DIR_BOOTSTRAP}/${ROOTFS_DISTRO}-host_${DISTRO}-${DISTRO_ARCH}" -BOOTSTRAP_SRC:${ROOTFS_ARCH} = "${DEPLOY_DIR_BOOTSTRAP}/${ROOTFS_DISTRO}-${ROOTFS_ARCH}" +BOOTSTRAP_SRC = "${DEPLOY_DIR_BOOTSTRAP}/${ROOTFS_DISTRO}-host_${DISTRO}-${DISTRO_ARCH}.tar.zst" +BOOTSTRAP_SRC:${ROOTFS_ARCH} = "${DEPLOY_DIR_BOOTSTRAP}/${ROOTFS_DISTRO}-${ROOTFS_ARCH}.tar.zst" rootfs_prepare[weight] = "25" rootfs_prepare(){ - sudo cp -Trpfx --reflink=auto '${BOOTSTRAP_SRC}/' '${ROOTFSDIR}' + sudo tar -xf "${BOOTSTRAP_SRC}" -C "${ROOTFSDIR}" --exclude="./dev/console" + + # setup chroot + sudo "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" } ROOTFS_CONFIGURE_COMMAND += "rootfs_configure_isar_apt" @@ -224,7 +227,7 @@ cache_deb_src() { # Note: ISAR updates the apt state information(apt-get update) only once during bootstrap and # relies on that through out the build. Copy that state information instead of apt-get update # which generates a new state from upstream. - sudo cp -Trpn --reflink=auto "${BOOTSTRAP_SRC}/var/lib/apt/lists/" "${ROOTFSDIR}/var/lib/apt/lists/" + sudo tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} debsrc_download ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index 8fa22e52..dee6cc31 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -15,7 +15,6 @@ PV = "1.0" BOOTSTRAP_FOR_HOST ?= "0" -ROOTFSDIR = "${WORKDIR}/rootfs" APTPREFS = "${WORKDIR}/apt-preferences" APTSRCS = "${WORKDIR}/apt-sources" APTSRCS_INIT = "${WORKDIR}/apt-sources-init" @@ -289,9 +288,6 @@ do_bootstrap() { fi E="${@ isar_export_proxies(d)}" - sudo rm -rf --one-file-system "${ROOTFSDIR}" - mkdir -p "${ROOTFSDIR}" - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then base_apt_tmp="$(mktemp -d /tmp/isar-base-aptXXXXXXXXXX)" bootstrap_list="${WORKDIR}/sources.list.d/base-apt.list" @@ -396,18 +392,9 @@ do_bootstrap() { "${WORKDIR}/rootfs.tar.zst" \ "$bootstrap_list" - sudo -E -s <<'EOSUDO' - set -e - - tar -xf "${WORKDIR}/rootfs.tar.zst" -C "${ROOTFSDIR}" --exclude="./dev/console" - - # setup chroot - install -v -m755 "${WORKDIR}/chroot-setup.sh" "${ROOTFSDIR}/chroot-setup.sh" - "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" + # Finalize bootstrap by setting the link in deploy + sudo ln -Tfsr "${WORKDIR}/rootfs.tar.zst" "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" - # Finalize bootstrap by setting the link in deploy - ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_ISAR_BOOTSTRAP}" -EOSUDO if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" sudo rm -rf --one-file-system "${WORKDIR}/dl_dir" @@ -422,15 +409,15 @@ SSTATEPOSTINSTFUNCS += "bootstrap_sstate_finalize" bootstrap_sstate_prepare() { # this runs in SSTATE_BUILDDIR, which will be deleted automatically - sudo cp -a "$(dirname "${ROOTFSDIR}")/rootfs.tar.zst" ./bootstrap.tar.zst + sudo cp -a "${WORKDIR}/rootfs.tar.zst" ./bootstrap.tar.zst sudo chown $(id -u):$(id -g) bootstrap.tar.zst } bootstrap_sstate_finalize() { # this runs in SSTATE_INSTDIR if [ -f bootstrap.tar.zst ]; then - mv bootstrap.tar.zst "$(dirname "${ROOTFSDIR}")/rootfs.tar.zst" - sudo ln -Tfsr "$(dirname "${ROOTFSDIR}")/rootfs.tar.zst" \ + mv bootstrap.tar.zst "${WORKDIR}/rootfs.tar.zst" + sudo ln -Tfsr "${WORKDIR}/rootfs.tar.zst" \ "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" fi } -- 2.34.1