From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7239302955540676608 X-Received: by 2002:a05:6512:3e9:b0:4f8:7734:8dd2 with SMTP id n9-20020a05651203e900b004f877348dd2mr408268lfq.53.1689918846551; Thu, 20 Jul 2023 22:54:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4e4d:b0:3fb:ad1f:1fde with SMTP id e13-20020a05600c4e4d00b003fbad1f1fdels594096wmq.0.-pod-prod-00-eu; Thu, 20 Jul 2023 22:54:04 -0700 (PDT) X-Google-Smtp-Source: APBJJlH8oumGNSC5XmxLVLyaPrtKDQjJMjqd4afyaKczFEWnh3dzA05GaMnL/xq0rVjU6vqdsNGP X-Received: by 2002:adf:f812:0:b0:313:e2e3:d431 with SMTP id s18-20020adff812000000b00313e2e3d431mr4172729wrp.12.1689918844673; Thu, 20 Jul 2023 22:54:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689918844; cv=none; d=google.com; s=arc-20160816; b=PLC51JFYTQHTpj+fZbeWNfuOB8xHCCqiZbRAu9zhfW92KHOdTSMOTiSVkqQWwan16M LggI6STit64nKf4b+5hrbJp68ZlMsmZ/pc8Kbo7PA85CIifDfmMP6Bc+TN1anmsNC8u0 3+cWxMKHOXwCenFeYShI+zIvk27xpN/MV8reW+eNv4rC5EGGT6q0yDRHu4rGsMKLQU45 EPtT9y6aVYGOCx6wocxHrXg2JCeY13c0ndX+lJiYubMCJV0ixl8sZL4qz2VxpWLpBYHN OXSlUloVrPShtNy1vpBlOXaKVVz+wiVCm/EfoOXvZKgrkbNZB/Yygh4svK9FZdBsHIH+ lsCA== 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:to:from; bh=j/PyF0dUxP4xFlS9pM9QbSFAtitpa0x6L1ELqyOVndQ=; fh=swRs1+OhWjovx1IrvOlKBWsdq9manB5qdcuGoHoh5Ak=; b=CGuNklgJ2RFM4AfvSfV1xEYL2Kj1ECDnwot4AvvMZvlrpzo3NCSftNsvEdfGm49DNp CLAf49JMZ4C4q8KJr2hQyX6XuTV7pIw+fyUa+BJ5IBpoALxi6UZcHBeTT3SuUJT7iyK9 EtwDUH4XvXHWTsYeASwHupa15aASzIN7voSaEKlIx2aKQkTpf5IqP4gvL2R7IqrpWJR2 VlUmeLM8gDGC4qeEt5yQkBZW26RTpGSPLmzTBWNK1TTV1nr/iM2lTO3U6RzY9EKIqe6g UJ7ALk5mOk9Gw5GN5I1Gju1HjoR/uY2dO5fN81Z5BUkvrB5KTbba/noEyLfg5OrsENQL pA4A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id p24-20020a05600c1d9800b003facc8c7725si389016wms.0.2023.07.20.22.54.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Jul 2023 22:54:04 -0700 (PDT) Received-SPF: pass (google.com: domain of ubely@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 ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 36L5s2TB027957 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Jul 2023 07:54:04 +0200 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v6 2/9] imager: Migrate from buildchroot to schroot Date: Fri, 21 Jul 2023 07:53:55 +0200 Message-Id: <20230721055402.13764-3-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20230721055402.13764-1-ubely@ilbers.de> References: <20230721055402.13764-1-ubely@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: pGepjuY7UJXf From: Anton Mikanovich Install dependencies and perform all imager actions using schroot instead of buildchroot. All the changes made during imager task will be lost after the finish. This requires installing imager dependencies during every run. Signed-off-by: Anton Mikanovich --- meta/classes/image-tools-extension.bbclass | 97 +++++++++++++++------- 1 file changed, 66 insertions(+), 31 deletions(-) diff --git a/meta/classes/image-tools-extension.bbclass b/meta/classes/image-tools-extension.bbclass index 7c84505f..04ed1f84 100644 --- a/meta/classes/image-tools-extension.bbclass +++ b/meta/classes/image-tools-extension.bbclass @@ -5,43 +5,78 @@ # # This file extends the image.bbclass to supply tools for futher imager functions -inherit buildchroot +inherit sbuild IMAGER_INSTALL ??= "" IMAGER_BUILD_DEPS ??= "" DEPENDS += "${IMAGER_BUILD_DEPS}" -do_install_imager_deps[depends] = "${BUILDCHROOT_DEP} isar-apt:do_cache_config" -do_install_imager_deps[deptask] = "do_deploy_deb" -do_install_imager_deps[lockfiles] += "${REPO_ISAR_DIR}/isar.lock" -do_install_imager_deps[network] = "${TASK_USE_NETWORK_AND_SUDO}" -do_install_imager_deps() { - if [ -z "${@d.getVar("IMAGER_INSTALL").strip()}" ]; then - exit - fi +SCHROOT_MOUNTS = "${WORKDIR}:${PP_WORK} ${IMAGE_ROOTFS}:${PP_ROOTFS} ${DEPLOY_DIR_IMAGE}:${PP_DEPLOY}" +SCHROOT_MOUNTS += "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt" + +imager_run() { + schroot_create_configs + insert_mounts + + session_id=$(schroot -q -b -c ${SBUILD_CHROOT}) + echo "Started session: ${session_id}" + + # Schroot session mountpoint for deb downloads import/export + schroot_dir="/var/run/schroot/mount/${session_id}" + + # setting up error handler + imager_cleanup() { + set +e + schroot -q -f -e -c ${session_id} > /dev/null 2>&1 + remove_mounts > /dev/null 2>&1 + schroot_delete_configs > /dev/null 2>&1 + } + trap 'exit 1' INT HUP QUIT TERM ALRM USR1 + trap 'imager_cleanup' EXIT + + if [ -n "${@d.getVar("IMAGER_INSTALL").strip()}" ]; then + echo "Installing deps: ${IMAGER_INSTALL}" - distro="${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" - if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then - distro="${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + distro="${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then + distro="${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + fi + + # prepare isar-apt + schroot -r -c ${session_id} -d / -u root -- sh -c " \ + mkdir -p '/etc/apt/sources.list.d' + echo 'deb [trusted=yes] file:///isar-apt ${DEBDISTRONAME} main' > \ + '/etc/apt/sources.list.d/isar-apt.list' + + mkdir -p '/etc/apt/preferences.d' + cat << EOF > '/etc/apt/preferences.d/isar-apt' +Package: * +Pin: release n=${DEBDISTRONAME} +Pin-Priority: 1000 +EOF" + + E="${@ isar_export_proxies(d)}" + deb_dl_dir_import ${schroot_dir} ${distro} + schroot -r -c ${session_id} -d / -u root -- sh -c " \ + apt-get update \ + -o Dir::Etc::SourceList='sources.list.d/isar-apt.list' \ + -o Dir::Etc::SourceParts='-' \ + -o APT::Get::List-Cleanup='0' + apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ + --allow-unauthenticated --allow-downgrades --download-only install \ + ${IMAGER_INSTALL}" + + deb_dl_dir_export ${schroot_dir} ${distro} + schroot -r -c ${session_id} -d / -u root -- sh -c " \ + apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ + --allow-unauthenticated --allow-downgrades install \ + ${IMAGER_INSTALL}" fi - buildchroot_do_mounts - - E="${@ isar_export_proxies(d)}" - deb_dl_dir_import ${BUILDCHROOT_DIR} ${distro} - sudo -E chroot ${BUILDCHROOT_DIR} sh -c ' \ - apt-get update \ - -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \ - -o Dir::Etc::SourceParts="-" \ - -o APT::Get::List-Cleanup="0" - apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ - --allow-unauthenticated --allow-downgrades --download-only install \ - ${IMAGER_INSTALL}' - - deb_dl_dir_export ${BUILDCHROOT_DIR} ${distro} - sudo -E chroot ${BUILDCHROOT_DIR} sh -c ' \ - apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ - --allow-unauthenticated --allow-downgrades install \ - ${IMAGER_INSTALL}' + schroot -r -c ${session_id} "$@" + + schroot -e -c ${session_id} + + remove_mounts + schroot_delete_configs } -addtask install_imager_deps before do_image_tools -- 2.20.1