From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7345128867348086784 X-Received: by 2002:a05:6512:48f:b0:513:2fd3:e93c with SMTP id v15-20020a056512048f00b005132fd3e93cmr4221747lfq.3.1710171085283; Mon, 11 Mar 2024 08:31:25 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3b9f:b0:513:5372:9c64 with SMTP id g31-20020a0565123b9f00b0051353729c64ls9315lfv.0.-pod-prod-05-eu; Mon, 11 Mar 2024 08:31:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHhVmcUta8/osJrrTyq/adPXwgM8mQEcFsrsW6pTeZsgZ3prSk945f0bOXJk+/p48vp++30 X-Received: by 2002:a19:f015:0:b0:513:a8ae:66a4 with SMTP id p21-20020a19f015000000b00513a8ae66a4mr2059467lfc.12.1710171083322; Mon, 11 Mar 2024 08:31:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710171083; cv=none; d=google.com; s=arc-20160816; b=TejU5FB2Phidbjha0R9nY6FLuNZVy4Xw4K9dnsPIRM/FqeJBioBrJYAoyYSL9R91S5 iw4f2a+zzAu/xHhSlnBM0nhcXxSD42w+m6F0vynjMypqR6S7jHDvDOnvqp52OscBSxP7 ABufq8Bwz35JOGmy48ldLKzznvryG2SoB5E8RRHG7GpebyABBDpMiCxkCiuOMc2ncaGr DLTqISkfNk97pq0JoXnQ+SLsi0TVQB5rMUcjCsCy0sBGNzMDuukEzuppcoNXSZpaCxsV 1uExE8+sdnNubEm60mH5sapTNUUoHKTlS5sufxcQCxY7igCkCdn/diqDD6Iclx8k+QhU E1XA== 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=Vb0WahXDY1+a83xxlDggRJzWC+khOJ7OXgLqSp3XpwU=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=O0dmClPZgmMc5xbQvh0+QkqEy8i8NBohEUs3MuEG2jtNoDnj8mh3qR1jYBDcOT2CXb 4oHhb+VkXKYKVOMmUSM/kOKWHMMGtksAblYAKCm8llynY8kLezVc3WFuZ2f/GTKX0hVN 7+N0tFyiFV3aZMSElKhAEPFAqfaCMhSM2J/RbpoB4j/GlZvMe+KtWxd65vZ7mDdIvucX GQZ2DZ1mJC4JBQ7laa342OpKA6BXHV+1ibXmxyCYhtl/J42B5CXejNUpaUCMmuDGW81G omtZ/oSMNp/vlCdumKfFiKhpj0IlQ+KKUpaVu2/zjo45/PRJVXnmI2SYwwuyQn1LEGzb Vu5A==; dara=google.com 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 m12-20020a0565120a8c00b00513b16bb238si65346lfu.1.2024.03.11.08.31.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 11 Mar 2024 08:31:23 -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 42BFVHap007311 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 11 Mar 2024 16:31:22 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v8 5/8] isar-bootstrap: Use tar output instead of directory Date: Mon, 11 Mar 2024 17:31:08 +0200 Message-Id: <20240311153111.3772144-6-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311153111.3772144-1-amikan@ilbers.de> References: <20240311153111.3772144-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: PYnjB7NEJn8o 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 498fbfd6..a57dfa82 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" @@ -227,7 +230,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 ef6717b6..a9a0cf1b 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" @@ -306,9 +305,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" @@ -418,18 +414,9 @@ do_bootstrap() { export SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" fi - 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" @@ -444,15 +431,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