From patchwork Fri Oct 2 07:01:08 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: akarpovich X-Patchwork-Id: 5516 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 02 Oct 2026 09:05:08 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f63.google.com (mail-wr1-f63.google.com [209.85.221.63]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 692757oo003902 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 2 Oct 2026 09:05:07 +0200 Received: by mail-wr1-f63.google.com with SMTP id ffacd0b85a97d-48af3e230b9sf3065841f8f.0 for ; Fri, 02 Oct 2026 00:05:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790924701; cv=pass; d=google.com; s=arc-20260327; b=m9phLZy+Vvq6tJg081am7z4AcJEOXpomgCXX/1cnuevEtl8g2+/5ynslN+Jj0D642x sz+TM6tctVm7/q0aEaWdm5VEMYermnRzEfLcdvYBHf5tqvhYxAxNuDGH0vMKPwaX7o1v 8jjdLKY9HxqCvxvthg5V+3moNkUdvxKAspA7Tf76C4iqycRuDVYalI0DwP2hKKEIxRM7 LuGSIN/lZwAUFkiO0qlAYR5PuvTOuW1Rnvwge77Gq9mha3d6p5k0E9+hX1gWPUEg4kXm 3rdWIozILfuDaV/46gnT8wjbQceE7ym4x2//+ycReUo39HoJrW5XjxP1hwKd6mZ6h8T0 MuLg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=5vdPDeHWM3XeLEwY+dGYudICQjX4GmUBfABmkkXIaQA=; fh=Ae7G+iR0KqtPkY7V6uaNln866BWqyQjwtHAFVqC7R4U=; b=swH18Bb5gDpkTmlrmcOYlXwlOWv/7YM7cFOaENMy/KkNQ2DnhJu8ifXwFNOK33ZDAl P6GA2y7X3bdA9FtyV4StuJ9CVaBlN62nhhhD5XY4GT1XlMekLFkRTO+irycsHhEtDDgF Is7h0A92V2msW9zWd8Mnr1QV0gczpW8K2nDVLVvj5XnG/EdCK8NOTKlSyTdgsGX40ngB H7iVRhy43Niv1LpQEW5Qkw09viZKp7Cw7mIlkVJIFktnuKStJGyzX1Wrc7jQL3SHQw4g Tmb1imMOzO3B7wNV7BmJ3kg/SkvN+0eW7vQ9OlajeiUJCs7HkHEopK6QSk7WrwotnY3W rasQ==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1790924701; x=1791529501; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-type :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :from:to:cc:subject:date:message-id:reply-to:content-type; bh=5vdPDeHWM3XeLEwY+dGYudICQjX4GmUBfABmkkXIaQA=; b=OIniVlfXUhio13cFzFqpTz1fTpZIgPFcOVT4USoHWVKssxLlIUNE/J3OkMnv4bWo7J ZA4r9QyjKWgqXpRDZY2l+5SebrvZnvP+zVqsNldFSfKTPC/7BbYSRm+ofVS4HtHG2PbJ qUcWynKHPL8Nl6kE9/r3C9lLI9hhpUH0dgXk3OFZ0j1sexfoku8m5U3a8pDPNKtpHez2 6f62mMsonaTjnU+PR6H9g4hQsINhfuXbpYBj3yvA38lY8TP6s5luEYYFqOQYJFEOnm62 T55DCad7Bar5KVEEaBOEEK7xJpEhZZUPtDt1KDOZS68h6k+gHl2MzZ5BPd6NjMmqh14g 7fwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790924701; x=1791529501; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:x-original-authentication-results:x-original-sender :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5vdPDeHWM3XeLEwY+dGYudICQjX4GmUBfABmkkXIaQA=; b=cKAaI1IFWp3W6bkpAe6DiMDYLnuRXGbMWrJuq1TBS33MCx6XP/xDiIcy43uCkduTuN WZBTFQrhNyqBjSqQx78lA/u+riXdfd2WnfgGYjLTvzzM+rtTXwaTnYL0xTF6bcIchpSS UQHvbJHVTCR90HMQGPhWCB9d5P3vR5oN1fDFULtUKf52JV+vpapZrEGRrxGsqg+2P8WN agczjdMyZloujC8jbwFF8nTFNIIPSSgE4uF6+DVe1ksHvx0rednLyyaQ3LD4ZUTkXq/O S1cXjfBlmU/OhWxzo3RXeZ1uhAEfkQIBuU58fTpUfmDyf75x11WSMJKYWW1bGEeZs5Ri nQ8w== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AKwUvBzqBApVyCtIBOsuV0wKVmzae5lIpTa7HdYmqJ0NoEs/NTJyY4TWvfcM6bGAl144bamLjAw3lCw=@isar-build.org X-Gm-Message-State: AFq9FYJeKQVBLNOqwO+Fehx1mJa9EDd9wNxa3DCxJl0QmenUldbY7LNx o9tMDV1cAUgtqSzXnkj9iPC9qzGOFOGQEGlKkr1IssDISbNJol7UbYXP X-Received: by 2002:a5d:6f05:0:b0:48b:6bb:6d3e with SMTP id ffacd0b85a97d-48b1274aa1bmr3225588f8f.15.1790924701566; Fri, 02 Oct 2026 00:05:01 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLddPbeJQstuqCWnSB7lMLpCIJ+y/nNv5Q4OuyWKHuJz5VQ==" Received: by 2002:a05:6000:3c7:b0:487:a89:5d6f with SMTP id ffacd0b85a97d-48b12db6fe1ls403280f8f.0.-pod-prod-07-eu; Fri, 02 Oct 2026 00:04:59 -0700 (PDT) X-Received: by 2002:a05:6000:60a:b0:48a:fe3b:2d99 with SMTP id ffacd0b85a97d-48b1276809fmr3337294f8f.47.1790924699134; Fri, 02 Oct 2026 00:04:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790924699; cv=none; d=google.com; s=arc-20260327; b=kbXZONJ3LAZysv8W1jGF48pwcddkOx2lQfRFQNbM7Gdtu/8dEJ1/P6CMUdaQ47U+M/ yTLoPRhQ/Cp+62rpsGpIlQXdFvQfgHmRX6alyYWho2sJYaGCC3cX7ztVYHyrKLCFXejL W6dVsDaJjb7tybe2ZHrWqTOFhnKmFQQYqrcNKsSxSVNoJEkHHs01kMEiEnIIEcSiMKkr s8nsGDT6M8QOHcxfu6GB1BFyTKi4nt1QErF7Vei94fkkU0y8FzsvmLrUgvC6LqAZ0D9L 0xxp3/3K7skWssfJVJ4VQ3rlMCppjmy5pOQZOF0+8p1gr3fgC1eXhiHPIRvkQrcgxWAa M3Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=F/U5Br7k5DYetkXwwRQEBxedyLpqCKFKMh/vf6PJs8M=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=kr7kymvJ/+FtNUwEPk31g+a8mD4n5e5eI+J0Jn7XQ5T6FQMUyQ3MHFYh9xHrLoecUY CxHwErjIFsA2asHvkRz179FX9XPp2GRpR/xTCdNx1ocCSb8RJ9qSzwNRk2E/N8QmpE4g QpGfly+sxB+cmW7hHwDQYM82SVnv7cGBO0yPSZjCGhPGN+OHqTWiuJskxRvmpAhbmu+1 VK0KmoY6oWK8GxX73DAcVfs+U7yxyDWBNeqAwyM0mJXWLYX9N29FcI/xXSQDr1jSTq/I SRmmILUqumwPWthYq64Hh1XHvtnGBxTdZMwdeRqQUXRYaD6NJEu7mwFoqOkd+y60jqtJ jegA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-48b5b30d315si21602f8f.9.2026.10.02.00.04.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 02 Oct 2026 00:04:59 -0700 (PDT) Received-SPF: pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from laptop-0xxx (62.122.174.6.serverel.net [62.122.174.6] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 69274a1k003799 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 2 Oct 2026 09:04:57 +0200 From: akarpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v11 05/12] base-apt: Predownload packages to base-apt before install Date: Fri, 2 Oct 2026 09:01:08 +0200 Message-ID: <20261002070335.26526-6-akarpovich@ilbers.de> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261002070335.26526-1-akarpovich@ilbers.de> References: <20261002070335.26526-1-akarpovich@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: akarpovich@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Uladzimir Bely This patch uses debrepo script to predownload packages to base-apt repository before they are installed in rootfs. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/crossvars.bbclass | 1 + meta/classes-recipe/dpkg-base.bbclass | 1 + meta/classes-recipe/dpkg.bbclass | 8 + .../image-locales-extension.bbclass.orig | 159 ++++++++++++++++++ .../image-tools-extension.bbclass | 13 ++ meta/classes-recipe/rootfs.bbclass | 5 +- meta/lib/aptsrc_fetcher.py | 46 ++++- .../sbom-chroot/sbom-chroot.bb | 2 + .../sbuild-chroot/sbuild-chroot-host.bb | 2 + 9 files changed, 228 insertions(+), 9 deletions(-) create mode 100644 meta/classes-recipe/image-locales-extension.bbclass.orig diff --git a/meta/classes-recipe/crossvars.bbclass b/meta/classes-recipe/crossvars.bbclass index 7cf2d660..6f070714 100644 --- a/meta/classes-recipe/crossvars.bbclass +++ b/meta/classes-recipe/crossvars.bbclass @@ -30,6 +30,7 @@ python __anonymous() { schroot_dir = d.getVar('SCHROOT_HOST_DIR', False) sbuild_dep = "sbuild-chroot-host" + flavor_suffix + ":do_build" sdk_toolchain = "crossbuild-essential-" + distro_arch + d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_HOST_DIR')) else: d.setVar('BUILD_ARCH', distro_arch) schroot_dir = d.getVar('SCHROOT_TARGET_DIR', False) diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index fbb952bd..4d268eff 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -11,6 +11,7 @@ inherit terminal inherit repository inherit deb-dl-dir inherit essential +inherit debrepo # Local (WORKDIR-internal) dir where do_dpkg_build collects the built debs. # Its content is exported into the shared, sstate-tracked DEPLOY_DIR_DEB so diff --git a/meta/classes-recipe/dpkg.bbclass b/meta/classes-recipe/dpkg.bbclass index 35408495..fe98655b 100644 --- a/meta/classes-recipe/dpkg.bbclass +++ b/meta/classes-recipe/dpkg.bbclass @@ -120,6 +120,12 @@ dpkg_runbuild() { echo '$stalled_pkg_timeout = ${DPKG_BUILD_TIMEOUT};' >> ${SBUILD_CONFIG} DSC_FILE=$(find ${DEPLOY_DIR_SRC} -maxdepth 1 -name "${DEBIAN_SOURCE}_*.dsc" -print) + debrepo_parse_dscfile "${DSC_FILE}" + + locked_update_cmd=":" + if [ "${ISAR_PREFETCH_BASE_APT}" = "1" ]; then + locked_update_cmd="flock -x /base-apt/repo.lock -c 'apt-get -y update'" + fi # networking is automatically enabled on older versions of sbuild sbuild_network_option="" @@ -143,9 +149,11 @@ dpkg_runbuild() { --chroot-setup-commands="rm -f /var/log/dpkg.log" \ --chroot-setup-commands="mkdir -p ${deb_dir}" \ --chroot-setup-commands="find ${ext_deb_dir} -maxdepth 1 -name '*.deb' -exec ln -t ${deb_dir}/ -sf {} +" \ + --chroot-setup-commands="${locked_update_cmd}" \ --chroot-setup-commands="apt-get update -o Dir::Etc::SourceList=\"sources.list.d/isar-apt.list\" -o Dir::Etc::SourceParts=\"-\" -o APT::Get::List-Cleanup=\"0\"" \ --finished-build-commands="rm -f ${deb_dir}/sbuild-build-depends-*-dummy_*.deb" \ --finished-build-commands="find ${deb_dir} -maxdepth 1 -type f -name '*.deb' -print -exec cp ${CP_FLAGS} -t ${ext_deb_dir}/ {} +" \ + --finished-build-commands="mkdir -p ${ext_root}" \ ${@ '--finished-build-commands="cp /var/log/dpkg.log $ext_root/dpkg_partial.log"' if d.getVar('ISAR_CHROOT_MODE') == 'schroot' else '' } \ --build-path="" --build-dir=${WORKDIR} --dist="${DEBDISTRONAME}" ${DSC_FILE} diff --git a/meta/classes-recipe/image-locales-extension.bbclass.orig b/meta/classes-recipe/image-locales-extension.bbclass.orig new file mode 100644 index 00000000..c54923cc --- /dev/null +++ b/meta/classes-recipe/image-locales-extension.bbclass.orig @@ -0,0 +1,159 @@ +# This software is a part of Isar. +# Copyright (C) Siemens AG, 2019 +# +# SPDX-License-Identifier: MIT +# +# This class extends the image.bbclass for setting locales and purging unneeded +# ones. + +inherit debrepo + +LOCALE_GEN ?= "en_US.UTF-8 UTF-8\n\ + en_US ISO-8859-1\n" +LOCALE_DEFAULT ?= "en_US.UTF-8" +# set locale used during package installation, which is visible to +# maintainer scripts (e.g. used in console-setup) +export LANG = "${LOCALE_DEFAULT}" +export LANGUAGE = "${LOCALE_DEFAULT}" +export LC_ALL = "${LOCALE_DEFAULT}" + +def get_locale_gen(d, sep='\n'): + locale_gen = d.getVar("LOCALE_GEN") or "" + return sep.join(sorted(set(i.strip() + for i in locale_gen.split('\\n') + if i.strip()))) + +def get_locale_dirs(d): + # Directory names below /usr/share/locale that shall be kept, derived from + # the language and language_territory parts of LOCALE_GEN. + locale_gen = d.getVar("LOCALE_GEN") or "" + return sorted(set(i + for j in locale_gen.split('\\n') + if j.strip() + for i in (j.split()[0].split("_")[0], + j.split()[0].split(".")[0]))) + +<<<<<<< HEAD +def get_locale_path_include(d): + lines = [] + for name in get_locale_dirs(d): + lines.append("path-include=/usr/share/locale/%s" % name) + lines.append("path-include=/usr/share/locale/%s/*" % name) + return "\n".join(lines) + +# Configure dpkg to only unpack the requested locales, so unneeded locale files +# are never installed. This runs before any package is installed into the image. +# Locale files that the bootstrap already installed are cleaned up here as well. +ROOTFS_CONFIGURE_COMMAND += "image_configure_locale_filter" +image_configure_locale_filter[weight] = "5" +image_configure_locale_filter() { + cat<<__EOF__ > ${WORKDIR}/locale.dpkg-filter +path-exclude=/usr/share/locale/* +path-include=/usr/share/locale/locale.alias +${@get_locale_path_include(d)} +__EOF__ + + run_privileged_heredoc <<'EOSUDO' + set -e + + mkdir -p '${ROOTFSDIR}/etc/dpkg/dpkg.cfg.d' + cat '${WORKDIR}/locale.dpkg-filter' \ + > '${ROOTFSDIR}/etc/dpkg/dpkg.cfg.d/50isar-locales' + + # Drop locale files the bootstrap installed that are not requested. + if [ -d '${ROOTFSDIR}/usr/share/locale' ]; then + keep=' locale.alias ${@' '.join(get_locale_dirs(d))} ' + for entry in '${ROOTFSDIR}'/usr/share/locale/*; do + [ -e "$entry" ] || continue + name=$(basename "$entry") + case "$keep" in + *" $name "*) ;; + *) rm -rf "$entry" ;; + esac + done + fi +EOSUDO +======= +ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT += "image_install_localepurge_download" +image_install_localepurge_download[weight] = "40" +image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}" +image_install_localepurge_download() { + debrepo_add_packages "${DEBREPO_WORKDIR}" "localepurge" + debrepo_update_apt_source_list "${ROOTFSDIR}" "base-apt" + + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS') if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else '')} + chroot ${ROOTFSDIR} \ + /usr/bin/apt-get ${ROOTFS_APT_ARGS} -o Debug::NoLocking=1 --download-only localepurge +EOF +>>>>>>> 3308a3c4 (base-apt: Predownload packages to base-apt before install) +} + +# Preseed the debconf selection and generate the requested locales up front, +# before any package is installed, so package maintainer scripts find working +# locales. +ROOTFS_CONFIGURE_COMMAND += "image_configure_locale_debconf" +image_configure_locale_debconf[weight] = "5" +image_configure_locale_debconf() { + cat<<__EOF__ > ${WORKDIR}/locale.debconf +locales locales/locales_to_be_generated multiselect ${@get_locale_gen(d, ', ')} +locales locales/default_environment_locale select ${LOCALE_DEFAULT} +__EOF__ + cat<<__EOF__ > ${WORKDIR}/locale.gen +${@get_locale_gen(d)} +__EOF__ + cat<<__EOF__ > ${WORKDIR}/locale.default +LANG=${LOCALE_DEFAULT} +__EOF__ + + run_privileged_heredoc <<'EOSUDO' + set -e + + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), '')} + + cat '${WORKDIR}/locale.default' > '${ROOTFSDIR}/etc/default/locale' + cat '${WORKDIR}/locale.debconf' > '${ROOTFSDIR}/tmp/locale.debconf' + + # Enable the requested locales by uncommenting them in /etc/locale.gen + while read -r locale; do + [ -n "$locale" ] || continue + sed -i "/$locale/s/^# *//" '${ROOTFSDIR}/etc/locale.gen' + done < '${WORKDIR}/locale.gen' + + chroot '${ROOTFSDIR}' /bin/sh <<'EOSH' + set -e + + debconf-set-selections /tmp/locale.debconf + rm -f /tmp/locale.debconf +EOSH +EOSUDO +} + +# The systemd locale.conf symlink can only be created once systemd is installed. +ROOTFS_INSTALL_COMMAND += "image_configure_locales" +image_configure_locales[weight] = "100" +image_configure_locales() { + run_privileged_heredoc <<'EOSUDO' + set -e + + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), '')} + + chroot '${ROOTFSDIR}' /bin/sh <<'EOSH' + set -e + + SYSTEMD_VERSION=$(dpkg-query \ + --showformat='${source:Upstream-Version}' \ + --show systemd || echo "0" ) + + if dpkg --compare-versions "$SYSTEMD_VERSION" "ge" "251"; then + if dpkg --compare-versions "$SYSTEMD_VERSION" "lt" "253"; then + ln -s /etc/default/locale /etc/locale.conf + fi + fi + + echo 'reconfigure locales' + dpkg-reconfigure -f noninteractive locales +EOSH +EOSUDO +} diff --git a/meta/classes-recipe/image-tools-extension.bbclass b/meta/classes-recipe/image-tools-extension.bbclass index 8f666444..229ce318 100644 --- a/meta/classes-recipe/image-tools-extension.bbclass +++ b/meta/classes-recipe/image-tools-extension.bbclass @@ -6,6 +6,11 @@ # This file extends the image.bbclass to supply tools for futher imager functions inherit sbuild +inherit debrepo + +python __anonymous() { + d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_TARGET_DIR')) +} IMAGER_INSTALL ??= "" IMAGER_BUILD_DEPS ??= "" @@ -60,12 +65,20 @@ imager_run_schroot() { echo "Installing imager deps: ${local_install}" distro="${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + debrepo_workdir=${DEBREPO_TARGET_DIR} if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then distro="${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + if [ ${HOST_ARCH} != ${DISTRO_ARCH} ]; then + debrepo_workdir=${DEBREPO_HOST_DIR} + fi fi E="${@ isar_export_proxies(d)}" deb_dl_dir_import ${schroot_dir} ${distro} + + debrepo_add_packages --isarapt "${debrepo_workdir}" "${local_install}" + debrepo_update_apt_source_list "${schroot_dir}" "base-apt" + ${SCRIPTSDIR}/lockrun.py -r -f "${REPO_ISAR_DIR}/isar.lock" -s <