From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7199542182322110464 X-Received: by 2002:a17:90a:eb0d:b0:233:ca92:2c94 with SMTP id j13-20020a17090aeb0d00b00233ca922c94mr1321597pjz.20.1676274045134; Sun, 12 Feb 2023 23:40:45 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:aa7:8088:0:b0:5a8:1622:1019 with SMTP id v8-20020aa78088000000b005a816221019ls3192003pff.4.-pod-prod-gmail; Sun, 12 Feb 2023 23:40:44 -0800 (PST) X-Google-Smtp-Source: AK7set8S8n7MHCaFHyvqLmghHUfsVbG2bP974Pp5Lc7tI2o3N+5efcUb0RHIOvlTCdGgVH/W+OQL X-Received: by 2002:aa7:9496:0:b0:5a8:ad1f:c538 with SMTP id z22-20020aa79496000000b005a8ad1fc538mr3311898pfk.1.1676274044220; Sun, 12 Feb 2023 23:40:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676274044; cv=none; d=google.com; s=arc-20160816; b=IaZjWriJapVaJ5S4eg8HWU1PCEagJhcrzZKgHh548SYs83DFC1b/q4hi7WyR+TpeGH qsKuPs7DKXOeyIG1aczGB8c4sMgopdDBQrbi7eeconXQ3wRjUIH1IOVr3MFSxPyhnW+L GDoKZkF93yUkMjuhJ1VHEcJh/XdnBZnFNa6ej/Jql1wofJQtxXVrAcH05KIpnfPgHkYV tgV3S10rQaRTmKtzNkI0oI9gOx1kI7epJ1sijUF1NlpRlfnie8kxORVNJa9loz9AEmS2 j3HOcQkgdSBA/TBs8WfI6F5cFi5WYeuoSNXz0iUKhbRIII8ioQq6DFHdk4YGOoSFAtR/ 0WnA== 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=Shgo25Zrjizi2MhcHCTKGp/+EyufdkQKFWDA6/vMwz4=; b=OtqJ4414RZ58mLB6sIb8SXXSKjgga7Q543XoTNeETrBKEedlWVArmEW1VjtG/jpcJ7 7IoRcZaFroPsGeTa1tXfsfAzsZ42aoriBy3mBHm1YSW6mHjUZr6GyRbSJKdVf+KfjMdZ 3ubRWWhrEQqz+ae3UvqVQ6sUIiCX87T7jANF59psXpoQjOkWxHeAckTA5lSY5cO9+D2A AOOZmxu823x0gRbHKoMY10KhDbFmJc2tWD8WXDYTjPOkm4sE82GknO0SVNwg1BW5eVM9 +4GZszKndoDDUK+p1J54nxVV3ERSLcgcfjOuHSgvrs6yBsI7UDlXj3haW/3GxkkJqU05 fWaw== 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 q3-20020a056a00084300b0058e23ca0671si136698pfk.2.2023.02.12.23.40.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 12 Feb 2023 23:40:43 -0800 (PST) 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.. ([85.254.74.215]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 31D7eapw003492 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Feb 2023 08:40:41 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [PATCH v3 2/6] imager: Migrate from buildchroot to schroot Date: Mon, 13 Feb 2023 09:40:30 +0200 Message-Id: <20230213074034.3949-3-amikan@ilbers.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230213074034.3949-1-amikan@ilbers.de> References: <20230213074034.3949-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: DHdA6YMhDFwe 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 | 94 +++++++++++++++------- 1 file changed, 63 insertions(+), 31 deletions(-) diff --git a/meta/classes/image-tools-extension.bbclass b/meta/classes/image-tools-extension.bbclass index 2d3dda4..640c56c 100644 --- a/meta/classes/image-tools-extension.bbclass +++ b/meta/classes/image-tools-extension.bbclass @@ -5,43 +5,75 @@ # # 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", True).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}" + + # 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", True).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}" + fi - distro="${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" - if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then - distro="${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + # 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