From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7291218501940805632 X-Received: by 2002:a50:cbc4:0:b0:53e:3a80:e6f1 with SMTP id l4-20020a50cbc4000000b0053e3a80e6f1mr7802900edi.32.1698128652680; Mon, 23 Oct 2023 23:24:12 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:2484:b0:53d:beed:e28f with SMTP id q4-20020a056402248400b0053dbeede28fls303161eda.1.-pod-prod-02-eu; Mon, 23 Oct 2023 23:24:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGbkcTfIvpfmZIsWaVV52XdHZTp0FPt+cP52wr7FYlxtkKpNnGdF1nkklXCK7tZj8s6Sk6U X-Received: by 2002:a05:6402:254d:b0:53f:ef3b:adbb with SMTP id l13-20020a056402254d00b0053fef3badbbmr7460831edb.2.1698128650985; Mon, 23 Oct 2023 23:24:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698128650; cv=none; d=google.com; s=arc-20160816; b=vBkSlzXmHtl8ZxCKpDz355PS0cHtix2wMSVdPDV1xLzhAMDxN0ihMWpv6v4B40pWlL SdTzSfu8hfKHUx3Sb8LKf9Uf5flR9tbD1aOV4D4MiZ/tkZn0Dwl3PoUFojlsuaEQ1JJM Xn74HKhBb7kkh1V6iIY5CICyLB54XJUJLXcBbnNlVEARCtjxnbKStja/f3VbIbFWTcx8 dZrFxMJLqRLWplJCf8sxcVenJ9LS6J3rLEirUVmHRjw7ThAyaEhrSqHm7AqpfwIp73KP eAoJPzSCWFHV5yXorokfp7+6Fz9RbmzignEESDKDVMcrKldHbsDbCRzlzztWEO90nEZV eyEA== 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=ZwUhwueOyPqC22hd55VTK4yhuxeUd7+wH3nDW9ZoOFY=; fh=/h9QQkzJ8EboVkWg45aWwpaUro6WMavIVd2OhN45RtE=; b=fRizKA0DsWd8k00G/V4RJ6ndXsL36Peah5XHZePLowkr/tYVw92qEmXk7JlNA8nON4 ztBwZKcX3s5xYGEYbUr21FHWYNDYhZi0vVBq28vEhrMCVDduzO91nQuYV6C1BVvis7+s wtn7Oyp/mty7bKJ6aF7YvVCof4Rf0rfP8IYwiZTCCtHQxPvH8+CayzKynvZTkMALI9T5 Ea6YXinYW6t0c7/TRH9L/eMD9IHHFxEFbx/TEPEksL05SljF4uLJW/MYFYj2yBDTjeO9 sfKJUemwJpEbCMQR7A9g/suQkklj90p9d/cv7bO4a4oqh542KU+qUoyUy/K/5NnNBLva IU1g== 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 z92-20020a509e65000000b0053e90546ff6si613586ede.1.2023.10.23.23.24.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Oct 2023 23:24:10 -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 localhost.localdomain (r154-240-38-77-broadband.btv.lv [77.38.240.154] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 39O6O5WB024986 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 24 Oct 2023 08:24:10 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v6 4/8] isar-bootstrap: Use tar output instead of directory Date: Tue, 24 Oct 2023 09:23:54 +0300 Message-Id: <20231024062358.252053-5-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231024062358.252053-1-amikan@ilbers.de> References: <20231024062358.252053-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: Rd6cownL/dMk 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 d7fc8b01..0cc8ee7f 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" @@ -295,9 +294,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" @@ -402,18 +398,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" @@ -428,15 +415,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