From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7239302955540676608 X-Received: by 2002:a25:8c0e:0:b0:ba8:4ff5:3214 with SMTP id k14-20020a258c0e000000b00ba84ff53214mr3051250ybl.2.1685531568769; Wed, 31 May 2023 04:12:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a25:da41:0:b0:b92:3399:2d37 with SMTP id n62-20020a25da41000000b00b9233992d37ls2437839ybf.1.-pod-prod-02-us; Wed, 31 May 2023 04:12:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ44oiRmwKg20LipH8LTuRr9UJ9uzZPI1RhSzrZ7jmc9EzEDXqA5++TuDaTLcC1tOmW5Z/Pw X-Received: by 2002:a25:80c4:0:b0:bab:d9b1:ad63 with SMTP id c4-20020a2580c4000000b00babd9b1ad63mr5798230ybm.38.1685531567928; Wed, 31 May 2023 04:12:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685531567; cv=none; d=google.com; s=arc-20160816; b=NA8HwZgxPwqheRHYi4V26fFyw098MnlAUlNHnJ+2z8ioyJhiI4SHzckArLWpjTGbAQ 7CF4pjjny/SfForaZK+j1h28ZdnPvts1dM20Gr4VuUElDRvQAIucoxsahvNFeyekq5el O/vPFkr4ksJa2rslX6A49N2/gYaTrAtFB9Fs5PjvGsDDVlsRTBhRR7Pc5s70qGtxeWBz yFwlmUgu8Qlq/QSGh/KPv2o6V/UvOEHFwy7VRImfKeb+oNexm6+DlACFUmPdkmszB8B0 nXHMEPOzbub+87mm5evd6wMY7QJracYNqywdKre9Q2/R+0hKbgnMLYiK7NSWe79KzE8s BnDQ== 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=waKAq6dAsSMFYDugUljvT9lKAjOdSQAOZTiJofKDal4=; b=Hc/Y3VBRq6DiHyc4tnRNLH+l3hhHZSiSiSiSF3ixPPWD9MB6lfBfVbzEvfgMPyWMmN VBOGQWjYcpsz7wza9LpqbsTSKcmre1Saj0Rsv0z7wmPmEPgDFVLy+GTM13FnrSZQetrH wrkEkn4nfeNvy5bug/beGKAykEn6iMb6vqcnnh64NqAzwn3oPcwnJM/9jRjHvLhXeIQq EQ9Pb/UcuYqkCG2KFE9XI7nexD0N5wk8b13u/GKjgNC3uoOZzQvyM3L6w83IAL07hJp2 bcAH/gWqYqJBrwAzUIB2mGZMys8nF4gqNHjxZkNQ/MeuUQYlrvp9gY9USG33n7ugW4A4 N3tQ== 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 f145-20020a25cf97000000b00b9ed58a5515si1395234ybg.4.2023.05.31.04.12.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 31 May 2023 04:12:47 -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.. (IN-213-226-141-203.bitemobile.lv [213.226.141.203] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 34VBCcvZ026932 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 31 May 2023 13:12:41 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v5 2/9] imager: Migrate from buildchroot to schroot Date: Wed, 31 May 2023 14:12:29 +0300 Message-Id: <20230531111236.104373-3-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230531111236.104373-1-amikan@ilbers.de> References: <20230531111236.104373-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: GsrKOaKFtLlM 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.34.1