From patchwork Thu Aug 20 13:29:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5387 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:00 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f55.google.com (mail-wm1-f55.google.com [209.85.128.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDfxm4013625 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:41:59 +0200 Received: by mail-wm1-f55.google.com with SMTP id 5b1f17b1804b1-496b6f97676sf22151595e9.2 for ; Thu, 20 Aug 2026 06:41:59 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233314; cv=pass; d=google.com; s=arc-20260327; b=aQRnvyg+e4OdRIqgasJKLFTrLyN7Y2TIptE2ZNtqikAXV2E1H528bzdub+i0nGyDuM gTWoowQPBPTmYvCDlNPej1GUuW3zjemsnIFP7HmKAaSx2xn0516cAWTfoWZ/vyGCCvtB qj9bHkPoQEqgHC4epO3O2LBlVh2BzZes0c/JQRhiwjmVv300F50bQJQXGE2rSzc5jRKa rLzZyuV1S2zTWTh3mm5C181cQXqofaOfYIC+G3jJGxkfzora7huFoFXF3UTUF2A+dRtE VJvOJVroEj1GKSJal9swrjW3YdqaGVRvZcnkwtjyA0X1VbdsVxYF4Oo0ozeL7JLQHORB RI4w== 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=fNJdWehtfbEzTNACXbuSUR8mp4eUaKI8F7dAmnGGs3E=; fh=A/vF9yKICMRUsL2Q3kcA2rkHl2IrgG7MNuK82J4sk78=; b=P07tcOgw/EBEDm1DwyZ3HWkFoBuU3bBTkLi0TezfQ5gQovfXB/9aGPQBgxTAARqtcO j5pl4zwilQCA1JZ/2yTOi1sgyxFuLAJT3P6QacqZ8qGI0vTJw6ZuQxXejmG1BoKJvD7R zu8oPIouXbZD3/MdJ1wTTLYR2NCXj+ruoivLF0MPD5vIvpznRdF5tALLOLbgnxLzvEr1 RpdiQ/vncn1Ogjn8oI9vJeHyVgF6MiXE4rCSXq3nAn2ENzLeQAfJYC+RhjMlc7a3lY5l fyvCdvJmAIrWRHGqhJG18XP8QGnsW3zwNDRdMcsGpPa4Yqzu1s1TRLinBmrLB+8Na+Xl eXRQ==; 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=1787233314; x=1787838114; 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=fNJdWehtfbEzTNACXbuSUR8mp4eUaKI8F7dAmnGGs3E=; b=EgM6cUm5PK3SlF3795dxAkHzygqxLXfRCmrjd6PKNAR+fjUSu7cEC7RUVJUqj9uDBf I+4eeT5L/ugnRuDotT/T+9wETxnu5Iaunt7IbPUWvoPFY/D9nkeKaENXkcuQisq6vi1a rvnZ0p4FrvTsj+G7xyCw1Yr08PGWYgpD815dNpyuXr+q7c5LcyN6AlE1xmN/3s7MJ9qf eS+XRhRpBSC/nomYYYhxaCGed9MQerfYnixkuZF3mll2/IYpNe3FryXSemW9rmdz0roi nH0q+jHBwPIHdNnFue4zox1+X49uuo8gaLa4nOZ5RwZyUMbSSlHmI8kU1pdMQzH7AGAO P22w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233314; x=1787838114; 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=fNJdWehtfbEzTNACXbuSUR8mp4eUaKI8F7dAmnGGs3E=; b=Xe0IZyv2fBGcow2e4Cvc6GP0jDH+aeftHzipaU5aA/I4zfN2DsnhoVstJayvRJPB5c mUSCUwwwpDxBM2/EfztXBQhjSz3kv4zbUAKLzd3pKc7NkXYLiLRLjSImEFKAxHBVOvdR 8wsh1qme18CTt8xc5Yrx5DhTaBMCinm7r7IHXyATQE4pCDZw1ltj5oCR6GETKpzQqeLw vM1WL9CuL4OGdEldqhROghdqXnK+/al1NpFrZEI/vmXK5STm+r8DONTgwWIj4mIg9LQJ qq5KsALJK+9hcxjQqOxOXiosL3XQtyT4aIo/mNGO4c/6deRc4Q4a36yVXVQZFz4PTRoO mTNw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rp8oRIWeZ+FA8VRYP+uHu6KwwI3C2LUvrEwbeQQECkprA6PgJhFgv64YxN+l0R/r4ud+374Ce8=@isar-build.org X-Gm-Message-State: AOJu0YyHI7a5Bsh17Mq52ib7b9Ikyx3+uzBfA0eGh9YnnzNebxKp4HNk nkUTasX15J/1P4382bCezgpUAH2RX68EpjDYZ9kbe8fj7dYV8wPZ32gs X-Received: by 2002:a05:600c:470a:b0:499:a5fc:207e with SMTP id 5b1f17b1804b1-499aa17e2bamr166762695e9.8.1787233313533; Thu, 20 Aug 2026 06:41:53 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdcSDBijICgKNf4Ijs+oFlzHivNRGlkvH+b84cyqZZ5NEg==" Received: by 2002:a05:600c:4e50:b0:495:482d:9805 with SMTP id 5b1f17b1804b1-499b05b5bfcls10977315e9.2.-pod-prod-07-eu; Thu, 20 Aug 2026 06:41:51 -0700 (PDT) X-Received: by 2002:a05:600c:6211:b0:499:8ba4:8cae with SMTP id 5b1f17b1804b1-499aa14aecamr237989045e9.1.1787233311314; Thu, 20 Aug 2026 06:41:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233311; cv=none; d=google.com; s=arc-20260327; b=Mpp3m8N4cB7XRjw2ilwayChZGuI2bLB6VL7D+UxqTK1hcJPLWvkY2D7/tqRzgfpPIB CDjD7qpu5LII4pzX07Ar6EoMGOaP0s40ciTyL6SHP6b6MRWA9Zu+BQer783hp0sMRh8A BKJ4eAUwNa+Qa3bxQzlLZTLjqh0DcYI06+Ra0+Hend5X3pid4oPCVXyJwrs9AgWzuDs+ CS1+uWJVJKxzqvZuIBU6VMH2zIwqIGfroFyPB/wU7eWCTo5wc9KZ31EE/lp3gZbturkM RVisV71l5NDAk8mvoVSbKLRo3TUGsV6vVbGtdsUAmuXp3QwamaCjQw1I8PR9F76Ps2bn 1buw== 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=/JtL2fhoMYFIFDWwyKWVDfMR3QY79CvLv8MvqHX0kHY=; fh=8xvFQ9N6ENvazHnylkO2sbgzUV6bRnZQvNiaC5bb+x4=; b=k9Z7lUs+rDy43FvS+7SPCBX1x4nd6rjOZ6YQdB3nFlrfqHA1acOWYyA+Eo/wIZGeHP hqvtDgHDectP4u+E4ErJ1A3/tPzM+p0jUrqJVnn4mMl+pZ0HfLLQQnwdupicrOP1SjML j1ms1CVTIlV/EF7VStF+6bL34KkmojgIDPiucvwrbxBK/AGTWG9GuanbkXhMQel1/ZjD LwY8lDbSjkQqAQdRbpEW35USplNzb34i4or7Wj14S4qIlkGZ47z4CLdPI1zMpfEhZm3m EqthP2btugM2wsXlEpUiWRPzVg/ONMdZqVhkuzlYygfaq4ZxfvEkXgAfZULhxkD8seae al+A==; 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 5b1f17b1804b1-499a9e70e00si1107395e9.0.2026.08.20.06.41.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:51 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lO013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:44 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich , Aliaksei Laurynovich Subject: [v9 01/13] scripts: Add debrepo python script handling base-apt Date: Thu, 20 Aug 2026 15:29:16 +0200 Message-ID: <20260820133934.383231-2-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 is the main utility responsible for prefetching packages into local `base-apt` repo from external Debian mirrors. It uses python-apt module and requires some kind of minimal `rootfs` to work (let's call it "debrepo context"). Once initialized with `--init --workdir=`, it stores the initial configuration in `repo.opts` file inside the context and uses it at futher calls. In future, the logic `debrepo` script implements could be directly implemented inside bitbake classes. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich Signed-off-by: Aliaksei Laurynovich --- scripts/deb-repo | 610 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 610 insertions(+) create mode 100755 scripts/deb-repo diff --git a/scripts/deb-repo b/scripts/deb-repo new file mode 100755 index 00000000..23de0461 --- /dev/null +++ b/scripts/deb-repo @@ -0,0 +1,610 @@ +#!/usr/bin/env python3 + +""" +# This software is a part of Isar. +# Copyright (C) 2026 ilbers GmbH + +# deb-repo: build Debian-like repo using "python3-apt" library. + +When building the image, Isar downloads required Debian packages from external +mirrors. After build completed, it can pick all downloaded packages from DL_DIR +and build local 'base-apt' Debian-like repo from them. + +This tool allows to download packages and create local repo in advance. So, +Isar just uses this local repository and does not interact with external +mirrors. Such approach makes deb-dl import/export functionality redundant. + +Script `deb-repo` works in so-called "context" directory. It means some +rootfs-like directory with bare minimum of directories/files required for +python3-apt to work. + +Context directory path is passed with "--workdir " command-line option. +On context creating, all passed parameters are stored in the context directory +and picked every time the context is used again. + +1. Repo for building Debian system +``` +deb-repo --workdir=d12 --init locales gnupg +``` +Initialize the context in "d12" directory and create a repository in +"d12/repo/apt" directory sufficient to debootstrap default system +(e.g., debian-bookworm-amd64). Additionally, packages "locales" and "gnupg" +with all their dependencies will be available in this repo. + +``` +deb-repo --workdir=d12 docbook-to-man +``` +Adds "docbook-to-man" packages with its dependencies to earlier created repo. + +``` +deb-repo --workdir=d12 --srcmode docbook-to-man +``` +Downloads source package for "docbook-to-man" and adds it to the repo + +2. Repo for building Ubuntu system +``` +deb-repo --init --workdir=uf \ +--distro=ubuntu --codename=focal --arch=arm64 \ +--aptsrcsfile=/work/isar/meta-isar/conf/distro/ubuntu-focal-ports.list \ +--repodir=repo/apt --repodbdir=repo/db \ +--mirror=http://ports.ubuntu.com/ubuntu-ports \ +locales gnupg +``` +Initialize the context in "uf" directory and create a repository in "repo/apt" +directory sufficient deboostraup ubuntu-focal arm64 system. Mirror to use and +source list are specified by corresponding arguments. Packages "locales" and +" gnupg" with the dependencies will be also placed to the repo. + +``` +deb-repo --workdir=uf gnupg,locales +``` +Add "gnupg" and "locales" packages with their dependencies to earlier created +ubuntu repo. Other parameters (distro, codename, arch) are ommited since they +are picked from the context. + +3. Repo for cross-building Debian system +``` +deb-repo --init --workdir=d11 --codename=bullseye--arch=amd64 --crossarch=armhf +``` +Initialize the context in "d11" directory sufficient to deboostrap Debian +Bullseye (amd64) with foreign "armhf" architecture support + +``` +deb-repo --workdir=d11 gcc +``` +Add "gcc" package (amd64 version) to earlier created repo. + +``` +deb-repo --workdir=d11 --crossbuild gcc +``` +Add "gcc" package (armhf version) to earlier created repo. +""" + +import os +import sys +import fcntl + +import argparse +import shutil +import subprocess +import pickle +import urllib.parse + +import apt_pkg +import apt.progress.base + + +REPREPRO_TIMEOUT = 1200 + + +class DebRepo(object): + class DebRepoCtx(object): + def __init__(self, workdir): + self.distro = "debian" + self.codename = "bullseye" + self.arch = "amd64" + self.mirror = "http://deb.debian.org/debian" + + self.repodir = f"{workdir}/repo/apt" + self.repodbdir = f"{workdir}/repo/db" + + self.crossarch = self.arch + self.compatarch = None + self.keydir = "/etc/apt/trusted.gpg.d" + + def __init__(self, args): + self.workdir = os.path.abspath(args.workdir) + self.ctx = self.DebRepoCtx(self.workdir) + + self.cache = None + self.depcache = None + self.sr = None + self.extrarepo = None + + self.ctx_load() + self.ctx_update(args) + self.ctx_save() + + print( + f"ctx workdir: {self.workdir}\n" + f" distro: {self.ctx.distro}\n" + f" codename: {self.ctx.codename}\n" + f" arch: {self.ctx.arch}\n" + f" mirror: {self.ctx.mirror}\n" + f" repodir: {self.ctx.repodir}\n" + f" repodbdir: {self.ctx.repodbdir}\n" + f" crossarch: {self.ctx.crossarch}\n" + f" compatarch: {self.ctx.compatarch}\n" + f" keydir: {self.ctx.keydir}" + ) + + if args.extrarepo: + self.extrarepo = os.path.abspath(args.extrarepo) + + def ctx_load(self): + ctxfile = f"{self.workdir}/deb-repo.ctx" + + if os.path.isfile(ctxfile): + with open(ctxfile, 'rb') as f: + self.ctx = pickle.load(f) + + def ctx_save(self): + ctxfile = f"{self.workdir}/deb-repo.ctx" + + with open(ctxfile, 'wb') as f: + pickle.dump(self.ctx, f) + + def ctx_update(self, args): + if args.distro: + self.ctx.distro = args.distro + if args.codename: + self.ctx.codename = args.codename + if args.arch: + self.ctx.arch = args.arch + if args.mirror: + self.ctx.mirror = args.mirror + + if args.repodir: + self.ctx.repodir = os.path.abspath(args.repodir) + if args.repodbdir: + self.ctx.repodbdir = os.path.abspath(args.repodbdir) + + if args.crossarch: + self.ctx.crossarch = args.crossarch + if args.compatarch: + self.ctx.compatarch = args.compatarch + if args.keydir: + self.ctx.keydir = args.keydir + + def create_rootfs(self, aptsrcsfile): + os.makedirs(f"{self.workdir}/var/lib/dpkg", exist_ok=True) + with open(f"{self.workdir}/var/lib/dpkg/status", "w"): + pass + + os.makedirs(f"{self.workdir}/etc/apt/sources.list.d", exist_ok=True) + + srcfile = f"{self.workdir}/etc/apt/sources.list.d/bootstrap.list" + if aptsrcsfile and os.path.exists(aptsrcsfile): + shutil.copy(aptsrcsfile, srcfile) + else: + with open(srcfile, "w") as f: + repo = f"{self.ctx.mirror} {self.ctx.codename} main" + f.write(f"deb {repo}\n") + f.write(f"deb-src {repo}\n") + + dir_cache = f"../apt_cache/{self.ctx.distro}-{self.ctx.codename}" + os.makedirs(f"{self.workdir}/{dir_cache}/archives/partial", + exist_ok=True) + + os.makedirs(f"{self.workdir}/tmp", exist_ok=True) + + def create_repo_dist(self): + conf_dir = f"{self.ctx.repodir}/{self.ctx.distro}/conf" + os.makedirs(conf_dir, exist_ok=True) + if not os.path.exists(f"{conf_dir}/distributions"): + with open(f"{conf_dir}/distributions", "w") as f: + f.write(f"Codename: {self.ctx.codename}\n") + f.write( + "Architectures: " + "i386 armhf arm64 amd64 mipsel riscv64 source\n") + f.write("Components: main\n") + + def apt_config(self, init, crossbuild): + if not init and self.ctx.compatarch: + apt_pkg.config["APT::Architectures::"] = self.ctx.compatarch + + if not init and self.ctx.arch != self.ctx.crossarch: + apt_pkg.config["APT::Architectures::"] = self.ctx.crossarch + apt_pkg.config["APT::Architectures::"] = self.ctx.arch + + apt_pkg.config.set("APT::Architecture", self.ctx.arch) + + apt_pkg.config.set("Dir", self.workdir) + + dir_cache = f"../apt_cache/{self.ctx.distro}-{self.ctx.codename}" + apt_pkg.config.set("Dir::Cache", f"{self.workdir}/{dir_cache}") + apt_pkg.config.set("Dir::State::status", + f"{self.workdir}/var/lib/dpkg/status") + + apt_pkg.config.set("APT::Install-Recommends", "0") + apt_pkg.config.set("APT::Install-Suggests", "0") + + # Use host keys for authentification + apt_pkg.config.set("Dir::Etc::TrustedParts", self.ctx.keydir) + + # Allow using repositories without keys + apt_pkg.config.set("Acquire::AllowInsecureRepositories", "1") + + def mark_essential(self): + for pkg in self.cache.packages: + if pkg.architecture == self.ctx.arch: + if pkg.essential: + self.depcache.mark_install(pkg) + + def mark_by_prio(self, priority): + for pkg in self.cache.packages: + if pkg.architecture == self.ctx.arch: + ver = self.depcache.get_candidate_ver(pkg) + if ver and ver.priority <= priority: + self.depcache.mark_install(pkg) + + def mark_pkg(self, name, crossbuild): + pkgname = name + + if pkgname and (pkgname not in self.cache): + # Try for cross arch + if (pkgname, self.ctx.crossarch) in self.cache: + pkgname += f":{self.ctx.crossarch}" + + if pkgname not in self.cache: + print(f"Error: package '{name}' not found") + return False + + pkg = self.cache[pkgname] + + if (not crossbuild) or (':' in pkgname) or (not pkg.has_versions): + if (pkg.has_provides) and (not pkg.has_versions): + print("pkgname is virtual package, selecting best provide") + # Select first provide + pkg_provide = pkg.provides_list[0][2] + # Find better provide with higher version + for provide in pkg.provides_list: + if apt_pkg.version_compare(provide[2].ver_str, + pkg_provide.ver_str) > 0: + pkg_provide = provide[2] + self.depcache.mark_install(pkg_provide.parent_pkg) + else: + self.depcache.mark_install(pkg) + else: + version = pkg.version_list[0] + if version.arch == "all": + self.depcache.mark_install(pkg) + else: + if version.multi_arch == version.MULTI_ARCH_FOREIGN: + if (pkgname, self.ctx.arch) in self.cache: + nativepkg = self.cache[pkgname, self.ctx.arch] + self.depcache.mark_install(nativepkg) + else: + return False + else: + if (pkgname, self.ctx.crossarch) in self.cache: + crosspkg = self.cache[pkgname, self.ctx.crossarch] + self.depcache.mark_install(crosspkg) + else: + return False + + return True + + def mark_list(self, pkglist, crossbuild): + ret = True + if pkglist: + for pkgname in pkglist: + ret = ret and self.mark_pkg(pkgname, crossbuild) + + return ret + + def handle_deb(self, item): + fd = open(f"{self.ctx.repodir}/repo.lock", 'w') + fcntl.flock(fd, fcntl.LOCK_EX) + subprocess.run([ + "reprepro", + "--dbdir", f"{self.ctx.repodbdir}/{self.ctx.distro}", + "--outdir", f"{self.ctx.repodir}/{self.ctx.distro}", + "--confdir", f"{self.ctx.repodir}/{self.ctx.distro}/conf", + "-C", "main", + "includedeb", + self.ctx.codename, + item.destfile + ], timeout=REPREPRO_TIMEOUT) + fd.close() + + def handle_repo(self, fetcher): + dir_cache = f"../apt_cache/{self.ctx.distro}-{self.ctx.codename}" + fd = open(f"{self.workdir}/{dir_cache}.lock", "w") + fcntl.flock(fd, fcntl.LOCK_EX) + fetcher.run() + fd.close() + for item in fetcher.items: + if item.status == item.STAT_ERROR: + print("Some error ocured: '%s'" % item.error_text) + pass + else: + self.handle_deb(item) + + def get_filename(self, uri): + path = urllib.parse.urlparse(uri).path + unquoted_path = urllib.parse.unquote(path) + basename = os.path.basename(unquoted_path) + return basename + + def fetch_file(self, uri): + filename = self.get_filename(uri) + return subprocess.run([ + "wget", + "-H", + "--timeout=30", + "--tries=3", + "-nv", + uri, + "-O", + f"{self.workdir}/tmp/{filename}" + ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + + def handle_dsc(self, dsc_file): + fd = open(f"{self.ctx.repodir}/repo.lock", 'w') + fcntl.flock(fd, fcntl.LOCK_EX) + result = subprocess.run([ + "reprepro", + "--dbdir", f"{self.ctx.repodbdir}/{self.ctx.distro}", + "--outdir", f"{self.ctx.repodir}/{self.ctx.distro}", + "--confdir", f"{self.ctx.repodir}/{self.ctx.distro}/conf", + "-C", "main", + "-S", "-", "-P" "source", + "--delete", + "includedsc", + self.ctx.codename, + os.path.realpath(f"{self.workdir}/tmp/{dsc_file}") + ], timeout=REPREPRO_TIMEOUT) + fd.close() + return result.returncode == 0 + + def handle_src_list(self, pkgs): + ret = True + if pkgs: + local_repo = f"{self.ctx.repodir}/{self.ctx.distro}" + fetched_files = [] + for pkg in pkgs: + pkgname = pkg + pkgver = "" + if '=' in pkg: + pkgname = pkg.split("=")[0] + pkgver = pkg.split("=")[1] + + self.sr.restart() + while self.sr.lookup(pkgname): + if pkgver and pkgver != self.sr.version: + continue + + for sr_file in self.sr.files: + uri_file = self.sr.index.archive_uri(sr_file.path) + filename = os.path.basename(sr_file.path) + path = urllib.parse.urlparse(uri_file).path.lstrip('/') + # Strip the distro directory prefix from upstream path + # e.g. "debian/pool/main/h/hello/file.dsc" -> "pool/main/h/hello/file.dsc" + parts = path.split('/', 1) + local_path = parts[1] if len(parts) > 1 else path + local_file = f"{local_repo}/{local_path}" + print(uri_file) + if filename not in fetched_files: + if os.path.exists(local_file): + shutil.copy2(local_file, f"{self.workdir}/tmp/{filename}") + else: + result = self.fetch_file(uri_file) + if result.returncode != 0: + print(f"ERROR: cannot download {uri_file}") + print(f"ERROR: {result.stderr}") + fetched_files.append(filename) + if sr_file.type == 'dsc': + dsc_file = filename + + ret = self.handle_dsc(dsc_file) + break + return ret + + def apt_run(self, init, srcmode, pkgs, dscfile, crossbuild): + apt_pkg.init() + + extrarepo_list = f"{self.workdir}/etc/apt/sources.list.d/extrarepo.list" + if self.extrarepo: + extrarepo_list = f"{self.workdir}/etc/apt/sources.list.d/extrarepo.list" + with open(extrarepo_list, "w") as f: + distdir=os.path.join(self.extrarepo, "dists") + if os.path.isdir(distdir): + for dist in os.listdir(distdir): + repodir = os.path.join(distdir,dist) + if os.path.isdir(repodir): + for repo in os.listdir(repodir): + if os.path.isdir(os.path.join(repodir, repo)): + f.write(f"deb file://{self.extrarepo} " + f"{dist} {repo}\n") + + sources = apt_pkg.SourceList() + sources.read_main_list() + + progress = apt.progress.text.AcquireProgress() + + self.cache = apt_pkg.Cache() + if init: + self.cache.update(progress, sources) + self.cache = apt_pkg.Cache() + + self.sr = apt_pkg.SourceRecords() + + if self.extrarepo: + apt_pkg.config.set("Dir::Etc::SourceList", extrarepo_list) + apt_pkg.config.set("APT::Get::List-Cleanup", "0") + extrarepo_sources = apt_pkg.SourceList() + extrarepo_sources.read_main_list() + self.cache.update(progress, extrarepo_sources) + self.cache = apt_pkg.Cache() + os.remove(extrarepo_list) + + self.depcache = apt_pkg.DepCache(self.cache) + + ret = True + + if init: + self.mark_essential() + # 1(required), 2(important), 3(standard), 4(optional), 5(extra) + self.mark_by_prio(1) + + pkgs = list(filter(None, ','.join(pkgs).split(','))) + if srcmode: + ret = self.handle_src_list(set(pkgs)) + else: + ret = self.mark_list(pkgs, crossbuild) + + if dscfile: + fobj = open(dscfile, "r") + + try: + tagfile = apt_pkg.TagFile(fobj) + while tagfile.step() == 1: + deps = tagfile.section.get("Build-Depends", "") + # Remove extra commas and spaces - apt_pkg.parse_src_depends + # doesnt like lines like ", device-tree-compiler" + deps = ', '.join( + [s.strip() for s in deps.split(',') if s.strip()] + ) + print(f"parsed deps: {deps}") + for item in apt_pkg.parse_src_depends(deps, False): + pkgname = item[0][0] + self.mark_pkg(pkgname, crossbuild) + + finally: + fobj.close() + + if not ret: + sys.exit("Some of requested packages not found") + + if init or not srcmode: + fetcher = apt_pkg.Acquire(progress) + pm = apt_pkg.PackageManager(self.depcache) + + recs = apt_pkg.PackageRecords(self.cache) + pm.get_archives(fetcher, sources, recs) + + self.handle_repo(fetcher) + + +def parse_arguments(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--init", + default=False, action="store_true", + help="initialize context in WORKDIR") + parser.add_argument( + "--workdir", + type=str, required=True, + help="work directory storing deb-repo context") + parser.add_argument( + "--aptsrcsfile", + type=str, metavar="PATH", + help="sources.list file to use when init") + parser.add_argument( + "--srcmode", + default=False, action="store_true", + help="add source packages instead of debs") + parser.add_argument( + "--repodir", + type=str, metavar="REPO", + help="repository directory") + parser.add_argument( + "--repodbdir", + type=str, metavar="REPODB", + help="repository database directory") + parser.add_argument( + "--extrarepo", + type=str, metavar="REPO", + help="extra repository to consider") + parser.add_argument( + "--mirror", + type=str, + help="use custom distro mirror") + parser.add_argument( + "--distro", + type=str, + help="select distro to use") + parser.add_argument( + "--codename", + type=str, + help="distro codename") + parser.add_argument( + "--arch", + type=str, + help="distro arch") + parser.add_argument( + "--compatarch", + type=str, metavar="ARCH", + help="compat arch to use") + parser.add_argument( + "--crossarch", + type=str, metavar="ARCH", + help="cross-build arch") + parser.add_argument( + "--keydir", + type=str, + help="directory with distro keys") + parser.add_argument( + "--no-check-gpg", + default=False, action="store_true", + help="allow insecure repositories") + parser.add_argument( + "--dscfile", + type=str, metavar="PATH", + help="Debian source file to parse") + parser.add_argument( + "--crossbuild", + default=False, action="store_true", + help="add packages with cross arch") + + parser.add_argument( + "packages", + nargs='*', type=str, + help="space- or comma-separated list of packages to add") + + args = parser.parse_args() + + return args + + +def main(): + args = parse_arguments() + + if not (args.init or args.packages or args.dscfile): + sys.exit("Nothing to do") + + workdir = os.path.abspath(args.workdir) + os.makedirs(workdir, exist_ok=True) + + with open(f"{workdir}/deb-repo.lock", "a") as file: + fcntl.flock(file.fileno(), fcntl.LOCK_EX) + + deb_repo = DebRepo(args) + + if args.init: + deb_repo.create_rootfs(args.aptsrcsfile) + deb_repo.create_repo_dist() + + deb_repo.apt_config(args.init, args.crossbuild) + deb_repo.apt_run(args.init, args.srcmode, args.packages, + args.dscfile, args.crossbuild) + + #Unlock deb-repo context + fcntl.flock(file.fileno(), fcntl.LOCK_UN) + + +if __name__ == "__main__": + main() From patchwork Thu Aug 20 13:29:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5389 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:03 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f61.google.com (mail-lf1-f61.google.com [209.85.167.61]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg2s9013662 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:03 +0200 Received: by mail-lf1-f61.google.com with SMTP id 2adb3069b0e04-5aeb8c3f9cesf1516460e87.2 for ; Thu, 20 Aug 2026 06:42:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233316; cv=pass; d=google.com; s=arc-20260327; b=nUU0scOqqeIFD7M4YudM42BdawawM6aFJ9NRGpnQfJPWecc9l4L+gS1liv6g0g+GN+ SMSbjyBVdkH5S8A/d3lEq2PdHM470HftJ5ifMryNWxHpbDHqM3RU3Vs7KmLB4AL+tG/L ngdL7q4JfP28TP4+nd2EvSyvzkJ52+F11Nk+/PQ5ErfZZs5xKyQgrl2pm9SI5a5MrXUx aLtuS1Obu4f7GIcp34vk17dk6p7r1qZbnE74appwoTcjucmYX7Gl70R2qlIm7H+1pWNn wIgP92BfYpfbSsHmLo2ReXi8v8AaplCrbnjvfo6idn1Tc2tUGi2T4nu7h85aAIuXcCFU 18Fg== 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=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; fh=cKhJ++tXMQDxTgoBUu5J3gOhctvxt2/vomlpFmv+S78=; b=cn20Y9pk9UYzHMgsQ7dWjvlMcOGPnmomnYTRway1qe9MAhDj4C0QhwLLuU9Fm28nnA EiEdZJ4Tl4J4HIZWoKUhqxQ41ye4iKl/X5S8f4bed1ctB9UJWwVvU4av2A4yWX8qW+Jd YzlRN8rXJj9ru+dVJVaPdZ+mnzJ1lc7xBB3EYM5YS24R7/bnJkKMDI7rdGSBVM7lITXa Rz+bAdjeUlwQP7O0ikaVOxC8ZcRhcc0vEFlYiAsd8y4b7K271Z3FFlU3U/Pi8md4hhqC n3FXmBXqPzT1LwHvJGD1n2MImATWErAiJLY6mMxJnnEAhtpGA0DfmGTV2DhMDj76AXy3 Hwlw==; 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=1787233316; x=1787838116; 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=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; b=DWo961jYNBX6+antJ4WsokoCw3u4WZI90WxBwPfM73vPaxrYs6i52F7HhIRjfM6HbR 6vUfN7iFS1v5xpvu/IaiUtT6nQWGaw3mJhvQLdY65emXkN0gjarbeJHCTgVvFhZIjdLC p0FeJKUfnM6qPRlA5xwrAYjw42QVvPZzFRvlcJAvHRhWpE4fnF4BETH+xjVJYGElZ56y vw9LvuDfEGRqXCUVnT6QSO+NFQy9CCmdV4sYhRqAgQbtoY/shoJ+B0j97aGLrbVlkFwg S7LwTpHQr39jvszQ3ftWN9RJ8OmOcruJWLaJdtzFCulY6sC0mvddoeo8E1YBB6M6IQ3t 2XJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233316; x=1787838116; 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=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; b=JS+NOMqV7QCbe/KrDpiVfl4m6qeuGD7CLw0pYhgOTiOhXRuoYpDpqSdlhOFSbVJcFU tkIkvhazy3pX83RETqeVcm5cTW76JfkpCrLNg1dhQNohTBTYqdpab8vm6P4OAVwknFuA 5YIE5x4VB4tNQqvn35pXMMc8uMJs6tN2yKkNh448cs7cvLkaPFMccRsYq5/VQIRWKJ7H 4gJ9/9bqStIKOI7H04bgIZRd2QU2PbFtcwrLErftwwBSeDQcyL6AXL9idrhuDO2TxfeU YZDcCr/bG4sp4z/YGKi027vdQ78Lmfbvt9kbR+MK/uqJwx/Fjiuy7b4WjUn9RE91OpZl zE9g== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RpEavf3E5+FcCMizTCyRFrIbkR265NYp41nMAThMqnIjkzriBLFDlnoxYz4CJoAnun30zSAf1I=@isar-build.org X-Gm-Message-State: AOJu0YwTIOz1h5MoKWMleKs3iuN2bkvB2gCVMq/aue6hX2/wRzrVWB37 BXHn+xhElSBosggRrUMw8hfaIFtVeMUh3ie4PoQP3fMefLVP60aCnr9H X-Received: by 2002:a05:6512:2312:b0:5b3:f69:fef7 with SMTP id 2adb3069b0e04-5b478bc5b28mr4558569e87.4.1787233314794; Thu, 20 Aug 2026 06:41:54 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfDrAbPEal56rdgtMIWciGVfrH0V5shyMSRfYs7rbxbhA==" Received: by 2002:ac2:5e84:0:b0:5b1:5d99:bc6c with SMTP id 2adb3069b0e04-5b47d58bcc4ls364117e87.1.-pod-prod-08-eu; Thu, 20 Aug 2026 06:41:52 -0700 (PDT) X-Received: by 2002:a05:6512:2c85:b0:5b1:5eea:a576 with SMTP id 2adb3069b0e04-5b478d14ce3mr5380198e87.21.1787233312524; Thu, 20 Aug 2026 06:41:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233312; cv=none; d=google.com; s=arc-20260327; b=o8o8CSrFS9TCxud4nRGwFX4QvV7CTnc+sYdkeTlT/EeqC9E++zjpQNhkFO4lu4tNlM GDPpEJyLIfSeW4vpPL1w0QTMzcDttuqSiuerryUSMY+XWVFEhgJRSiGiZpDG54gFSMZy 39Tvqy7OhNLSU1dACclsl7tkV4MKo0WNfoYhJKZNGEDJdjtZY8hcJrl47kqWUTeDQMNy skqHTXp99BTEr/ek0QEmxWPW08TIeq2SQam6RKb6kB1yA8l9B0rBjgxyjlUWK9GoH+kE 5iDo3ugsDP/kI9nMVDxlDlvSneLh6UA4XN0vem/0hDK/LbcIUyQz4PG0mg6cBtsu9BJX m8Pw== 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=jIZUIhxiFY7O+c1VZ/RnWqvTjL4VJbRqfFUhfJEzPkM=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=mYSiN5t2/OtVVzI/WHVXpd/SvzzG+FXUNE6W4SKVLobDonptKKxB0PwzE3Y1qNffym Dbaxo8T2zJc0k505Ir1bsGBebxw3tiNBBAuaem2QGFfizrWdAqqM/96a/FYcil8hzkW/ Ucpi0OYzDUBKta1jAwIGt3Ek6YeQONpqWc/yeqM4Ti6qv6zrd05Nccz//VqRn3lG1pAH Ggo0D5Kv1QG5U3yjL9ymKdza6hxzgJA2a8gCF9MbbknSB07yG7MUJ/MFfU++ie2uSRt4 LPfMTyigfk4YJiBXSzJ4mk6vg4FlZ//wFkQX9DPVVhHXO4IZrEG6zhn0K3UVYQqe/iuB LFeA==; 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 2adb3069b0e04-5b47881f116si108239e87.0.2026.08.20.06.41.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:52 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lP013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:51 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 02/13] meta: Add debrepo bbclass handling base-apt prefetching Date: Thu, 20 Aug 2026 15:29:17 +0200 Message-ID: <20260820133934.383231-3-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 class uses 'scripts/debrepo' python script to prefetch given packages or sources to local base-apt repository. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- RECIPE-API-CHANGELOG.md | 9 ++++ doc/user_manual.md | 1 + meta/classes/debrepo.bbclass | 89 ++++++++++++++++++++++++++++++++++++ meta/conf/bitbake.conf | 5 ++ 4 files changed, 104 insertions(+) create mode 100644 meta/classes/debrepo.bbclass diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 2db05169..139fcc8b 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -1201,3 +1201,12 @@ To opt out, remove the feature explicitly: ``` ROOTFS_FEATURES:remove = "clean-apt-credentials" ``` +### "Prefetch" mode for base-apt + +Originally, `base-apt` repo is created only during second build when variable +ISAR_USE_CACHED_BASE_REPO is set. The repo is populated with every package that +took part in the first build and was cached in DL_DIR. + +New ISAR_PREFETCH_BASE_APT variable changes the way `base-apt` is populated. +Packages added to the repo before running any task that need them. Separate +`deb-repo` script is used for populating base-apt repo. diff --git a/doc/user_manual.md b/doc/user_manual.md index dcc3f560..aa2b68b9 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -86,6 +86,7 @@ apt install \ gettext-base \ git \ python3 \ + python3-apt \ quilt \ qemu-user-static \ reprepro \ diff --git a/meta/classes/debrepo.bbclass b/meta/classes/debrepo.bbclass new file mode 100644 index 00000000..79a19144 --- /dev/null +++ b/meta/classes/debrepo.bbclass @@ -0,0 +1,89 @@ +# This software is a part of Isar. +# Copyright (C) 2026 ilbers GmbH +# +# SPDX-License-Identifier: MIT + +# Prefetch to base-apt repo by default +ISAR_PREFETCH_BASE_APT ??= "1" + +DEBREPO_WORKDIR ??= "${DEBREPO_TARGET_DIR}" + +debrepo_update_apt_source_list() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + + chroot_dir=${1} + apt_list=${2} + + flock -x "${REPO_BASE_DIR}/repo.lock" -c " + sudo -E chroot ${chroot_dir} /usr/bin/apt-get update \ + -o Dir::Etc::SourceList=\"sources.list.d/${apt_list}.list\" \ + -o Dir::Etc::SourceParts=\"-\" \ + -o APT::Get::List-Cleanup=\"0\" + " +} + +debrepo_add_packages() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + args="" + if [ "${1}" = "--srcmode" ]; then + args="${args} --srcmode" + shift + fi + + if [ "${1}" = "--isarapt" ]; then + args="${args} --extrarepo=${REPO_ISAR_DIR}/${DISTRO}" + shift + fi + + workdir="${1}" + args="${args} ${2}" + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + else + export GNUPGHOME="${WORKDIR}/gpghome" + fi + + ${SCRIPTSDIR}/deb-repo \ + --workdir="${workdir}" \ + ${args} +} + +debrepo_parse_dscfile() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + dscfile="${1}" + args="" + + if [ "${ISAR_CROSS_COMPILE}" = "1" ]; then + build_arch=${HOST_ARCH} + if [ "${PACKAGE_ARCH}" != "${build_arch}" ]; then + args="--crossbuild \ + crossbuild-essential-${PACKAGE_ARCH}:${build_arch} \ + dose-distcheck:${build_arch} \ + libc-dev:${PACKAGE_ARCH} \ + libstdc++-dev:${PACKAGE_ARCH} \ + " + fi + fi + + args="${args} --extrarepo=${WORKDIR}/isar-apt/${DISTRO}-${DISTRO_ARCH}/apt/${DISTRO}" + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + else + export GNUPGHOME="${WORKDIR}/gpghome" + fi + + if [ -n "${DEB_BUILD_PROFILES}" ]; then + export DEB_BUILD_PROFILES="${DEB_BUILD_PROFILES}" + fi + + ${SCRIPTSDIR}/deb-repo \ + --workdir="${DEBREPO_WORKDIR}" \ + --dscfile="${dscfile}" \ + ${args} +} diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 7a12a3ef..1372a00e 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -67,6 +67,11 @@ SDKCHROOT_DIR = "${DEPLOY_DIR_SDKCHROOT}/${BPN}-${DISTRO}-${MACHINE}" CACHE = "${TMPDIR}/cache" KERNEL_FILE ?= "${@ 'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel', 'riscv64', 'arm64'] else 'vmlinuz'}" +# debrepo config +DEBREPO_DIR = "${TOPDIR}/debrepo" +DEBREPO_HOST_DIR = "${DEBREPO_DIR}/${HOST_DISTRO}-${HOST_ARCH}_${DISTRO}-${DISTRO_ARCH}" +DEBREPO_TARGET_DIR = "${DEBREPO_DIR}/${DISTRO}-${DISTRO_ARCH}" + MACHINEOVERRIDES ?= "${MACHINE}" DISTROOVERRIDES ?= "${DISTRO}" OVERRIDES = "${PACKAGE_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${BASE_DISTRO_CODENAME}::${BASE_DISTRO}:${ISAR_CHROOT_MODE}:forcevariable" From patchwork Thu Aug 20 13:29:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5388 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:02 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f56.google.com (mail-wm1-f56.google.com [209.85.128.56]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg1cq013651 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:01 +0200 Received: by mail-wm1-f56.google.com with SMTP id 5b1f17b1804b1-49991beee7asf24224045e9.2 for ; Thu, 20 Aug 2026 06:42:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233316; cv=pass; d=google.com; s=arc-20260327; b=Z8PaNjtP3Q6JboDeoDwdsQRD94GVEF6yfjXpT/lotNceml3WBTsm8tIwbYVPLkc4mI DXdttUx/lKZCYR4L8QxV6l0T2eJI3s735w1tsMu2clWettlrIV9FXELURpcI9SKlm+4c fQzCqStZVEhc0i0fe1VPQ02YkBGyyHQ0Fv5qTB76gNz1c/YrzrcjKOtK/ZkkA55ZR+zC KSjbrRzpDvyWXk+A7BJgEByHdLcKI87j/pwF2/bnTmSggF4KGY/YMoeCiYVfgDfrlJ8Y 2JjWxD/CsLqmqWW8vavaOKyFBTQ35pzDXG4gq7fg8wD+8+LNvxmrM+iHJ7A/8bD1XL14 sR4w== 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=RAScsTHDtSI8R1w9PBNZfySxeetqKKZ0YYDGDPzpwyo=; fh=yvnjgzau63aaJLoiODrRar5/oKVtbzzwZkpETla48cM=; b=I+I0xPx2M0HBeGaLAXRo5g4wcy7GzrtWF2vpXqTP2fbzipDHK/Bi2wCHJiAB49EF0N G29quMT0IjMfbAX6kfCwvzDI1eADV5Raph12l/fQ7lMPPIkK3AoO/JhQC3Gah7snxV65 OYZJa1XK4fJwg/fusR2OdW/bObjN+aVBSiXP5J5ztAo/1+JEV0GHfpIooHfPrZ6FOC1j Jdftm5nsCHwBM/y+0ZA4fZn1pyoSVLpBd2KrJJkaAdnry8gM4XTjvyiwfsFeCWDDoqx+ UdiXIgQxyRrcXWdcibKmzzcrjXw9GbkT9klH/RDxkUmZq5iAuytLQ0sDCZ4/tWlL+Vae Ftsg==; 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=1787233316; x=1787838116; 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=RAScsTHDtSI8R1w9PBNZfySxeetqKKZ0YYDGDPzpwyo=; b=K/8ji7Df/MhcrK0otSrycPe6EZluLC1a0j/tIxuu0IflqUIZFs+DspX4ES5+axq3lt /fmgpDX+IdGwpnt7PwKiXBvdDeveULAnmlLYYq5aLYgkPAhftEisNqCojtS6mKHKQXuN yKqAiUVnrhDDnrsdLcJ+2Mh4w44JUUS3V661qEXT97KGWu/3ojNFkqGsmYbUi8xtA96Y Iv4wMgeEvl0pYHy00+fqnEO5AEzGsF6XcxjPaeyb4Eg65ZCp97dl1Lb/6vTm0sqaXTIH hdF3563onXLLaatDow4Oqjuh0I9h1ed6gxsVPEckH87TV1e8zqiIxg13rLmPWa9iE6En /Viw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233316; x=1787838116; 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=RAScsTHDtSI8R1w9PBNZfySxeetqKKZ0YYDGDPzpwyo=; b=VxBOg3XFdPFQGySzLFTyRgMw1W2s2SeADnoNIbsHTYZ3KIGldt7xirQixmLV9VAeTm ARhYdLvpA0G21gmNBaXWnTXdXXg6/f/+84nACbbqDfRAnexqEZR2l0fab+vjqy8aB3wZ onE7Xak8vhNKFoiFtDwU4GNfYMN1sUsrwaARW4JFhkPkY5aRrrDTUCkmAxPzHx7GT4mP oSfu0L6Mlgwm5EYP6aeXalgyicf+h2EpYhNhVLoJRSG2jL1uR1vr8eK1sCh4jGK9KneQ wPoDtcUsEtreabD6xcYVpshopceaTP0Milen41y0CpCegOiIO/MK9Gt91F/CoTfOwR1/ /z3Q== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rrm2jYaU6VjSR5jAWwto/Q933LDzLYE4PmZxznfl8+1dbeMueVUZbkvLpjCTqp83ZqdGJp2jxM=@isar-build.org X-Gm-Message-State: AOJu0YwillgzCWABNfCHAalSu+ZWkuCROEOJ7UrtRvCB/9hCFQ/mdKkZ BeUf8LVM+33DzQr6osXFEetYk+DmbgMgRUCfyw6lJgNOqdUAOd5wOzFe X-Received: by 2002:a05:600c:4713:b0:499:83f1:398 with SMTP id 5b1f17b1804b1-499aa1e247emr180492905e9.9.1787233315939; Thu, 20 Aug 2026 06:41:55 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdeMAXWMvZG8fduBjNQr3qr2OXTwYPSM8W7gsr5lbZACkA==" Received: by 2002:a05:6000:70a:b0:479:e6a8:c0fb with SMTP id ffacd0b85a97d-482b78b621cls838601f8f.2.-pod-prod-02-eu; Thu, 20 Aug 2026 06:41:54 -0700 (PDT) X-Received: by 2002:a05:6000:4008:b0:47f:8f8f:db74 with SMTP id ffacd0b85a97d-482b1fd9704mr20621695f8f.12.1787233313704; Thu, 20 Aug 2026 06:41:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233313; cv=none; d=google.com; s=arc-20260327; b=OZg+xuTY7PcA0rXAvx+gXwbFneftK2JcVO5FP3BN0oByyr7Lgd3eTA/tSYeN7KmoBW HBT2lkiF/EwxRNkWT+g5LIxqqJ1+aXbPfW8kg9zpKfjWyU2WefcxQUi3XHhZb5s2VkpP msEtM5GuDNRJGrMS4NwwY1PdUY+rcOc8yRaTpoDs9GVplAjx0Ucefzc1Maz1UJKK5V1Z gbI4yzv7W0q1re/EsbDhLtHEHUwZi8kdxl8gYm2jCZJNImzOdTQ9DxbyGOVnhholdz/U +6TILH+KraF43fSfHQYQk+I4UDeYzpNALLhdA56YhSjLBCBQOEf/9QIvlksLOa3w1KNJ +YUg== 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=G3ir034zB1T9z2HBCQOJ244dU3gGtKh1hG2Y5z66W0Q=; fh=8xvFQ9N6ENvazHnylkO2sbgzUV6bRnZQvNiaC5bb+x4=; b=mlpWKkCTUUOQwFVvq+J0k1y2vuf9C8zaq7vrb93IMyZGlSOij2LmowvVNSMqTSuQor nGxAhauYsyejsvnEjvxx78mIX9GAGjYunXwX3lRF5QLSWfFqGcRX3AHQIQ+qUcSig7Pg v047ubyVXm1F8PizLZCIMnqc28UJWpwVnnEaoLKyGygVNb+RV0e+rRNZBO0Q7/Jnj1VU pCe/xPZljsbzJfXqnTrzhUj3IjKf7J4YPM/RDhAFa9A1Bz+klax7BX1HYcbBTP7/LIkx ISvYUa5nfP2LvIc+P8+bw88M3Uf1LI/uDX99JgI0xIInRNDb1I8d3jWx8Wjo9XRTFBIq WqSQ==; 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-482b14bced8si90568f8f.8.2026.08.20.06.41.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:53 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lQ013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:51 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich , Aliaksei Laurynovich Subject: [v9 03/13] meta: Always use base-apt repo in local mode Date: Thu, 20 Aug 2026 15:29:18 +0200 Message-ID: <20260820133934.383231-4-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 means only local URLs in apt sources.list* are present during the build. Any installation of packages is done from local base-apt. So, base-apt should be always mounted in *_do_mounts since now. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich Signed-off-by: Aliaksei Laurynovich --- meta/classes-recipe/bootstrap.bbclass | 6 ++++-- meta/classes-recipe/rootfs.bbclass | 3 ++- meta/classes-recipe/sbuild.bbclass | 3 ++- .../isar-mmdebstrap/isar-mmdebstrap.inc | 17 ++++++++++----- meta/recipes-devtools/base-apt/base-apt.bb | 21 ++++++++++++------- 5 files changed, 34 insertions(+), 16 deletions(-) diff --git a/meta/classes-recipe/bootstrap.bbclass b/meta/classes-recipe/bootstrap.bbclass index c1a59fd2..f853a932 100644 --- a/meta/classes-recipe/bootstrap.bbclass +++ b/meta/classes-recipe/bootstrap.bbclass @@ -39,7 +39,8 @@ python () { # installation afterwards. However, bootstrap will include the key into # the rootfs automatically thus the right place is distro_bootstrap_keys. - if bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')): + if bb.utils.to_boolean(d.getVar('ISAR_PREFETCH_BASE_APT')) or \ + bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')) : own_pub_key = d.getVar("BASE_REPO_KEY") if own_pub_key: distro_bootstrap_keys += own_pub_key.split() @@ -121,7 +122,8 @@ def get_apt_source_mirror(d, aptsources_entry_list): # this is executed during parsing. No error checking possible use_snapshot = bb.utils.to_boolean(d.getVar('ISAR_USE_APT_SNAPSHOT')) snapshot_mirror = d.getVar('DISTRO_APT_SNAPSHOT_PREMIRROR') - if bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')): + if bb.utils.to_boolean(d.getVar('ISAR_PREFETCH_BASE_APT')) or \ + bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')) : premirrors = "\S* file://${REPO_BASE_DIR}/${BOOTSTRAP_BASE_DISTRO}\n" elif use_snapshot and snapshot_mirror: premirrors = snapshot_mirror diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 8d394b05..99328b12 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -62,7 +62,8 @@ ROOTFS_MOUNTS ??= "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt ${WORKDIR}:/isar-work" python () { mounts = d.getVar('ROOTFS_MOUNTS', False) - if bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')) and not ':/base-apt' in mounts: + if (bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')) or + bb.utils.to_boolean(d.getVar('ISAR_PREFETCH_BASE_APT'))) and not ':/base-apt' in mounts: base_apt = '{}:/base-apt'.format(d.getVar('REPO_BASE_DIR')) d.setVar('ROOTFS_MOUNTS', '{} {}'.format(mounts, base_apt)) } diff --git a/meta/classes-recipe/sbuild.bbclass b/meta/classes-recipe/sbuild.bbclass index 6db29251..29a8dd71 100644 --- a/meta/classes-recipe/sbuild.bbclass +++ b/meta/classes-recipe/sbuild.bbclass @@ -44,7 +44,8 @@ EOF cp -rf "${SCHROOT_CONF}/sbuild" "${SBUILD_CONF_DIR}" sbuild_fstab="${SBUILD_CONF_DIR}/fstab" - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] || \ + [ "${ISAR_PREFETCH_BASE_APT}" = "1" ]; then fstab_baseapt="${REPO_BASE_DIR} /base-apt none rw,bind,private 0 0" grep -qxF "${fstab_baseapt}" ${sbuild_fstab} || echo "${fstab_baseapt}" >> ${sbuild_fstab} fi diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index 994da174..4d61e9be 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -153,16 +153,21 @@ do_bootstrap() { fi E="${@ isar_export_proxies(d)}" - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then + if [ "${ISAR_PREFETCH_BASE_APT}" = "1" ] || \ + [ "${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" line="copy://$base_apt_tmp/${BOOTSTRAP_BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" - if [ -z "${BASE_REPO_KEY}" ]; then + if [ -z "${BASE_REPO_KEY}" ] || \ + [ "${ISAR_PREFETCH_BASE_APT}" = "1" ]; then + line="[trusted=yes] ${line}" fi echo "deb ${line}" > "${WORKDIR}/sources.list.d/base-apt.list" line="copy://$base_apt_tmp/${BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" - if [ -z "${BASE_REPO_KEY}" ]; then + if [ -z "${BASE_REPO_KEY}" ] || \ + [ "${ISAR_PREFETCH_BASE_APT}" = "1" ]; then + line="[trusted=yes] ${line}" fi echo "deb-src ${line}" >> "${WORKDIR}/sources.list.d/base-apt.list" @@ -183,9 +188,11 @@ do_bootstrap() { \$1/etc/apt/sources.list.d/*.list && \ mkdir -p \$1/base-apt && \ mount -o bind,private '${REPO_BASE_DIR}' \$1/base-apt && \ - chroot \$1 apt-get update -y \ + chroot \$1 mv /etc/apt/sources.list.d/0000base-apt.list \ + /etc/apt/sources.list.d/base-apt.list + flock -x ${REPO_BASE_DIR}/repo.lock -c \"chroot \$1 apt-get update -y \ -o APT::Update::Error-Mode=any \ - ${@'-o APT::Sandbox::User=root' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} && \ + ${@'-o APT::Sandbox::User=root' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} \" && \ chroot \$1 apt-get install -y dpkg && \ umount \$1/base-apt && \ umount \$1/$base_apt_tmp && \ diff --git a/meta/recipes-devtools/base-apt/base-apt.bb b/meta/recipes-devtools/base-apt/base-apt.bb index 06b1f6c8..05ef9741 100644 --- a/meta/recipes-devtools/base-apt/base-apt.bb +++ b/meta/recipes-devtools/base-apt/base-apt.bb @@ -59,9 +59,12 @@ repo() { "${BASE_DISTRO_CODENAME}" \ "${WORKDIR}/distributions.in" \ "${KEYFILES}" - populate_base_apt "${BASE_DISTRO}" - repo_sanity_test "${REPO_BASE_DIR}"/"${BASE_DISTRO}" \ - "${REPO_BASE_DB_DIR}"/"${BASE_DISTRO}" + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && \ + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ]; then + populate_base_apt "${BASE_DISTRO}" + repo_sanity_test "${REPO_BASE_DIR}"/"${BASE_DISTRO}" \ + "${REPO_BASE_DB_DIR}"/"${BASE_DISTRO}" + fi if [ '${BASE_DISTRO}' != '${HOST_BASE_DISTRO}' ]; then repo_create "${REPO_BASE_DIR}"/"${HOST_BASE_DISTRO}" \ @@ -69,14 +72,18 @@ repo() { "${BASE_DISTRO_CODENAME}" \ "${WORKDIR}/distributions.in" \ "${KEYFILES}" - populate_base_apt "${HOST_BASE_DISTRO}" - repo_sanity_test "${REPO_BASE_DIR}"/"${HOST_BASE_DISTRO}" \ - "${REPO_BASE_DB_DIR}"/"${HOST_BASE_DISTRO}" + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && \ + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ]; then + populate_base_apt "${HOST_BASE_DISTRO}" + repo_sanity_test "${REPO_BASE_DIR}"/"${HOST_BASE_DISTRO}" \ + "${REPO_BASE_DB_DIR}"/"${HOST_BASE_DISTRO}" + fi fi } python do_cache() { - if not bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')): + if not bb.utils.to_boolean(d.getVar('ISAR_PREFETCH_BASE_APT')) and \ + not bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')): return 0 for key in d.getVar('BASE_REPO_KEY').split(): From patchwork Thu Aug 20 13:29:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5391 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:06 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f185.google.com (mail-lj1-f185.google.com [209.85.208.185]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg4HZ013718 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:05 +0200 Received: by mail-lj1-f185.google.com with SMTP id 38308e7fff4ca-39c6d2d3930sf754311fa.2 for ; Thu, 20 Aug 2026 06:42:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233319; cv=pass; d=google.com; s=arc-20260327; b=gHEWnPPqbJSwlfcxh0NN3LHzf5h7IM86hWtUAtnaHsRIr9fQoZB/qq1/qy/taC9pj2 eP6ofDdAbNZ62DmNzysjou74Kp37QFssP+rVe96/2BGc9hKo9CXm9okNbvVuKkmklzH6 4sgE8XqkSWWaVQOtdl7gH36JYKvMgQtBpwUQG3VU5evOvCKBDfVz7aD+NBDdl0JR5XNO EnLczcZi6gdabsDUAat1ogRBHYHNZoksB6qiCX/KplfdFIXmQZ+HRWONOdl8Rdka5hoI eoyei2jFFND8ygXkD7CQXRGMY2q8RUwzGYdIzVp4H74V7qypdGCBcmGN2e7/fSTg7mHs cAMw== 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=+G+QoYq7ba7tWY47v5XooyHI/syF2V+0pi89A6IyMcc=; fh=HlrPHeUEUjKZSmTw7P/K89ao/1yLhsusSNhAXfQ0uV4=; b=qF6YjYMocqvVivPNfwhGyO/UewQRSjerJ3JzSOOP76EZWawaSnUbVwnMI0SdVodRmD cKLc5GqY2d5npdXEBDfMAG2gwFybcwFYRsgs6Ir3e5OXfykOJqgmItjPUwBsBdTSyyr7 A9F8+MKGzgpQVusocurRsqemg2nKlD/5hmyHTyzOGM+svCqaO6CEIb4Gxb5RcnF47Pbr Qu73G3rALTY7ezeAtOcgFPk74NnWnmRqfXw/jMvIa970cMg+ydFmse9zlxUPt0ABkFPt nz0j4UAYwN8wl146jgNyDQRzimv+3Pk3/NuIHS67tHgs/JzTM7ni72ptK07N2G5M6FyV NFvQ==; 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=1787233319; x=1787838119; 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=+G+QoYq7ba7tWY47v5XooyHI/syF2V+0pi89A6IyMcc=; b=PXwQfytFjsNaz38c3kZajR0OjMey2LZbm+TQI6NyXFyE52nMytUyQMq8n8S6s7HCO0 VbRA7TJ4gz4h0wqhRv7eLX+0RMzVKofVdOZIzHDNy78b9EOiXc5flAAEqsemB0Ifn73m +DMgDY9TyUqlQskjqRlSm9b3n/SFTo6/M8686QTlHDa0pkDJ3rq/bMH30a0eBCM1hmh/ qqC+nxrQDDQnJE7J21dI61hFgrb5l7yzoZd9N6RFkenivA51QiXgssFv2OObJJ9A36IN RroLqmfjz0lNtgZeENxjMbHD84kFD9c8s9M14XYBjVpo4ir7snEDTKBOW66eKN9kbgbU nYIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233319; x=1787838119; 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=+G+QoYq7ba7tWY47v5XooyHI/syF2V+0pi89A6IyMcc=; b=jRdsx8cgET8qyQQ6pjppaKKCO4cktQCV7MwsD3rR9oZ00X6i6fRnGZCgLgUlBrjaDg FSo9P87SIrDEDriSW+2yb4T/+x9o/cA2Qo1CThz8mJeSCDxs+lMIV2h+k+lxhA3kpTtA IT593xQ0A7Q7FQJK4u4m+7ghULRRWRha40hp0pf2pLwul8MXEutj9A4crDQ9lqRg8WhI G4qddKYMOXpBN9UzvZPFMs5mgO1wuM+kNiFRSnyhEMP39dJ2ej1+242pHJQzI/aCuKWj +aUt2g5l4blWjvw3+bvY9F3kwR7YeyBWZWIvkhqVspceR9X8RO6ZZHjAgCoMFCEI0FFI 8+eg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Ro6e7IBeIXp+cqdMlJ/Awc3FrNlEnWIGvcMvwSPRL6BZHfxuhL3RuaxYEG6F+jT7j7siztYVj0=@isar-build.org X-Gm-Message-State: AOJu0YywjXxlrjzgdGnUnWGd37i1KtjkLxBaVj09IzxiarnK7WKWmOsv /oyMMmkhRr8uVM6gNUhq7lZVt1R3qIUJKbX+yrUl5NJXBOJZod4kirMm X-Received: by 2002:ac2:51c6:0:b0:5b1:5e89:30f6 with SMTP id 2adb3069b0e04-5b478bcb669mr2267310e87.3.1787233317755; Thu, 20 Aug 2026 06:41:57 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLddzaO97rLVGv+7KTPhJnBRlG1kyp3+QzypKvvu4N/H5UQ==" Received: by 2002:a05:6512:1543:10b0:5b4:583f:9f16 with SMTP id 2adb3069b0e04-5b47d51c1acls260833e87.0.-pod-prod-08-eu; Thu, 20 Aug 2026 06:41:55 -0700 (PDT) X-Received: by 2002:a05:6512:3093:b0:5ae:befc:97a7 with SMTP id 2adb3069b0e04-5b478cfdcd6mr4197557e87.13.1787233315260; Thu, 20 Aug 2026 06:41:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233315; cv=none; d=google.com; s=arc-20260327; b=RsofreuedphDg2bJW2kCV6S9vR/0SdhodGjDyeO3HI8EofkWt6J+GPiQxOftUGQ5f4 J4K+oa0ogB5vTWPu9HTI5iqWpaHWZW3+n7MbqFQdLGcOT6RQr/fH79z9BqtrRZnr5RrV YNlKNOEEhXQnmogPYblSD4jbOex5+bEBxOEqKO5x3f90eM2lBeaTQ2OQleNb25OV1O5E +6tMwRsm1sos4B9qgQ59N1ZqQQ4J1HtC9BjfxYnw2WL8hNSby4BAlN6q8zIZwkILqlcb 9izD6SOZECJUjrXLLArbWRuXGbfTeqsN0en1HDOaqj1mcfGvA0kGbmpbUFPErtyFD9eX f5oQ== 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=c7tUl8Ha9JUC7r7/gBbyym43wDKTBFWPjeZIpPemO9E=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=IHtF0mktTmLm6gpBMBVYZp+AmCSXHr9Puy7k+MaGzBQry/8kuKVp07MyapQ2wLstG9 G7YNm7hZfmHUIyr7lN6QBTlxI4upA/PNJc/cKQBH5TurRy8UZZycMwEVgcGn3EsRDUwZ ULibUUSpjtAtdWWZzIo6f+6Qpsq3/bXI5g4lPcVuEgP8V56c7DYtv/Mxqz+1I2UI9CXM xMCxjmYMnahhklXRKLutwgsdsApJlVr3whqlCeIHZsVbiDW67A2VzrYsJ9dHvfqrYFq4 5L7q2Bkmfs2EYea5aTKbWEGueMxranLJ2QHDtt41OrJ+gAjFz/+jc7pjMsdpih85Zj3T O2bA==; 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 2adb3069b0e04-5b47881f116si108241e87.0.2026.08.20.06.41.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:55 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lR013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:53 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 04/13] meta: Use cached base-apt repo to bootstrap Date: Thu, 20 Aug 2026 15:29:19 +0200 Message-ID: <20260820133934.383231-5-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 makes local base-apt repo to be created before bootstrap task. So, bootstrap is then done from it. The required packages are downloaded via python-apt and reprepro creates debian-like repository from .deb files. For debian targets host keyring is used while ubuntu/raspbian targets use keys specified by DISTRO_BOOTSTRAP_KEYS variable. The goal is have workable base-apt repo before first build completed. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/bootstrap.bbclass | 44 +++++++++++++++++++ .../isar-mmdebstrap/isar-mmdebstrap-host.bb | 2 + .../isar-mmdebstrap/isar-mmdebstrap.inc | 2 + 3 files changed, 48 insertions(+) diff --git a/meta/classes-recipe/bootstrap.bbclass b/meta/classes-recipe/bootstrap.bbclass index f853a932..10cb23be 100644 --- a/meta/classes-recipe/bootstrap.bbclass +++ b/meta/classes-recipe/bootstrap.bbclass @@ -16,6 +16,7 @@ BOOTSTRAP_FOR_HOST ?= "0" APTPREFS = "${WORKDIR}/apt-preferences" APTSRCS = "${WORKDIR}/apt-sources" +APTSRCS_INIT = "${WORKDIR}/apt-sources-init" DISTRO_BOOTSTRAP_KEYFILES = "" THIRD_PARTY_APT_KEYFILES = "" DISTRO_BOOTSTRAP_KEYS ?= "" @@ -223,8 +224,51 @@ python do_apt_config_prepare() { aggregate_files(d, apt_preferences_list, apt_preferences_out) apt_sources_out = d.getVar("APTSRCS") + apt_sources_init_out = d.getVar("APTSRCS_INIT") apt_sources_list = get_aptsources_list(d) + aggregate_files(d, apt_sources_list, apt_sources_init_out) aggregate_aptsources_list(d, apt_sources_list, apt_sources_out) } addtask apt_config_prepare before do_bootstrap after do_unpack + +inherit debrepo + +debrepo_bootstrap_prepare() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + debrepo_args="" + if [ "${BASE_DISTRO}" != "debian" ]; then + if [ "${BASE_DISTRO}" != "raspbian" ] && [ "${BASE_DISTRO}" != "raspios" ] || [ "${BOOTSTRAP_FOR_HOST}" = "0" ]; then + debrepo_args="$debrepo_args --keydir=${WORKDIR}" + fi + else + if [ "${BASE_DISTRO_CODENAME}" = "sid" ]; then + debrepo_args="$debrepo_args --keydir=${WORKDIR}" + fi + fi + if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then + debrepo_args="$debrepo_args --compatarch=${COMPAT_DISTRO_ARCH}" + fi + + if [ "${BOOTSTRAP_FOR_HOST}" = "1" ]; then + debrepo_args="$debrepo_args --crossarch=${DISTRO_ARCH}" + fi + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + fi + + ${SCRIPTSDIR}/deb-repo --init \ + --workdir="${DEBREPO_WORKDIR}" \ + --aptsrcsfile="${APTSRCS_INIT}" \ + --repodir="${REPO_BASE_DIR}" \ + --repodbdir="${REPO_BASE_DB_DIR}" \ + --mirror="${@get_distro_source(d)}" \ + --arch="${BOOTSTRAP_DISTRO_ARCH}" \ + --distro="${BOOTSTRAP_BASE_DISTRO}" \ + --codename="${BASE_DISTRO_CODENAME}" \ + ${debrepo_args} \ + ${DISTRO_BOOTSTRAP_BASE_PACKAGES} +} diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap-host.bb b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap-host.bb index fa4b76a6..52563d33 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap-host.bb +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap-host.bb @@ -17,3 +17,5 @@ require isar-mmdebstrap.inc HOST_DISTRO_BOOTSTRAP_KEYS ?= "" DISTRO_BOOTSTRAP_KEYS = "${HOST_DISTRO_BOOTSTRAP_KEYS}" + +DEBREPO_WORKDIR = "${DEBREPO_HOST_DIR}" diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index 4d61e9be..c452035f 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -147,6 +147,8 @@ do_bootstrap() { fi fi bootstrap_args="--verbose --variant=minbase --include=${@','.join(d.getVar('DISTRO_BOOTSTRAP_BASE_PACKAGES').split())}" + debrepo_bootstrap_prepare + if [ -f "${DISTRO_BOOTSTRAP_KEYRING}" ]; then bootstrap_args="$bootstrap_args --keyring=${DISTRO_BOOTSTRAP_KEYRING}" cp "${DISTRO_BOOTSTRAP_KEYRING}" "${WORKDIR}/trusted.gpg.d/" From patchwork Thu Aug 20 13:29:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5390 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:04 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f63.google.com (mail-wm1-f63.google.com [209.85.128.63]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg3c6013667 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:03 +0200 Received: by mail-wm1-f63.google.com with SMTP id 5b1f17b1804b1-495529a93f9sf19750465e9.3 for ; Thu, 20 Aug 2026 06:42:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233318; cv=pass; d=google.com; s=arc-20260327; b=Y6ZiSSlKtfo6Jwm/4VCl+2iD2Llb5Ri5fLI1Gag2oz1qwD83yO4jSpzPyYPDaUoPFs Vb8m8lYMCsFTM39IHcalOnrC59JawvY1wzl2diHzXc7m5nyCnNF9uEh5WlcZXJu3NBEB Be6MQJavlgORZx+c0wOKcmnj1IssU7/PY9zFJehU1kzy8vurBPwrZkai1PsdFudIEFm2 xWISbnZCQpn6jz4CAOMwVAS7fGVVCwayPEZL/EqqNKFvjg+Wpkqd8+qz92Sl9APUxNVd Km8pTHf2sBZ07/62rsI2T0+k4Ya1bpZ0xZL1oOwhEqZyO15lEvdFS1oiTUjY3NQZXNpg 5CHA== 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=tTN6Ftkg9iMoo9o0fdP4Re/ord1gauZBBGAo+0Szxg0=; fh=NuYtVPXMtxZVzEG3YUpzKBmC9LrwLRs/FDscfrlEpAU=; b=eG/+8JzwSACq2wzAa109Mv3ETB8WPdjzmvJzqGfJ9Cwri3JUXzw40M+QbItudh2paG bjam4jTx6AaRJM9B4f5ZKdIJcZRZpfZiP+Ab+OEoyxYNyLEoLmx1f+fYp8VAIFSZng8Y FGASXxQlWmccG3LdVomE0LLgjpadgRokuTg+MAXq023cSbkzcE3yxpzkOqxPUz7Nq9GP l4TJIqxmX50ngytjln2MKWsMU8buExtKnk2g6p53h7teIjKFI3GOhun11Q6HZhzuPN7a facRYrCtvdFK7FpNM9t4gRrpyG0NajZTZVwFFEsfc6tAdFmFrLl6pZKbWB5IA8cPxtoW kdGA==; 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=1787233318; x=1787838118; 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=tTN6Ftkg9iMoo9o0fdP4Re/ord1gauZBBGAo+0Szxg0=; b=XwkCMc0MrvZNbDl+/l7ufSZthPIxtaOaEIPWdeIoJrBR7SzmyQHe4GYu86Kvh/+gA/ Hm8FvEbxYzzQK38VFXIkYypQ2XuzEnLvZk9RkYxZDERecBUi+7E2X0AcZt4roVV0WZj+ dPoA5bu58vcbF1nwezQa0MesDqKpXMuQgP16c6nGlY19zNGqh6JxuRpmIT2xs3IO5apX 9GTcA5dSyGbgIMViTTxQeYJE43MkX4VjpLPvAqGH/1K45OeQ/l78FV9v+RgAmj4Tdeus ZmBeYendIVl2IVHw2gZZXY5bYJCLiEyiYHGGOgWqxie9D72H/cpawVWbqZik4eZl/TEF QIMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233318; x=1787838118; 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=tTN6Ftkg9iMoo9o0fdP4Re/ord1gauZBBGAo+0Szxg0=; b=H3kiVHtmlErYBjm5lNLiuz7X6ec5m3Pa9U1v9FCTstFw8LYbYP0/5LhzPznnSN6aKo 9K1P6LT8GiQ/co4bQ/COFKF/vG8vkZ9gpl1KE4OJCXyawyfy4T9gbA8xUGjTHK/8lJtW t47tDrS4GD63uHWaPDxz4pqMVBKnNlFKFvXbvmXD6D4TfBLsnMHNA/xcajC+9JaiggvK BXPrxQzRn3xdPZQnMtidZMOcMudEoeeoFcXnFOggRf2gw4KmdxrbpUoHlqbX8QmLE3T3 2CmAFM4nASbB22ZMG4QVK5K+it9fduvNr9lODc/GlVtSEcRvm6K0mAK8JL//PT32eXz7 pf9Q== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RoMMJ+hrZo0vHVx9VB/3CAs6c0UALyIEhyy2Zut0z3EfnP07SJ9b8ECGms2PeAdVVSHX+f931A=@isar-build.org X-Gm-Message-State: AOJu0Yw8oy/y/bTx3ammHi6Kdz9N292tUEg7QqwV1heC91A57eZAUdQ8 2kOAUl4K97NQLuEBrAbfJm5A6nyWOywfpJQ7OUI1whq4sho0HmMS+fmn X-Received: by 2002:a05:600c:3f18:b0:498:1595:be7b with SMTP id 5b1f17b1804b1-499aa194df0mr242788465e9.4.1787233318467; Thu, 20 Aug 2026 06:41:58 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLde1KzG0ygyM68iYk2Ncq+F6h4hOhgUtS5v+7M1PXD15HA==" Received: by 2002:a05:600c:1392:b0:495:47b8:80f0 with SMTP id 5b1f17b1804b1-499b0595656ls9170875e9.1.-pod-prod-04-eu; Thu, 20 Aug 2026 06:41:56 -0700 (PDT) X-Received: by 2002:a05:600c:1908:b0:499:5210:c537 with SMTP id 5b1f17b1804b1-499aa17d6d8mr204004735e9.1.1787233316372; Thu, 20 Aug 2026 06:41:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233316; cv=none; d=google.com; s=arc-20260327; b=csTouWAudnxxuUNcyT75VeBIEgOf9xAds4EBQd6gvpH0qfQE5sZ1gFIBqQFriwnpLc otlaIxOJsCNlfdJlLHz395QBnrqC3yDemC+7t7iVYFaw6Ji/Ex6avZJGc6ip8Pv9JABV HXOj6O3gfrJ9O0VOvw3BBaPxn7K0ehclnzK0hqCw7xYMqIpJdufM8sTV/EINmLRrx+tn D1Gz4qWCUzgaHztqhONV5rZfvo5D4RL4cv+VU6PGJfzDONTd2GdlOQJ7iA6ZHHsl5/xW yQrdnebHxXZNhRYYITLrGaSzOOQ3e9Y8V0s1Dw4uTFIcNEZsLFR5uhU8N3uIp1q+dY63 MJZQ== 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=V9K++Fw/aAiCliUdex4fEMod6D/MEEYsuMlBBuZvG9o=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=JoKrDwZPDYfZarwdyACbbqEA+Et4fdVMmVaJ5HeqkczkLgtrbiRtQMPDnpLq13vmeX FD6yuPvto7SNYcgjzETcWXLxKXpbmwJ9QzOgIrgAoDIJhmTDAGXqcZ4laiqE/MiX3RcD zAQ2RszJjYdG3JOTdtWD8hmzdxsR1Z6iK1MjZQqK7jB2qxWD8kZ3xYypH081o9rvfX+M 4nOhUSpllSp8HLFlQYBnNPlubr329zaEsRMe3JcMg0yevfCQod7yetJMikD0z4BuOM/y rrFijZPo2R7fasn9YC4JbHuKr8+5NAGWPBtnpPOUJ0zQSDpSunlL7FohE5F6dGf+Dl9g KkgQ==; 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 5b1f17b1804b1-499a9e70e00si1107445e9.0.2026.08.20.06.41.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:56 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lS013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:54 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 05/13] base-apt: Predownload packages to base-apt before install Date: Thu, 20 Aug 2026 15:29:20 +0200 Message-ID: <20260820133934.383231-6-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 | 5 ++ .../image-tools-extension.bbclass | 13 ++++++ meta/classes-recipe/rootfs.bbclass | 5 +- meta/lib/aptsrc_fetcher.py | 46 +++++++++++++++---- .../sbuild-chroot/sbuild-chroot-host.bb | 2 + 8 files changed, 72 insertions(+), 9 deletions(-) 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 4a81787e..91b17768 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 a42703d5..323202e4 100644 --- a/meta/classes-recipe/dpkg.bbclass +++ b/meta/classes-recipe/dpkg.bbclass @@ -117,6 +117,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="" @@ -139,9 +145,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 b/meta/classes-recipe/image-locales-extension.bbclass index c03f34c0..32b5e19c 100644 --- a/meta/classes-recipe/image-locales-extension.bbclass +++ b/meta/classes-recipe/image-locales-extension.bbclass @@ -6,6 +6,8 @@ # 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" @@ -29,6 +31,9 @@ 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 '')} 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 < X-Patchwork-Id: 5392 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:06 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f60.google.com (mail-wr1-f60.google.com [209.85.221.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg67w013767 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:06 +0200 Received: by mail-wr1-f60.google.com with SMTP id ffacd0b85a97d-47fd4ee0ac0sf1890692f8f.2 for ; Thu, 20 Aug 2026 06:42:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233321; cv=pass; d=google.com; s=arc-20260327; b=Tq6x0QpG6pzSfE1sQ1Z0eF6r9tA9bB94h5FEecDhbqBUNH8egMVZ+aL+H/TiljXB0T kNZ1nPZeqoUMnZB8mpPtcTA3uQ0Saa662VLZ8GJ901teq5oFPwPTX4p2SaLEXgddPBUa KTP9U82CfS31hyLJz21YtR7fxgSU/UYY0a9chnZRSWpuGT0TilPRLUz+DeFJbpuHw9HX VOW+GYwv3XhvcAiCMlmMOcfJNMxsoDhmc1XtQcOvZ+aoqvEmUvqp5ENpO0sStIW3hsqu xTJvzWJZKYB39Z2sGFgHYP72Qh0Wl/GJ4i+AC6b1usIOFA/QL+s6+hsvSmyHJJ9odsXV xdLg== 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=WcGwt7Ss+IzYOmc3MEGQYk0COfAWwdHq3osdelLl51s=; fh=Re0Dcn+zGv6csvnzz2zTSEi71mld73PeWDoAj6CyWAE=; b=TEuX9u5hfaTz45AHRZGvFiXqHtHKYTTYt6bY27J9wTxh48UN6lQfgIgeEWbccvp4j/ 5IvhjsQpj4MI5uiZH8Vp8LqACpedHgW6D0NFsNFgsMEX0MBhWm3TIl33KRqPIw4/G20L S06PyyEicWOi7WIiyDF2kWeS8VOacMuhYdI49r3qoSgRmpZ4xFtum2zFmsWIWHcmTCV7 vm65SGvNFfTml3cGlp6iYh/LDByi5E9ST3a+McohIZovPzBLGId6XAIcQeKe/upQ7KV6 YVh4oBJaRM6+YVONrBootKBYDIsfx1nsnAZ/tWJWbS4hGgCOs6kU3osB69CJ63fj+EyC O3uQ==; 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=1787233321; x=1787838121; 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=WcGwt7Ss+IzYOmc3MEGQYk0COfAWwdHq3osdelLl51s=; b=Q+Ntr43Jj3D/nKlnocWvB1xANvGoVSba+jC4QaEn9kbmJxnuxqS5DGp93bCpsLVV2B iDtBy5pnYklVKZKqqSMfg6tReG4rDF3kFcDguWokqA8MI31EilWSf1SJM2DWGHehGndn UeKRezENH71rHPFzQgDnlD9SAwC8bFiqA+0Pnldu78XA6mfY7u5t8o5TXNd8f1CJPd7h yti+1MyGV4sTNbKvGi6aRFWQrmGPuEYXapT9xDJRE+v6HxGrplwCJVQsuXRlG6IE56M+ AzYn6slJTvetWbaJGW3QjPRg/MQFH8clKwObmc8H211wnBeOIBm1x2CUbCCKBgPuXU4k xMOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233321; x=1787838121; 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=WcGwt7Ss+IzYOmc3MEGQYk0COfAWwdHq3osdelLl51s=; b=GGz+6njSewOhooQWlFVt9nsH5oOJMRyBZsOe5CRnHZAvWN78HSvxdjzFdqBdnl2rJ5 O4Elbuw0uRj6TUWkkYK/Lz1V0Nh7UUC9YajYY2MflRh2UZ7aFq4J4DLDSAm+6Ph/v3qG dTz9N12kay9H6xf5KmqowFkS+IxkK0O1GUgRHQUCc4ALIuzxlLe/JMYNHu3qc/UeV3Ef e3cSD/MhQSrp/Ilyst6zYNW7Yp/0E1M2w9YLM90QCN0H2j53SIr2W8ooSEOk4gC8XIxC wkLCURs75RnEOTd4V5f4iu23Mcxt/osn7ogY9SgP9/fM8+Zlh73OGVeiI5csMr/G7nkS chnw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rqt7utJjWO/LtUZivBkY36c4kH/XWb9BU1Ae+CFw4wcaFe9nlNRAK2nJP/oh/dp8SpxT2/XgGA=@isar-build.org X-Gm-Message-State: AFuF++l0ud+EqD9S9t1orv5iRbYC0oWYn90UDMLQ/V+e+8cTVW6OHb2c tBMJx/JQdZx83NKfS6lPxG4GLEQzWyNz+GEwdpvIDez6fNxmEtPuDhx5 X-Received: by 2002:a05:6000:4b0a:b0:481:5f3c:39d4 with SMTP id ffacd0b85a97d-482b1e84439mr24565715f8f.1.1787233321059; Thu, 20 Aug 2026 06:42:01 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdcPNWHCtGrFdRPGWSZBhY603ZOJzAEalqNsuNx/eoNe6A==" Received: by 2002:a5d:6f1e:0:b0:47f:4e3f:9fd7 with SMTP id ffacd0b85a97d-482b78d1677ls934398f8f.2.-pod-prod-05-eu; Thu, 20 Aug 2026 06:41:59 -0700 (PDT) X-Received: by 2002:a05:6000:41f6:b0:47d:eedb:ee62 with SMTP id ffacd0b85a97d-482b1fd3b69mr25632836f8f.14.1787233318906; Thu, 20 Aug 2026 06:41:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233318; cv=none; d=google.com; s=arc-20260327; b=l1bWYPMbBJr14pXy3eg+b5Ti3UkxSR+4QYENb1j51kmU16Zh6kiEeOvrJVsiIopelG zmvDrZiSKU0T6EV8n7O2WA0vNwEQjuOhP+y54Zd/EiCVqFu5iSA1s42q+hHAlV8YGaFg spgack+5iLZeNGN+lZO7nAI9gI6Y+0nc/AaJa0beJSbwQOTFgSxNp6DdMB9exTfJ5jFm wt+v+HZZqhZ0gWyLNMcOvCncMXjhjxwJHuRWzp5SXuK/1vtGh0hFbtM5P/vbKvl4YDaV N2T6TGdZrfNi24gBsEKeBrl4pZTx0/EOPHlE4pir6U+jjKpACliWIMW6j1Ttse2iorJe 9XyQ== 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=ktDVAHWQ+i3P8o/c+MKbAEM8KNhoe4y+/bu4Wo8SlQM=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=j9YOWKE9LLmAPwcgTutrlgJkf4GQPfF4iOpyfEuRX5b0xPtBH8Kcalwh/Z4Qfvv8dQ 6II/oQ20xuF5UV9Kda3XjLdtTbCtc1A/R2069zA6kLXui83nDWzKGwSJ5xMXdRITJt34 FDDRf54BSTqt3Df+z7fvoxJaUlhDQZr7Diu6LZQurZcU3oDEr62vcqE6uVsvqxhGRNxf D8DWZAxB5WOxeixZ5Mnt0BPwBnu8GAL0JyqkTlAVTAp8d2ka9tGhj1/n0i+624U9Gxix dPJl8Teca6N+3pmK2mmfb2tYL5R2NOfwAiD4C0UBRRSu/vvfROZGEm1zj0Cu2nXW2cMJ fB9A==; 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-482b10faf54si107404f8f.0.2026.08.20.06.41.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:58 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lT013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:56 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 06/13] meta: Add cache-deb-src functionality in base-apt mode Date: Thu, 20 Aug 2026 15:29:21 +0200 Message-ID: <20260820133934.383231-7-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 Fill base-apt repo with source packages. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/deb-dl-dir.bbclass | 41 ++++++++++++++++++++++++++ meta/classes-recipe/rootfs.bbclass | 7 +++++ 2 files changed, 48 insertions(+) diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 60e2fecc..7e9f89b1 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -27,6 +27,47 @@ debsrc_source_version_filter() { | sort -u } +debsrc_fill_base_apt() { + export rootfs="$1" + export rootfs_distro="$2" + mkdir -p "${DEBSRCDIR}"/"${rootfs_distro}" + + ( flock 9 + set -e + printenv | grep -q BB_VERBOSE_LOGS && set -x + + # We need temporary files for our lists of source packages + # trap exit of this sub-shell to remove them (this script may exit abruptly + # since "set -e" is used) + avail=$(mktemp) + wanted=$(mktemp) + trap "rm -f ${avail} ${wanted}" EXIT + + # List all packages known to apt + rootfs_cmd \ + --bind "${DEBSRCDIR}" "/deb-src" \ + --bind "${rootfs}" "${rootfs}" \ + -- \ + apt-cache dumpavail \ + | debsrc_source_version_filter > ${avail} + + # Use apt-ftparchive to scan all .deb files found in the download directory + # and get the pairs that we wish to download + apt-ftparchive --md5=no --sha1=no --sha256=no --sha512=no \ + -a "${DISTRO_ARCH}" packages \ + "${REPO_BASE_DIR}" \ + | debsrc_source_version_filter > ${wanted} + + # We now have two sorted lists: source packages we want and those known to + # apt. We will only consider source packages that may be found in both. + comm -12 ${wanted} ${avail} \ + | while read src version; do + debrepo_add_packages --srcmode "${DEBREPO_TARGET_DIR}" "${src}=${version}" + done + + ) 9>"${DEBSRCDIR}/${rootfs_distro}.lock" +} + debsrc_download() { export rootfs="$1" export rootfs_distro="$2" diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index d1f24d68..bdca9b42 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -489,6 +489,13 @@ do_cache_deb_src() { run_privileged tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} + + debsrc_fill_base_apt ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} + + rootfs_do_mounts_priv + debrepo_update_apt_source_list "${ROOTFSDIR}" "base-apt" + rootfs_do_umounts_priv + debsrc_download ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} run_privileged rm -f "${ROOTFSDIR}"/etc/resolv.conf From patchwork Thu Aug 20 13:29:22 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5394 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:12 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f189.google.com (mail-lj1-f189.google.com [209.85.208.189]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgBeJ014048 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:11 +0200 Received: by mail-lj1-f189.google.com with SMTP id 38308e7fff4ca-3a17b9d389esf8894921fa.1 for ; Thu, 20 Aug 2026 06:42:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233326; cv=pass; d=google.com; s=arc-20260327; b=jM69RZYHi6Lsw87E8RkiwMB+20f35Up7A7sgKioBPxzPQdGVj1+Ud+jU8IjRu8iKeP frAiOQcroAdPjBJSWXm2iMR0QgR7MsZgIuoNbg5MEJqNgML5W70qMKH6kNX069lnMNCB 7C4hmY6RQV0jNP2o6O9Cz1ZunU7eUJ9iuUq2j2c4IahYA/Cb6PN05L25e0p3da6+IekO /n/HHoS4OET/Kywm9L+FbBylK0PzynPCbW7UoKYdb52pYUxUzjxSZ+HdzkXENRNiEsNR W1dGxd7CzILSOgPyq9tLAWdW4MkTPLndyJoDNuD8XmxDa+b+Iz5O08dHKaw9X9N51enf d9pw== 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=GsWhdeRM6b8xlHXVVRvR91B3/j1cKNOLHAF3hlHMosc=; fh=4DwTGQMLNyBrBH6I4bX2j0zsZECzOwaLPj6LcpYKv30=; b=K6OLySRBxKoIlTC+FvmazsrpvbyIYbRW2PfQBpudVj90skiafOWEkwkLX7olu4IGAa wSmkSgMlMECLvMDeumahJrnXfN/AMyOoiFntfUMW6GO8QZUTWtDjKaI9F1O4zGjsnW4/ YRN/pWR9XU2/K60mFRGkyXhZbpTc2ATdsKhK+cIcjPVw5MNLUhRF5Q4kR9uf7BngFrTp mlHkBQ3Xib4ig0meRMFWY29OmSDXObdxNYLs/j2EPlmaPk7eKVwVPNDU/PpRDpg0AonL 93vckhfSUeefXxXJBueDG/v8+c6QLXIPHEyl6I1TtwMQsSA4jG99ACwlbRQ7gfHu3Yu1 br0g==; 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=1787233326; x=1787838126; 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=GsWhdeRM6b8xlHXVVRvR91B3/j1cKNOLHAF3hlHMosc=; b=Y7ODrDq2nK9G5eTn0Ej8uGJotJMzpG/x2aQgW6EvdWFX2nn8TSRGurrcq2mGFg+k81 NfxAE7TK1eCi65RGxp/s+zg3Unmpamc2LM7BuDDYXU98NmQlcnWv13VnTf4xR2T4cbgm R446t/c+RsB0XuxwIpn++aS2Jg5kDQICicY7su4fpWfurHVivaBB0QQRl7/1E6/z8FJl Cq89WHVVB388AlfRMZrjY+CotV60G2sxn1LOWuQhjN6XgbqjyvriR5R1NDa3UDowL7ZA SCF/Jt6+dSqzNAG7sbtqcbFnakGfLexcIZk/te9aT9jQB0pdvRf/+6f47Uo8zKlzsNfB RTpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233326; x=1787838126; 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=GsWhdeRM6b8xlHXVVRvR91B3/j1cKNOLHAF3hlHMosc=; b=XNvKbSu/A+T5NYlbMDfuZusFtjCBfQwSe5qa75b2p/I5ZSlD4pe0dhgxgmQg0jYeJH 8pGk7KDhfr21CjYoFTsbSIGQ/rJAvUWgrTyIrIFHL3bqbgxQvHj6+LjRxU6nOEE60WST Z6fx/6jAE24O8UuaNJjzeQn8W0ZGngrn425LL8e0U0D88eKdT/CMABqW9TkJcDcPi/lS +m2U17j2jLy8Un4eSH+8CPoW17dR5ShIWd+tU0Eha0tUgPMXCaPMVGXqvonasL87Hsrv MKbAq40Vy6H9cQGtXWn9w0wDVVHpxm/DOsRsOnLatDk62HAC2lwo2DY5gEBi1urjQPIR TXAg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrI5BijRvUarMxPg9I/C9fdpbeECE78iT87bWGmImhJbD2hNtKheT3nxoqRF/TQDFEgCRBf6Bg=@isar-build.org X-Gm-Message-State: AOJu0YyPnGZg3HthiZvii1NEl4YBf7IRyoKXQZVZ/k+RR65E4Kxa5U/F 7vXDNafvLkLuszW6ad1hwN0aGHh1s9tM5rZ0GlKJlSjBBwtL1pCo9dFy X-Received: by 2002:a05:651c:a0b:b0:39f:27a4:8037 with SMTP id 38308e7fff4ca-3a1896c5227mr28836991fa.5.1787233325111; Thu, 20 Aug 2026 06:42:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdeVlagi6IfI1hZQxvwH+ml6TnNzEDPjJxy721Jt1YYigQ==" Received: by 2002:a2e:950d:0:b0:39e:e6a4:c6d3 with SMTP id 38308e7fff4ca-3a19601b0d6ls3278311fa.0.-pod-prod-02-eu; Thu, 20 Aug 2026 06:42:03 -0700 (PDT) X-Received: by 2002:a2e:bc29:0:b0:39c:7ae9:daa4 with SMTP id 38308e7fff4ca-3a1896d0353mr33502431fa.6.1787233322466; Thu, 20 Aug 2026 06:42:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233322; cv=none; d=google.com; s=arc-20260327; b=Q+jETCCeOsiUfh+peYsy0ZIAcsbgxSv2BM+zRqrxR4eiXLQJpUXUSezczNseEp1Nms WZ+/ozbl4Ezkagwgj0WsD9Sj2kP2GZRY9xBUTmVvD2ZX2bmQdBgCvtfoRcULK78kfZz5 wJSGD20VhiibW3cjoJf1T8IUIRCVsAaqUMlxw57VI6z6MNQHHV+QjSf6GzlVxn9mhXrq tvTtuMbB+x9slL6h0L7DZB9vTnqnqfGRDtnvmRadvgWDcHYONzhTEavgPUoA56b1cB9o jVlVKdH3PUqF1N8OwPWxbeWvtB/SvFHMk+nPL/MAgBZrxzgm1kJV571Ty/iuX7zAi0jP V7Zg== 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=Pb17nx53D2NvJqqP5xnl4+2gn/g0GWgUhfme0UNqH8Q=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=IZBEswC4toSgM3PT/UOG2UfdFtYnV+nmFuAUqOigwLQmQ7bWDL92oVoZvmBnQMzq5K 3ETycx6Rb7yj6oMmIPHIZrC4Umcj6qoqK9XUfrXLABzKjMW+nwmVwUVssH33U5fB5DJp CGw+qph0b9EBZJjk9BQJezGbkukGTEG5ygG6xpc4z4hPUuKEPhwzbWnclQ5Q0fTMOtiN kIja3WokZgqk16Xs1RdEisZMjimv8bAS4pVshEWFcPFeuOJxsh8c+n2vBMN2T6ZxhV6w geZLZTxAV/fjRtK1ebkKv3dVANZQPA01N48KVV+vNfnvds4GkrPFvKo/cnYQy3TfGtQh Xcsw==; 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 38308e7fff4ca-3a189e60023si1085841fa.8.2026.08.20.06.42.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:01 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lU013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:59 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v9 07/13] testsuite: Set ISAR_PREFETCH_BASE_APT by default Date: Thu, 20 Aug 2026 15:29:22 +0200 Message-ID: <20260820133934.383231-8-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 makes Isar use `base-apt` repo in different way. Any package installation is done from `base-apt` repo which is prepopulated from external mirrors. This behaviour is disabled by default for downstreams. To enable it, set the variable to "1", like isar does in local.conf.sample. In order to be able to run CI in old mode, allow CI read the option from the environment. Also, adjust some tests (like repro one) to make them work with ISAR_PREFETCH_BASE_APT set. Signed-off-by: Uladzimir Bely --- meta-test/conf/local.conf.sample | 3 +++ testsuite/cibase.py | 4 ++++ testsuite/cibuilder.py | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/meta-test/conf/local.conf.sample b/meta-test/conf/local.conf.sample index 2dbe28f1..74ee90b1 100644 --- a/meta-test/conf/local.conf.sample +++ b/meta-test/conf/local.conf.sample @@ -27,6 +27,9 @@ BB_DISKMON_DIRS = "\ MIRRORS ?= "git?://salsa\.debian\.org/debian/.* git://github.com/ilbers/BASENAME" MIRRORS += "https?://cdn\.kernel\.org/.* https://mirrors.edge.kernel.org/PATH" +# Use new base-apt behaviour +ISAR_PREFETCH_BASE_APT ?= "1" + # Users and groups USERS += "root" USER_root[password] ??= "$6$rounds=10000$RXeWrnFmkY$DtuS/OmsAS2cCEDo0BF5qQsizIrq6jPgXnwv3PHqREJeKd1sXdHX/ayQtuQWVDHe0KIO0/sVH8dvQm1KthF0d/" diff --git a/testsuite/cibase.py b/testsuite/cibase.py index 033b3b19..835593df 100755 --- a/testsuite/cibase.py +++ b/testsuite/cibase.py @@ -81,10 +81,14 @@ class CIBaseTest(CIBuilder): self.fail("GPG import failed") try: + self.move_in_build_dir('tmp', 'tmp_before_repro') self.bitbake(targets, **kwargs) repro_type = 'signed' if signed else 'unsigned' self.move_in_build_dir('tmp', f"tmp_middle_repro_{repro_type}") + + os.makedirs(f"{self.build_dir}/tmp/deploy/") + self.move_in_build_dir(f"tmp_middle_repro_{repro_type}/deploy/base-apt", 'tmp/deploy/base-apt') self.configure( targets=targets, gpg_pub_key=gpg_pub_key if signed else None, diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index 1d415084..ca75f2e1 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -174,6 +174,10 @@ class CIBuilder(Test): fail_on_cleanup = os.getenv('ISAR_FAIL_ON_CLEANUP') strlines = None if lines is None else '\\n'.join(lines) + + # get prefetch base apt mode from environment + prefetch_base_apt = os.getenv('ISAR_PREFETCH_BASE_APT') + self.log.info( f"===================================================\n" f"Configuring build_dir {self.build_dir}\n" @@ -197,6 +201,7 @@ class CIBuilder(Test): f" generate_sbom = {generate_sbom}\n" f" rootless = {rootless}\n" f" lines = {strlines}\n" + f" prefetch_base_apt = {prefetch_base_apt}\n" f"===================================================" ) @@ -305,6 +310,8 @@ class CIBuilder(Test): f.write('ISAR_ROOTLESS = "1"\n') if lines is not None: f.writelines((line + '\n' if not line.endswith('\n') else line) for line in lines) + if prefetch_base_apt == "0": + f.write('ISAR_PREFETCH_BASE_APT = "0"\n') # include ci_build.conf in local.conf with open(self.build_dir + '/conf/local.conf', 'r+') as f: From patchwork Thu Aug 20 13:29:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5395 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:13 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f189.google.com (mail-lj1-f189.google.com [209.85.208.189]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgDQ6014128 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:13 +0200 Received: by mail-lj1-f189.google.com with SMTP id 38308e7fff4ca-39f65fc76c9sf8885711fa.1 for ; Thu, 20 Aug 2026 06:42:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233328; cv=pass; d=google.com; s=arc-20260327; b=fT3FiSNI4EkJxn+NGukxLmX+UN+Lu4O0OXCB4y3EvbqY88hMSxjx9mDq7q8vSf4oGU tc7w4cZqkYF6DudQBCTAbCz+YHYJeNmalVDKoPbWLI9C6KKNnaeeMVb6vVRXTQ7l11sa Np+Kyrrm5koEf76ayW46ATflXTUDJaXL4XB+oocMHp0muOEHD63v5CifivDZ+2bgQL5A C8tYILGUKiJdJvUnQvlUtkLuspXVxzSU1o0rHHtKpByfgT5Z3Fo1Hv7l4yOMI+F2lRrN Y6QF3BpXm4AGstF8RItV+OCoWarvwbzMNvB4mdrBqYrwEfpoauR20wpH6LFBE2ySnNJ9 THOQ== 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=sinaQGeOoXnwIPEiKAQgpNm1Tm6y/jfyskrB65Pl5Sc=; fh=OIR+QNXOkHipdpRuOpwD8zQuNOnPMdUJdz1ZcZRovz4=; b=eOENzQBydENOWMCZGEW8p5dv4L0Ft9x3u/XnbSEnL6cmT1Mjqsfhl/r5Uueou6aotB cGLPfBHi/KoIfYEMjLYQerYiAzSeyjfqwsnzp1GorjB6lza+cfiK8qJNuUd1Oy7kT6zT DEpJ5ciLf7UDiQbFMQDzcbORuz/zp3K94uKKNcvn+iNP5/BHOdaTMDyf8c1FtPMAoR85 q/KMhjYBqCm9qgmDHpPD3GumWDYpcz1JqosmYQMSQI4RbWo9J28O6i/q8rqTDg/BcwCO MnlxVE6NQxzE95/sXZHKpQ21JatA6GFKJiY3DXpSMP/Qw0BbIk3IORoqXeFGE1UwAp7i fIFQ==; 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=1787233328; x=1787838128; 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=sinaQGeOoXnwIPEiKAQgpNm1Tm6y/jfyskrB65Pl5Sc=; b=Cn6ehaK04dE4YT14zxDajPWDRD7yW3Kp4jsRq/07uQYnmKhPityy/Yd8XartVA8c2o Bun10MWHwKI1gn7+kP6jN2yL9gR8cYZWnNR0vGxLh2OcE5dWLQSnLqGGrdfSAscrBlzN tsxIQSjaiUfyFZyqnzIMDVM7pqSpdtNpdBDIQNzYqLIJCIuxG83OdP7kpkxvC0wRzWFk QND1LW8vcIS2kT9lwHTcdeOOjX7V3gc3cidwkfd14Y70xICAIgK3oNoeXRC4QoTp2SUY qPUUhzkkotuZB0+FWXkvf4t6zYuymWRM8vKr/Y9NbA3gXDIWjTIy0EFZlsvqS3+/4DUT vmdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233328; x=1787838128; 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=sinaQGeOoXnwIPEiKAQgpNm1Tm6y/jfyskrB65Pl5Sc=; b=H44fkRcB5Lb0y6J0ATpC3g6wTv7CYTfyYCp7+u/rMk22PT+oVaGkf5K0D6/Y/MRYz+ ficuSjNYcp5tJh0xOz0uxFW2Bff4wun2Y6h3Ws3dqAGQ2ybRFp2tFOzLG5Hvb5hkQgO0 LrOslr7jmI5QJwYnFOfK2kleHkCVvLYjKKzyXfz2U6lQEqHX4EhoafMsuYSYYilFPyys /Kf1dwlQFNf3XI/fz25Voa9cKkLo+q+3Dw5t+Xe/nUOd3IZYadTqIGzWmOL5gAZZ00Tx mYMOH3WOu/ExkOSz53D4LNqNB4RBjwtWzmH0xsY80KWy7WPhxZMCw2dEXAwTNQZjeAXO 7WmA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rq/3G2CFdi7bb34ZbOsqhaHPRuAD9WrOOam9TcfU7prVnLFdhXN886Y2PFRlCq+6XfyqzQF6qM=@isar-build.org X-Gm-Message-State: AOJu0YxHfspxRneouAtnSmwF8Qy4egXiN1+taPKz2l9twYM4sPPAxP5Q YnI+0zaZUyyINq+vHyMc4sRY4WQRysi8+WzG0PGUWf7kzQQ7dKM+Byjr X-Received: by 2002:a2e:be2a:0:b0:3a1:7f22:93ec with SMTP id 38308e7fff4ca-3a1899439cbmr32051971fa.7.1787233326348; Thu, 20 Aug 2026 06:42:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdd+mYSgzqV8vUShYjusSkRG+3fVdosE0r0jTLKBE0sFxA==" Received: by 2002:a2e:92cb:0:b0:39b:2467:2ddc with SMTP id 38308e7fff4ca-3a196399ecels2667171fa.1.-pod-prod-05-eu; Thu, 20 Aug 2026 06:42:04 -0700 (PDT) X-Received: by 2002:a05:651c:19a0:b0:39a:d7f7:981d with SMTP id 38308e7fff4ca-3a1899e7070mr32280311fa.12.1787233323921; Thu, 20 Aug 2026 06:42:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233323; cv=none; d=google.com; s=arc-20260327; b=kuZl+8vKzq3lTzCW3ptBW+R+LQCa2JH+NgOpz2FVyfFUIwJwwbUCbjHCcnQlicQkMV XGSL3ICbgYJmM1O3C/rDBr0G1ZvT+e6jxzTysHcd1G9Ul6h8mVSpYFv4tviNMg0W+fxV mGgKovSAanuy3LlNZDBqFXinXkdNP4CkH+q2sDoYQ2tXVQf5WWSQTw+bjgQo7+DSVVg1 RtcgwBU0fIsM0nf43pYonJI5xxmZbDtPy3KG+Un1Qhxe//U9eUBwArUTu2puuArkg/RR i2YNRvujPRWD51K0tsh+TGDyMtEdPbFSy5MKp8RiH0IVGfJ/6NHroRBCtd2b7Tce07+T KiyQ== 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=yXPPuCSu/IZUNh+pVd2HkNMbiQOUW1a6nZJ33oLrpOw=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=B3b9Y35JDxdHEkuYsS4mOy/W2ws0456XUySCUspmpV6xdu5+qXMfPBZDsgR4/EnxBD 3yvNSXQZZbSI2Uu6e25xk91iWeFDiwY8Bm0dqN6Rz9SnZ0ASLaf2Wd18B/TJXMryaoIi 55JfyNHo7R141vzDd3y2yN0l3igbj0DVhdlSErtJdHUpElz+uVM2xlKiEUvfHY2CV5AG qD5w97fR/UKcGa0Ba/CP/Nilt/jHnFw6iBjDcKt9JkHxN2o6o//BNL+gKiU1GU8wAYyz +FEbQvC/5GsrrGnxAQ/g2YAn0N43mX+GADkNes4M/fPJjgr8c0RcfUg0a3frN9GpR/Qd d13A==; 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 38308e7fff4ca-3a189e52f02si898041fa.7.2026.08.20.06.42.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:03 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lV013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:01 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 08/13] Disable deb-dl-dir in base-apt prefetch mode Date: Thu, 20 Aug 2026 15:29:23 +0200 Message-ID: <20260820133934.383231-9-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 Since all packages and source packages are placed to base-apt repo during build, there is no need to have them in one more place. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/deb-dl-dir.bbclass | 2 ++ meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 7e9f89b1..2fafd0a7 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -174,6 +174,7 @@ deb_dl_dir_import() { # nothing to copy if download directory does not exist just yet [ ! -d "${pc}" ] && return 0 + [ "${ISAR_PREFETCH_BASE_APT}" = "1" ] && return 0 # attempt to create hard-links for .deb files from downloads/ into # /var/cache/apt/archives/ so apt will only download packages we @@ -196,6 +197,7 @@ deb_dl_dir_export() { export rootfs="${1}" export owner=$(id -u):$(id -g) mkdir -p "${pc}" + [ "${ISAR_PREFETCH_BASE_APT}" = "1" ] && return 0 export isar_debs=$(${SCRIPTSDIR}/lockrun.py -r -f '${REPO_ISAR_DIR}/isar.lock' -c \ "find '${REPO_ISAR_DIR}/${DISTRO}' -name '*.deb' -print") diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index c452035f..94cc5fe3 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -274,7 +274,8 @@ do_bootstrap() { - \ "$bootstrap_list" > ${DEPLOYDIR}/${DEPLOY_ISAR_BOOTSTRAP}.tar.zst - if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then + if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ] && \ + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ]; then deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" run_privileged find ${WORKDIR}/dl_dir -maxdepth 1 -mindepth 1 -exec rm -rf --one-file-system "{}" \; rmdir ${WORKDIR}/dl_dir From patchwork Thu Aug 20 13:29:24 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5393 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:12 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ed1-f58.google.com (mail-ed1-f58.google.com [209.85.208.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgBSa014045 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:11 +0200 Received: by mail-ed1-f58.google.com with SMTP id 4fb4d7f45d1cf-6a178080182sf2661915a12.2 for ; Thu, 20 Aug 2026 06:42:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233326; cv=pass; d=google.com; s=arc-20260327; b=Caoh0heuJOtW2l7KK08PPgeXfZkbvRoMryn7qbip6RD/A8siM2jqehDYAJX/jM+ojj jSP4iGWCxIk/LJvhnX1ZtuXx99mVRQlBlHzU+V9WqY7+D4YMISQoUhLxtzYgzI+Xvn8I CKBByBD4shS1PV8+wZ9tUtFpRzXVWbD4o5jWYvkVgdh8058HwJm/ByeWylAUfQzhdjoN gWjPdh6fTssxDW7qLfREXvqha4kvWWF9Ln6kIrTbZuKkfX3djBQedoMvuGpuYhN/YTAs OUcODGn5ifk8lXfqxtNuscnq60NzwYfPPKtvTqmPP7LJh0keEy1TGAnQ9/Zx6SrGERAd SfBQ== 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=CocSzb6HuqBfMunHzAv56YCTiwj3rXNYkJVfgwTmTjI=; fh=MNKLLdB957wv2JNdpm+cPHT1LbSN6y97llBRqZT6ewo=; b=H00PNhA1lZ2pBQkUUr9ftsUqUWSn/OM4odM1kjSI6e9itC/8Ip3G1vZdMbL+t/1pG9 C4Yg06VBZiQ28XJMVXmBCKrYtyUpjaFWtE8GY5TxwlYJcAjc7UEXvU2clLAZm2kkEA7O AfqGAipI1MpSxpM1AU7OyiBO7QjvkApoaqAJh46T+Czvwp8MUvMVQ1gSdF02vKC9PTP4 2iHXtpVGmOwmlBzfuX/1ggaygQgz6HB78C7kfyv6VnUWs+vLwUv2qn4gqqtGezrXUnBs Re0pSPRlFcVCGMTgFa/D6ZBOOx82NXC9XrmECAKSSrPk0OmyS+hgQ5StxfsqfUXyGZAn RODA==; 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=1787233326; x=1787838126; 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=CocSzb6HuqBfMunHzAv56YCTiwj3rXNYkJVfgwTmTjI=; b=bCzH0lyM0v4z9Kr1dvVNXJ7kNkv2e2/KDMvorhumJxzUNcQJThSKgNWYBW5q7rGDA0 4Z34ADbsUMs4Qqc+FljYK5qAoq0TvZ2SPC3faf9EhM0b4c1WsrqFu+EgV9ngtnBgaksN o2pDGki52SuOZIqowBh8sTOddmf5qcdH7VEIgfjkFhUw0QfvmqjgCBMCHU7qphYmBX8C tIaE2ach2S8DdgazQ3krLEc/DedUN5LWSDSOFRhVCQboTyI/ElsjC/SUK+6fA63S0m3b 3rZYV2HVsrhR5D/w0oIVffhIizLe9DSpto7fqE8xuvqUS8Kxa6l/Ntx429UHeEQgjaFk k5ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233326; x=1787838126; 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=CocSzb6HuqBfMunHzAv56YCTiwj3rXNYkJVfgwTmTjI=; b=FSSZWuGUfexDdBxka9erfEj7TqFmUYWUZSkfuYkEn0B/FnfCae7xMHblQxyypKho+D oFA2oCTxsfFVsktbDPZsRdbQRplVq1LgN2dDJLj2nzzK+spA4hWkCAIiQixM5PF1Ah1m W9i5JktjPGhD1p9dFsk5KuCTX1RHyBNZtK6MySRODce9HNf74GBXMw2PZlHdziqiaeyR if8Wm9SjFYRYyk4WxKwY7S2TsKHv3XVOxmDp9KRO9pgoaRKO2r9JY+P11au7LTPt4pYE PWjfUkTWgfOEu5H+1XN9UVzz+Gtdw0LOy4bmd3kcAi1kWCDGIPCD7583I7NMXKxuOrmz 57sg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RoGsNJ3zzA6/HAQuRHoP2KoLI8assfHY2JwrBigYmUgZPygV+F9To1ywochnWv5KsV0YQPsd/g=@isar-build.org X-Gm-Message-State: AFuF++lCnZZsodiDQIZgMmmeHwSClVPmAnGE1Gl1DftIAy0F7Gl6lKRe onJJ5LyTa29cRxUXJcbai9vhHZupujfpmQ1iMeXeGhrsd588oShetNqc X-Received: by 2002:a05:6402:44d3:b0:6a1:f95b:8cef with SMTP id 4fb4d7f45d1cf-6a403296b4cmr7696517a12.4.1787233325937; Thu, 20 Aug 2026 06:42:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfv2dy4EonpePdzBjASQDjW8HyGvXRHpq1RYkTmtCc8bw==" Received: by 2002:a05:6402:2089:b0:69f:4d2f:1315 with SMTP id 4fb4d7f45d1cf-6a410bb09cels1339188a12.0.-pod-prod-04-eu; Thu, 20 Aug 2026 06:42:04 -0700 (PDT) X-Received: by 2002:a05:6402:e0e:b0:6a3:6d83:ba44 with SMTP id 4fb4d7f45d1cf-6a403297189mr9740104a12.2.1787233324280; Thu, 20 Aug 2026 06:42:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233324; cv=none; d=google.com; s=arc-20260327; b=qz9Eayag1rPHlK0m90Na70/oB7UTAVFpm4106gjSIdkhmxdzAM3E22fmR6odm8CWjG TcMJZ9mhZlDrenhkr3O9X06bJ2rZLCwwfjSNM26PVhg2SGzuLr8eUU7y+UpeLWNaDo1X uSBdHmNHLVYmhy59LVCZ2SvkwYYUT6CODP3Jzonc4XR7wUPCXOQJWU6ZmCq+itUm5KZR 9c3Bazv9fhg7qjnDw+HFtjsU36ct1461HN8BmJrDorUQ5UPABP0dqnxLhs0Hr2fyynJI OlCaKVVzU6VrEeYXpr0GhWCKmU2wzpO1kQH/+AWq4l6sVfsgvZtYZKCctTAgdsdC6GA1 RW3A== 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=Nsv6KIh0VPKM1jN0krHJsGIu+7I3PGcYMTQpui9gMP0=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=qfXJh+NfYv8HPnyOtCzH93Xk3a3HV0zxD9tEJl8DavMn9NpiXRAhQvSG0RSZMkLQPY Ma07Kf94v56VML89wvmFQqnaCFCCnxF5aYhgE6du7rASskewwqgAkkuvixkNcjyZr1Rx MB4u/8aCBClnylZNDkh+N4P3ohm7YOCilh8KLkdXoAyxZgWLrAj6lpwzq6BlCup6TEOP 6MANu3H4zpccsNCvPdFoKme6HUh2Bdy0Bca9eaetVhyibPorxrLV9GD6nK68FsVownYy hLvKpKoY3S7dkR7voh4PjmHu6pQHbfZW03k6x7EPyPC+lcik5Xwg/0y+wWjVK0XsYsoT VLqA==; 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 4fb4d7f45d1cf-6a3fea1d3f3si101805a12.6.2026.08.20.06.42.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:04 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lW013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:03 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v9 09/13] kas: Add PREFETCH_BASE_APT config entry Date: Thu, 20 Aug 2026 15:29:24 +0200 Message-ID: <20260820133934.383231-10-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 option allows to set ISAR_PREFETCH_BASE_APT to "0" or "1" and choose between old and new base-apt behaviour. Docker image kas uses should have "python3-apt" preinstalled in order to have new functionality working. Signed-off-by: Uladzimir Bely --- kas/opt/Kconfig | 12 ++++++++++++ kas/opt/prefetch-base-apt.yaml | 9 +++++++++ 2 files changed, 21 insertions(+) create mode 100644 kas/opt/prefetch-base-apt.yaml diff --git a/kas/opt/Kconfig b/kas/opt/Kconfig index bc4ed997..316b755a 100644 --- a/kas/opt/Kconfig +++ b/kas/opt/Kconfig @@ -213,3 +213,15 @@ config KAS_INCLUDE_USE_DRACUT string default "kas/opt/dracut.yaml" depends on USE_DRACUT + +config PREFETCH_BASE_APT + bool "Prefetch base-apt repo" + default y + help + This makse Isar always take packages from base-apt repository where they + are prefetched by deb-repo script before requested. + +config KAS_INCLUDE_PREFETCH_BASE_APT + string + default "kas/opt/prefetch-base-apt.yaml" + depends on PREFETCH_BASE_APT diff --git a/kas/opt/prefetch-base-apt.yaml b/kas/opt/prefetch-base-apt.yaml new file mode 100644 index 00000000..0cbdb93f --- /dev/null +++ b/kas/opt/prefetch-base-apt.yaml @@ -0,0 +1,9 @@ +# This software is a part of Isar. +# Copyright (C) 2024 ilbers GmbH + +header: + version: 14 + +local_conf_header: + prefetch-base-apt: | + ISAR_PREFETCH_BASE_APT = "1" From patchwork Thu Aug 20 13:29:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5396 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:15 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f58.google.com (mail-wm1-f58.google.com [209.85.128.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgEJv014142 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:15 +0200 Received: by mail-wm1-f58.google.com with SMTP id 5b1f17b1804b1-49545071724sf23116435e9.0 for ; Thu, 20 Aug 2026 06:42:14 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233328; cv=pass; d=google.com; s=arc-20260327; b=JuSO/cIK7aEeF5Qsw40IAK2M50xbIecWKEuKATfoOmtRuVUN2fB+8Q9x9vGXoMP5cZ pzW4BdG+W47JqhyR1ql31O0lnixX5QnqDVByV2OryRM5Ba7cuA2pVykZkkxLUov8APuK tol8lVUdu3jeDKbYUg9pz7zRSNUDhjOAQBXvsvcij5R1W+nrGNFmPTAaKbUggnp1Yv4H PcNwdbsCDWp24GGM3aRkltMZ1iUQy62yL6M00/6dPi17OzZNa6b4+wJrtxbrKT7hTBVu gxx/RINxi8ISVzUAdG66IXohDyzzKmGK55Sky6lMxeF7t7NZCwosg/ikQCb1EMOBdK8Q Aduw== 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=ZRP1mi2LO5JTMFgibn/NHZZ0SAPc8ATWsN7+vNCkIc4=; fh=Hqb4p0S7IdKMpfjhLWguobzVmOy8GHaKFqAaxxKT9Og=; b=lG/RkvwxS4XMWmIPCNO9YEju1OLyx5NSIDE51HQh3c9CGBmbz26kJtBQMN2WjNQcky cbDMfHwqwUeSzdhiE5f2/cgleMWrwWJCFc7jVsyi1C7rKt37WIEpYyM0ff3zm953nIAN atp4/a5GEVOjRklfLl6IFnFwUAWD0W5Ta+bYbmCQz8Bgbrs+SWn3MRqHdj5ILeWdttVJ FieMMAP3ybsO7kCZ3mq8piXCpK6KoJdaxa8hi8Yl8QCoNXcAKjGKudHYBZmwgqzTtKk1 z1Idmt7fmhj2Zr/fpO94h0pbERd7AwJngZb2MjjRLa/Fq6n6fdUQw4qub/F7ChxpS8oB 76eA==; 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=1787233328; x=1787838128; 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=ZRP1mi2LO5JTMFgibn/NHZZ0SAPc8ATWsN7+vNCkIc4=; b=jyeKrZkHuIFxTMOpYhwoOHoA2wikaXkzdeZEedqbmOZcszqRLdgN5WeqLFRf4KV4eY V0zhR6l+MMUfdYoFe9BwzEuM0vwE5N1b2oyoeiHVo7ZK+nWFqIBz+I8LJKK5yfcBmOYs C5Ov0uMXMrnWJLhk1Y86efjMMAZoMIfb0BSHRsFUPhsh1AI4STzYtIvCdCd8N5C5Owcb TUZJw+BnpWaf6B5YMbbg00CMa1ypLpmYyXjZko3VblCkT37IdPOnH0qONrc3i8QBMDmi HO8XGqlJqB7gCL/A/yfrn4qZ7/WQpXokbDIrDspQKG3BXRdei0HfFxOuTfLh5moeCXlw mH2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233328; x=1787838128; 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=ZRP1mi2LO5JTMFgibn/NHZZ0SAPc8ATWsN7+vNCkIc4=; b=kRbkNvbPmOuRSLguNbkN10yaAooFQE3VoZMzK0ILe0g7rtFfWJ8PWESA0GZ3fNgGjv 1AtcJ8pPEOEutaCjBbdWw4dVYBsIIx8NrxIxJAa+t4fqwzJhgwpAF4ChOX9GAFqEDB06 J49aAaYukg9IyqOyZuW0iJOVUvkxhjuzUEgnmAddGVoLXJpg44tPfeq/epzBVrRZfNae ngF2L2eisp9ry3KUjPo33MfzJiB393QHojFhMEKlgJqUfs/0Iiwmf6WZenIwGiT+PQfv t5X/25BjZWTdTCE/omdHtE6gbeyKANzI1hoyWGRD/5k5BFxEVPc4exvV0YTRvXjeRbyN mSKw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rq2D53LcLZCBRJOpCdOyigt1gp9U3Qa/3Zhr/NmkiA9IWQo2am2MRHnFYz50Ybt6edGF+UhUXw=@isar-build.org X-Gm-Message-State: AOJu0YwVrHQD3HanC8L4NSqLD9xn3IRjwF5fixX3Py+Kldf8Cq2AmGCB TfgAgMhPUemXvIRJZxyd5QibPa+hrqCGiAhAhHzOomRWjHFfCFNpJT6l X-Received: by 2002:a05:600c:468c:b0:499:48bb:417e with SMTP id 5b1f17b1804b1-499aa14a72dmr188449015e9.2.1787233328525; Thu, 20 Aug 2026 06:42:08 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfM+wKIxahCn49R6Mp3J39e62aSiUsKHE2u3vmfvdj7NQ==" Received: by 2002:a05:600c:6384:b0:495:458f:eb0b with SMTP id 5b1f17b1804b1-499b05845b0ls9632245e9.1.-pod-prod-09-eu; Thu, 20 Aug 2026 06:42:06 -0700 (PDT) X-Received: by 2002:a05:600c:4743:b0:499:8ff5:8ecc with SMTP id 5b1f17b1804b1-499aa1dea9emr183846685e9.15.1787233326646; Thu, 20 Aug 2026 06:42:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233326; cv=none; d=google.com; s=arc-20260327; b=n5euJlJLF7tU3PRWOjK3igqn8OoBiBp6iNlCwf6a5kYlOQ0jBTI6AyIjyn3CYEpOFj +JOawtZlUgOXwUmi9TwDnuNvUfBOxdYWv5C68HcPd0Rh365RSvhWndi59Ma0VX+G0e/U 2vNAdLx2Y/nMUCOZ2wtgQxokEyHE8gA00suwGbh74KtajP5DSBP6eYssdc96KmNyLIY9 tJ9VIW2y1oOxFhIhlJOvNV2pJnfoV+COJUQu6JwQgy6Lh7n7jQScdC6kuPVay6avSx62 /9lSAkHgenN6BsZRJPkSAl1jd+jrrjUDlNLeH48cRFFMlvxxBv7YyzpPdZr8i+AybtqW xsOQ== 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=6S1gGmQ1iqMBK+cvl2rU5/PoV+MJpfsbokv74/WFWKE=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=N5B7BQ30zXIQmPkAZxU2wD+y4YzTxlOW41I2mbAEa5YiyqAt1htLTAfSHyuK4DmiGl 5pMhayUqfumXzAP2O9m5gWvuf1tD1EPTc+zhzGco88XIUVu9LZy8vZNghw68MlL8MpsJ 7mPbWohvaB1WtfA+R32N1gj5rD35uALV9px7MEiXKa/MU14zLjGUDe862dV3kxqOUgXs h3hAUv9J7lwGkBKfvCIMUbETk+pjU4UuYB3YMEwR1PUuWpI3szahgiBG7V8MoVx0qJJ0 JzmrtaMnzu+K6vkrd9vD1AGvhv7S2fcCOA0hEWHRBluAYndBSoctYu2AD304XgPbfD7x yTYA==; 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 5b1f17b1804b1-499aa0f3264si1075875e9.1.2026.08.20.06.42.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:06 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lX013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:04 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v9 10/13] ci_build.sh: Install python3-apt if not installed Date: Thu, 20 Aug 2026 15:29:25 +0200 Message-ID: <20260820133934.383231-11-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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 is mostly related to gitlab CI that migth use an image without preinstalled python3-apt. Also, make system python packages available in virtualenv. Signed-off-by: Uladzimir Bely --- scripts/ci_build.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh index 241ff8c8..71f62111 100755 --- a/scripts/ci_build.sh +++ b/scripts/ci_build.sh @@ -19,7 +19,7 @@ if ! command -v avocado > /dev/null; then sudo apt-get update -qq sudo apt-get install -y virtualenv rm -rf /tmp/avocado_venv - virtualenv --python python3 /tmp/avocado_venv + virtualenv --python python3 /tmp/avocado_venv --system-site-packages # shellcheck source=/dev/null source /tmp/avocado_venv/bin/activate pip install setuptools==81.0.0 @@ -138,6 +138,12 @@ if echo "$TAGS" | grep -Fqive "-startvm"; then fi fi +# install python3-apt +if [ ! -f /usr/share/doc/python3-apt/copyright ]; then + sudo apt-get update -qq + sudo apt-get install -y python3-apt +fi + # Provide working path mkdir -p .config/avocado cat < .config/avocado/avocado.conf From patchwork Thu Aug 20 13:29:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5397 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:17 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f59.google.com (mail-wr1-f59.google.com [209.85.221.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgG7q014214 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:17 +0200 Received: by mail-wr1-f59.google.com with SMTP id ffacd0b85a97d-4814806ab89sf647390f8f.0 for ; Thu, 20 Aug 2026 06:42:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233331; cv=pass; d=google.com; s=arc-20260327; b=PBDGultPnhO/kv0bmYw7wZsPV0mEuIwckjGg6gcfaACZv8MmGZtcP+/wgsO07oUuP7 UcUQ2CJ4ydpDrrrMRYMhF2+v4uIentlqbbNnJVuaZZHd/jcV70H3hR9f/VPwTnYcHe8K TzXrb3h60i5O4R7Qv6LZIo6HpVCArxio/TF6wydf/l7lIlzchI+eHtt5d/5TizJ+OTvx q2QM2JaHqEXJo5yjXDG9YrvKYDFPhuxzsX+Lf/nEZWZAiO9fm49Jjh3f4aYrwL1C/ElF bUk/dO4xegt6vcAMwhYZPbntP0tcTyWSAxa9uGeJE57i0ge+JmnRqGvexbjPcfDm2Au7 6tQw== 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=GcF2mo5J3MRSe5b+qIUzR6+kV+BD2KG0Fv+oGt5v7mg=; fh=GpLYaHa3QH1QNx9c7TLFVbR40I6YTPIGUy8G4+oeMto=; b=HoQ/7rt6l59oubu7kIhkHIrRloXA/bczbNxOovojSiaI3UYKbe1ztL7AxNArZp1O8W jRDem9TbnmSJ3vcSEBQfxrY//U1G48ua36wNIaZwVcurXr7ueNn51+Xw1j6z6+GpAxCn 904M7McPh7+GZCB7qlLT6j8Sw2b8hsLTyykvc9Ee4Nq4O6VSuZ+QU9rJuXMqlf225Jc0 FwuwV/bEEYb9w1M4gI2yyRtDs28LBH848+TioAxJYTGbrZhlNsN+ZtxefPvluHOG6tc0 O7bKWFsj4k2DQdrbWeUhYUwTRcrnK2CHsGCIYNsnk6yHrfoN/43S62/038v23fz6S4GB 27pQ==; 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=1787233331; x=1787838131; 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=GcF2mo5J3MRSe5b+qIUzR6+kV+BD2KG0Fv+oGt5v7mg=; b=L+/jBJZJc5TPa60dyGCzkCdRZwnaGk3MXqSSy5zkCZ8KkHISqaZgIldXpf/nLkqZzt 7jSk0r7gM6DjvxafUxUgcGnR5JdILR4gYdAC+krlBxh0wjf3I0JCUW+vXEegO/D6Jf/e LCtvaZ87i7fVHDdBAD3WeN3LsDd1nQgIuNDese6Al7WkePgtLTibJQOPB9CYQayzvLq2 Zv5Me01qlMKp5Y3Nwxli5hf9JQgsAdMuUJ3IiCVrPL1hKlbkHpap9dwjuC8UZ5dUtl5n JoFe1bPjFcQtyd7uJaYIjsy5nK2oOYvs93inldMV5/6hNBNsn6Qgn010dI7VewN0pT91 O5Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233331; x=1787838131; 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=GcF2mo5J3MRSe5b+qIUzR6+kV+BD2KG0Fv+oGt5v7mg=; b=Usg2wnY5OmQTesGiWaZfGVC1hrrIL9gQtdZQLJaDY8X+u0IdNSlqnxb5QIws5QeJdG RR4+AR4GACBYCIFV01h16u8a7kTS4mP1ptAkqtx9gZyGktyyaVZD+PyYFrF6NPbb+xEL pZWupPplnfxdJfbhu5t68H0EZG1O32plNWhod43H/rNlwbYhgW1blPEekUU1b/CZVG2E jW61axnqAd+LTjG2fNwuoPRPt4WNDVOqmPd+8sLyRUZoMV2gUbum5llXT8GWZNKaibZO ftaUU/boWUovh59r5kbJvpRL3r/eDaMLzLwmfS6nt2rA6bKIQTGphKF4tcx7HlTPAqFm BzgQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rr7eOJJN2diuF98cplPcG0qu7PP9ICvCc16AG4vQqdAi7/tVlqT52R2+IiXrFzgQrmJ0kwegy4=@isar-build.org X-Gm-Message-State: AOJu0YyvodrTiPQl9jO2YVcYK1NOhJP4ZMx2sqxaAsuEdeEqaffUgFYq 0jJT6eZcwf14dfVxTMQawN9mV3E1/GWD6316Ti9c8glvvkG5tySRKaie X-Received: by 2002:a05:600c:c042:b0:495:648c:a1 with SMTP id 5b1f17b1804b1-499b06ab78amr81759885e9.3.1787233331611; Thu, 20 Aug 2026 06:42:11 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLde0f4kTD32wV6Tk9umZgCGvEOU2xRkJWIf1OZ3t40Df3w==" Received: by 2002:a05:6000:41cb:b0:481:5ae8:2aca with SMTP id ffacd0b85a97d-482b78de041ls447182f8f.1.-pod-prod-00-eu; Thu, 20 Aug 2026 06:42:08 -0700 (PDT) X-Received: by 2002:adf:e18d:0:b0:481:314b:b041 with SMTP id ffacd0b85a97d-482b783ade4mr12763386f8f.7.1787233327855; Thu, 20 Aug 2026 06:42:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233327; cv=none; d=google.com; s=arc-20260327; b=LlnwkyxqkCaXBMgVCc4134lMHA28ZQ8K0CQ/PrN5INXR9bQUWiZBdQ6Pq4O+f2M40w LEng6z7w/p4gmW96iHHgqimECfOifvl227kfnzpsgyII6QyL3k53lwCspQ/TaMx4C33g I72uXT300b4BF3VQkruErAqU6A+xFaTTWMK/vC+6sdhDl8dwIxV/QKO/Q8W2xUVJnte6 KgcbOVQJ3LPNT8DRIlX/CtQelv+fJCgQPvy+dj+vedY8AtPRyJSjFn1ExduYjXaKYZYP VE4fHo33C6Ru4DLToUHJtu34x2XsUmxV3JUcM4VWYLWi1fob8hBtP3chyotWGLFEqfwP vkYw== 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=iipNkI7XQ7+DYy0zimnQI6iUBC2/VOig+lrlifDOfBU=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=VP6Oo4a8V1g8bD76q+BGvC2TFO0bijJjJmfu91dF0j6CiJMSR19Yp9X5SBKBKOxxMN Ill4aC8gkTaa46Pog2Gm48MzgchE6CzN5bfiSUsoSHaWQPxud0j0zhFMb/IC1TG9kKar ihJQrekhAdWrmN5b9oREbW8oZDHy9MpVewLPdOUeL4qIA/o1gWpeWzOOVig9Doij+y3L jrxv3TcFB5QpapBp7uxTpSfS94YkFlF0e5OeFnGKr04jGVoz7p/ANb8WtmPTFhky8z+I o/750kULPVmda6MuqBe2JT0pfHE3eqHvRSvHpS8vo3ABM1z6kGgPTkIVeNVBfc1/8eSY yJVg==; 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-482b1346b0csi87659f8f.1.2026.08.20.06.42.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:07 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lY013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:06 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v9 11/13] sbom-chroot: Fix python3-apt dependency Date: Thu, 20 Aug 2026 15:29:26 +0200 Message-ID: <20260820133934.383231-12-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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?= Fix error: | E: Unable to correct problems, you have held broken packages. | E: The following information from --solver 3.0 may provide additional context: | Unable to satisfy dependencies. Reached two conflicting decisions: | 1. python3-debsbom:amd64=0.8.1 is selected for install | 2. python3-debsbom:amd64 Depends python3-apt The base-apt package is architecture-specific. Specify arch for them to avoid the error above in case of cross build. Signed-off-by: Aliaksei Karpovich --- meta/recipes-devtools/sbom-chroot/sbom-chroot.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-devtools/sbom-chroot/sbom-chroot.bb b/meta/recipes-devtools/sbom-chroot/sbom-chroot.bb index f347327b..d23a62b6 100644 --- a/meta/recipes-devtools/sbom-chroot/sbom-chroot.bb +++ b/meta/recipes-devtools/sbom-chroot/sbom-chroot.bb @@ -21,7 +21,7 @@ DEPENDS:append:bookworm = " python3-cyclonedx-lib" DEPENDS:append:noble = " python3-cyclonedx-lib" DEPENDS += "python3-debsbom python3-spdx-tools" -SBOM_IMAGE_INSTALL = "python3-debsbom python3-spdx-tools python3-cyclonedx-lib" +SBOM_IMAGE_INSTALL = "python3-debsbom python3-spdx-tools python3-cyclonedx-lib python3-apt:${ROOTFS_ARCH}" ROOTFSDIR = "${WORKDIR}/rootfs" ROOTFS_PACKAGES = "${SBOM_IMAGE_INSTALL}" From patchwork Thu Aug 20 13:29:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5399 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:19 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f186.google.com (mail-lj1-f186.google.com [209.85.208.186]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgIr2014334 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:18 +0200 Received: by mail-lj1-f186.google.com with SMTP id 38308e7fff4ca-39dba2e8dccsf9092831fa.2 for ; Thu, 20 Aug 2026 06:42:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233333; cv=pass; d=google.com; s=arc-20260327; b=sIWfbIqTto/vVT4tOP+luQd/efpfDJ9jSJkMeLWDp4aRdfE9xsoKIOXxdwhtvju7ds 1IQC/H3oqBeyQGuMufqurZYuMrIucFARgaCP2WjPEIzUr1hHDlOxQgos8/E035J0hGZQ KZQyaW/6gkBZM3DSOeR0vTkz5eKNsnYNQJbDy6QqdQn89XBqLDbODN7Te/3cMoS2Q8Kl 8twwNGxN/xvW2ojK57ygiHk2c8cdsicLbUOVPYk4KZf8IuWO8qKyDJqCt6JBQuF3uDzU aP4Un6F28HtkxfksCpYrWhuJ0zlTNoBJ6yo9l5iqPqWsu6B+gz85C4Lktf94MbiuY5K4 wN9Q== 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=lz/7MwgXGsmgw8pMzsbqE/8L1uY6ZguZZkvzG7jQfJk=; fh=vP2MWICz3WcTKIgMMPsNABZGumFdxOkIRjyS0V3W/xo=; b=GuqGcMBY+oBcTtv1BxB7oW3YsNh65E1anLTTU+sySVazErLSvlq8PBbZIURA8It/Zu BNualg4TGAiQvWX1vM4ZUB2n+/qnAiMSULHfhzF4qnBVTS8hHqEtF28QiBx16rRO+wcy Gt2k9tVJeKhkfVV3pRO6qQXoNsX6vvtpXHlyl/2fMJpVcvf6jHxIK5TE7if1hdpGa/yI aGHIdHDH6Kkux1KVNj3mcp5gGTReGTW/SZp3Z1s4lWjIH1LMbszyqlq4FroNRBcCSe0F y/GB2m2vEcM54sGRwQbGWCrKf2rGkH4QVsLtxABtENSH19riQx9P3L/IUgS0ljPlRJeg NqUQ==; 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=1787233333; x=1787838133; 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=lz/7MwgXGsmgw8pMzsbqE/8L1uY6ZguZZkvzG7jQfJk=; b=c5C+jgEqECgqScMreDxu9+4lC/xL7i8oomHJPkVmYTq67JaFl/Aq0aEfEgvOHgwmSJ cSIJZOfFduM1z1uVlJ4NDDumPsc3rEwveXnLI99KU5H8/f1B7sBldacjI2paBeTX2Wga LmCj9bw/H7p5aOKyZASAtr3baDL9CAZM+bQhtkvaHppvxTVubm3MCVeh4UzJ9yALMPHE bbHY5hpKKTVbwY0eKp+jQ933Y54Y/VAPaehNMymTuDRm2FpSwoX7vF3tv8zWkew6KjJW aWviIgHq6HCVh02EaZ3umMLTDscMCqimcw3YPcrdoJZAa7q+sxEscluaSRKcKDxK++e8 /6LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233333; x=1787838133; 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=lz/7MwgXGsmgw8pMzsbqE/8L1uY6ZguZZkvzG7jQfJk=; b=HR+8Jtt+/vGTcTFc8oP/KGwbDn+Z7Q0xmDSu+BqoLwq4JDCm72JqapR0qbGd3jph+k UzxW4PP2t7t6Pjj1/yKWo39dTrVHlu0Msa9Qgux1iRwXNag7q4sU/79/Fl5imoyI+onG xRiQHuUF6jj+Ddq0/n34IK453QUwK91KgJdW596YVj37mlIPzv591upPyQNm8G8zBpbR L4cZrQXWZWJzydXsuBK067d6vg27z5e3fvCs406t77G/wCAJnsT8IvaQo34gZIt9bOe6 bP3uruzkfJyvyYxfeu2x8b14jmngqrA1duWwGEyNZahXRks0mr/R7cVVl3CiznuO2Pzy BxIg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rp4RgvzR9NJna74VEW/wHydwncwB/CVTiBN2itszJwEDvWXEsGW5P7tbD9I3sMAG/+iSerg2vg=@isar-build.org X-Gm-Message-State: AOJu0YzA/MorOEfKejOTyLYkOrjzPvi26vDABiqIFunpADlt9Ipj72Gc Re7TtXksUJU+mcsmR9HjSK9fYua0UKRYZokJ9nIdNFIDZF6ynS2OMbMF X-Received: by 2002:a05:651c:199f:b0:3a1:1d3b:67f1 with SMTP id 38308e7fff4ca-3a1896d9d67mr27275841fa.7.1787233331740; Thu, 20 Aug 2026 06:42:11 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLddGAINbVX7laIT2MK+rshcGmpu0PsnwNdC1Z8EVJFLCuw==" Received: by 2002:a2e:9ec9:0:b0:3a1:7b4d:5835 with SMTP id 38308e7fff4ca-3a1964217eals3657311fa.2.-pod-prod-02-eu; Thu, 20 Aug 2026 06:42:09 -0700 (PDT) X-Received: by 2002:a05:651c:a20c:10b0:3a1:8dd6:aad9 with SMTP id 38308e7fff4ca-3a18dd6add5mr21035851fa.2.1787233329491; Thu, 20 Aug 2026 06:42:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233329; cv=none; d=google.com; s=arc-20260327; b=Nk8E9dRU0whLW7teaPvPCw9Srfq9jEqyrInxl6UWf8bZ7tfCKJ6aisXA5FB/jTnsDc Ya8yyi9H07SagliVs/InHJsGaqQ/YMTj7jqQVpv3tw0Hxl7u68NfBEpY/O9BCS5WjUek urUl2H81nwSXCjfK5+w2tJ4at7orH0xOGV9KA0VmytiGwZNLxVlgKDmbfSu01YNXet95 OOnwPEYOoZ4Xi1N+XI2RKdI44hqxvu31D6wkvWY+kEO7QmsC4vZS0YJ2pq/QISqQu16L 847A7mFoJqRhxj/AmWzEuGeUxdFxSj3a82OYstz0Vdl2Qc+FoNdnVlCGTPWrYmMyQ4YH ngvg== 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=fXV59MW+wfucag7p9lyuoIU9KCdjvsnT1Rffr5ejkLk=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=Op2qzlb1vH+QuCE9u3RkneMRN0pne9B4yofFGKgZT0PJGjUliUwk9dZDuUwzcoznrz BGtup0ITv4Bc+cvkoSn4/2li70EmAWc+CuFdPacgjo1KvN+JnALHrU7KrC/5T+AqTcNB j6NNoBUFZZ/CT3+KlN8Zo76Zp7QVeRVhXqB09T3cVJHL4fz1/ZGOJ951+ykXeg8GJopw FxX2mPr8AmKPdMMjMG0akMhcO29t1a2+TuEhKH2OtpRIOlrBJMX5hQY74Y6ypGb6oGsR eF7cwZEMCPpF9gvlebvaBFHh/iWp3FZAv1rAHecnIyifzM7wKe/nlDaSfKG+DiXieXxU gnyw==; 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 38308e7fff4ca-3a189e3ba41si898601fa.5.2026.08.20.06.42.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:09 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8lZ013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:07 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v9 12/13] debrepo: Add override for reprepro Date: Thu, 20 Aug 2026 15:29:27 +0200 Message-ID: <20260820133934.383231-13-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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?= It fixes an issue when bootstrap image in case of offline build is different than online. It happens because some packages has different Priority field because of override. F.e. libtext-wrapi18n-perl in trixie: - inside deb package: 'Priority: required' - inside Packages from deb repo: 'Priority: optional' Solution: download the override file from repo and pass it to reprepro. Signed-off-by: Aliaksei Karpovich --- scripts/deb-repo | 97 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 9 deletions(-) diff --git a/scripts/deb-repo b/scripts/deb-repo index 23de0461..99913fb4 100755 --- a/scripts/deb-repo +++ b/scripts/deb-repo @@ -89,6 +89,8 @@ import shutil import subprocess import pickle import urllib.parse +import urllib.request +import gzip import apt_pkg import apt.progress.base @@ -96,8 +98,38 @@ import apt.progress.base REPREPRO_TIMEOUT = 1200 +def parse_aptsources_list_line(source_list_line): + import re + + s = source_list_line.strip() + + if not s or s.startswith("#"): + return None + + type, s = re.split(r"\s+", s, maxsplit=1) + if type not in ["deb", "deb-src"]: + return None + + options = "" + options_match = re.match(r"\[\s*(\S+=\S+(?=\s))*\s*(\S+=\S+)\s*\]\s+", s) + if options_match: + options = options_match.group(0).strip() + s = s[options_match.end():] + + source, s = re.split(r"\s+", s, maxsplit=1) + + if s.startswith("/"): + suite = "" + else: + suite, s = re.split(r"\s+", s, maxsplit=1) + + components = " ".join(s.split()) + + return [type, options, source, suite, components] class DebRepo(object): + BOOTSTRAP_LIST = "/etc/apt/sources.list.d/bootstrap.list" + class DebRepoCtx(object): def __init__(self, workdir): self.distro = "debian" @@ -181,9 +213,9 @@ class DebRepo(object): with open(f"{self.workdir}/var/lib/dpkg/status", "w"): pass - os.makedirs(f"{self.workdir}/etc/apt/sources.list.d", exist_ok=True) + srcfile = f"{self.workdir}{self.BOOTSTRAP_LIST}" + os.makedirs(os.path.dirname(srcfile), exist_ok=True) - srcfile = f"{self.workdir}/etc/apt/sources.list.d/bootstrap.list" if aptsrcsfile and os.path.exists(aptsrcsfile): shutil.copy(aptsrcsfile, srcfile) else: @@ -201,13 +233,60 @@ class DebRepo(object): def create_repo_dist(self): conf_dir = f"{self.ctx.repodir}/{self.ctx.distro}/conf" os.makedirs(conf_dir, exist_ok=True) - if not os.path.exists(f"{conf_dir}/distributions"): - with open(f"{conf_dir}/distributions", "w") as f: - f.write(f"Codename: {self.ctx.codename}\n") - f.write( - "Architectures: " - "i386 armhf arm64 amd64 mipsel riscv64 source\n") - f.write("Components: main\n") + override_fname = "override" + self.create_override(f"{conf_dir}/{override_fname}") + with open(f"{conf_dir}/distributions", "w") as f: + f.write(f"Codename: {self.ctx.codename}\n") + f.write( + "Architectures: " + "i386 armhf arm64 amd64 mipsel riscv64 source\n") + f.write("Components: main\n") + f.write(f"DebOverride: {override_fname}\n") + + def create_override(self, override_file): + deb_override_name = f"override.{self.ctx.codename}.main" + deb_override_file = f"{self.workdir}/tmp/{deb_override_name}" + if (not os.path.exists(deb_override_file) or + os.path.getsize(deb_override_file) < 1): + # Extract source URL + srcfile = f"{self.workdir}{self.BOOTSTRAP_LIST}" + with open(srcfile, "r") as f: + for line in f: + entry = parse_aptsources_list_line(line) + if entry: + source_url = entry[2] + # Download override file + self.fetch_file(f"{source_url}/indices/{deb_override_name}") + if (os.path.exists(deb_override_file) and + os.path.getsize(deb_override_file) > 1): + break + # Download packet override file + self.fetch_file(f"{source_url}/indices/{deb_override_name}.gz") + # Unpack override file + with gzip.open(f"{deb_override_file}.gz", "r") as f_in, open(deb_override_file, "wb") as f_out: + for line in f_in: + f_out.write(line) + break + + with open(override_file, "w") as f_out: + # Unpack deb override file + with open(deb_override_file, "r") as f: + # Convert deb override to reprepro override + for line in f: + fields = line.strip().split() + + if len(fields) < 3: + continue + + package = fields[0] + priority = fields[1] + section = fields[2] + + f_out.write(f"{package} Priority {priority}\n") + f_out.write(f"{package} Section {section}\n") + + if f_out.tell() < 1: + print("WARNING: override file is empty!") def apt_config(self, init, crossbuild): if not init and self.ctx.compatarch: From patchwork Thu Aug 20 13:29:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5398 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:18 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f59.google.com (mail-ej1-f59.google.com [209.85.218.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDgHpU014294 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:18 +0200 Received: by mail-ej1-f59.google.com with SMTP id a640c23a62f3a-c15e555a164sf99998266b.1 for ; Thu, 20 Aug 2026 06:42:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233332; cv=pass; d=google.com; s=arc-20260327; b=BLGllW8uLIsdg3CWmiAYtPzf1egrCxd8t/WfJC5JlJShdDOn4nTAL40pd1TCIABX2E pJ9bvQy1javDE37lUeiFWX+gQHWmx+5EXWcrNl3ZpylH3Lw6xtOutYzh44ljHKi0Ro1X b/ge7gX52T1DPhLIEp3C7GXemtvJDETyQQXPMh2WY1VAGNBWZmGO/yjAt6YoRKezJtqp 7PQXc3dTByL8VP652zvrJvhhXohOPIqrkq8DXVipJFjORdToLst97XTCMEpKII2K1zYT 3Ykgck7FnLFMf6MNATx1nwDPVA+X2ZrzknsMTTmcnAWjMy5m9trhwwCnqUrHjyGetPzF 6z2A== 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=sHha+Gv8ukeD+f4n+WWHKd7UsOOntKD5hv6rpSEkASc=; fh=Dc7eysJ4aQG6/V11PDWul0n0g/TlnJFhgJ7Ibo69QJ8=; b=sVOXRM+SFIOIjwd75Ge6TLoXgHjVKGG5trSSxBSiCoDw00PZlfSmTnXS7SeCRMhxKP zSOp0oMgX5F7rBi2BzSYfhpPWlY6BOfPKv9BVvsBAmtpwvKD7hHCoM4HrlJ1MxvdCPYe pHmch6/IsU92M5O0mx+MLmbMU5LfMFXedt3EmxAyFss4RihU47lwIAuLqZy0WCoRvrex 8dfS0Co/mfTAR5OS86y7qP0Fgn3mDKI8WClYQ5GfTXFMiU9jYXsi7mVMdx5m+EVXI+De wxFayucxauk2FFnEhowlY8SoLmAqRYbStZVNS61Ta2xIwCgV3gNZ6CPMTQoWpuEhIhci tVlQ==; 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=1787233332; x=1787838132; 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=sHha+Gv8ukeD+f4n+WWHKd7UsOOntKD5hv6rpSEkASc=; b=Yt6ROkJpuYa6T7H+Bk9yaFLKYIryLyTCHAOfKy/Wsc2YTCTUXUwAOi1aGWqr4Si4iR lokJhG1/QklgeejeUbTS4pSMr2/t6gnhGuZmE+sqs2u/rr0BeKOIDyqP4NzGRtm36sGj 9aPRAVWnQ/313cEXzYp2iFE13XjdIU5fanuJKup9tQNFOGn5Ii0ddBFeJzj2Z7l8Fl5H fx2DS8QvcA0d9K5Pmx3OH8G2zlTasmFzIITLmc01pgrY3oJKENRKS6qmsqiZI4T0aEaf o0sk9qOmnwWKFhqxdJ0rpKFZJyBZ4TFRo1/K6e4m9PZEjk4JDcY/qxc5/q/D8PjsvQWU Yadg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233332; x=1787838132; 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=sHha+Gv8ukeD+f4n+WWHKd7UsOOntKD5hv6rpSEkASc=; b=qMlBnR7dqlTcJZLeGyx/t6WXUdkuIhp727ndCoP+DfbxWz1lLMNSgVsUfNaowe3ZDc oxw4oCs490ka6jMctR/9pY+6CdD5541t8U70aeSHfr13lO7gwFQkOrzvgKVbHqhhXxkb F9GWFAEDQ1pb0mlDfbWiLsyAKMIgWySLL9vPzD2NM7nSPg22k3qp1S1G2FD5cpbBmwIw 77rLO1eqbYXSm+ELd6FQ2Joupefn+AVOLC1ojNX+uzZkqTUOLdNRbWguiSe4pGr7TgOZ f9eZLPTU5RwYIKG03E58Fox12zOJDuYCiz28xttUByEE4BGPs3cOKXIIdocMDMmk6Q1v GVKg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rpike0p5C0yjgbBZZn/s+F6dl1LUgINF0c7kS1Hb8ernEwTq7+W+ZsQcNleipl7Q852olf6Q68=@isar-build.org X-Gm-Message-State: AOJu0YyXdlRLcuvuDPyK+8QhN5PKmiwE18s1Zb1aCc+oSGsasY7s2z+7 r0+tOKlTr7cKsQJIOirge/SboBiPgA0m+KUPfgT5Xxqb+gDjtuZSa5XI X-Received: by 2002:a17:907:a606:b0:c20:7166:cc16 with SMTP id a640c23a62f3a-c244d86531amr541780366b.15.1787233332465; Thu, 20 Aug 2026 06:42:12 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLddiSfvXpVPnHxFQQ9avVJWBbIU+9rgvnJmbZe5AUjIFvQ==" Received: by 2002:aa7:c0cc:0:b0:69f:abfb:b05e with SMTP id 4fb4d7f45d1cf-6a3fabf2490ls1190196a12.2.-pod-prod-00-eu-canary; Thu, 20 Aug 2026 06:42:10 -0700 (PDT) X-Received: by 2002:a17:907:3e1d:b0:c20:fd32:d9f5 with SMTP id a640c23a62f3a-c244d7d6f49mr423508366b.13.1787233330469; Thu, 20 Aug 2026 06:42:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233330; cv=none; d=google.com; s=arc-20260327; b=sdLrFCLkpNSvYiuqzs3NTKVOk7a67qfizNlqQf2wRusuu2JPd+6Pz4nKNL1sMMrp4S MVbwby3ONcXrzx0+4T0crgbGqqDHlGeI57acnDKLBcIQJ2P/63Eub53KPUQzzNXsPGW2 bHZOLdMm4H4ngNeCFU6Ctoq5GTFVO/rVTFCVRGa9GNugE5gqaf3vC/kM0hwwXAgvci+n 9b+CP7zx4+OS54W+IIU4mfDlz1T/f/O7J4N0mHtVmBfWOhsvIMMXqNNkLcjs7mjfUMz4 8ORdvYQ6hTqPQLABvj1sGBs1cI4Oq1jBatxE5mFOinFqbZXlGVH+FXDCTFlH2pQr0IHr qLLw== 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=HZOS3GwBtgsxldgpKBF0siVQASqZ4TXesAycp3qsHDQ=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=pIrxN5qFD0VhvjkxH53T2rxA3aaItyi8R9mhkAXrj0KMCr/wnuVJPE6zPBy+I+K/ES e2jFzHDb2cp2O7l0iq9Tp0s2M5Rpax2euw/LasTpdehEGLH+yhfdBpKkYUh3DVNy+X5X TIoevAzp2MCZuY2f32yUll8cN5EVo9U9uh9ziwJO/uazZvYP1VrgpRJ0wzl1K9p8/F/j Dnf9O8ReVmADsNmGvcCRnOgtHEET8YEp2ZrRBKqDpCUgx+4qZ/Npgs5ePIOxN/799IWN VEJ3fri91PNxsC3ulCRKqYhcOj2zep8PGf871ZlDTKV+VET2ma0EtC6G8l1aKuu83o3t Mp6w==; 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 a640c23a62f3a-c242e398605si7805866b.3.2026.08.20.06.42.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:42:10 -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 akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (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 67KDf8la013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:42:09 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v9 13/13] base-apt: Move bullseye-mipsel in separate dir Date: Thu, 20 Aug 2026 15:29:28 +0200 Message-ID: <20260820133934.383231-14-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-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_H3, RCVD_IN_MSPIKE_WL,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?= As the bullseye-mipsel has separate bullseye repo (archive) it leads to unresolving dependency (f.e. gnupg) in base-apt repo. It happens because mipsel satied on deb11u2 version (and dont't have secure update) then other move formward and have deb11u3 version. When the bullseye-mipsel is built in the same time with other arch targed (f.e. bullseye arm) the following dependency issue occurs: | The following packages have unmet dependencies: | gnupg : Depends: dirmngr (< 2.2.27-2+deb11u3.1~) but it is not going to be installed | Depends: dirmngr (>= 2.2.27-2+deb11u3) but it is not going to be installed | Depends: gnupg-utils (>= 2.2.27-2+deb11u3) but 2.2.27-2+deb11u2 is to be installed | Depends: gpg (>= 2.2.27-2+deb11u3) but 2.2.27-2+deb11u2 is to be installed | Depends: gpg-agent (>= 2.2.27-2+deb11u3) but 2.2.27-2+deb11u2 is to be installed It happens becasue (during arm build) gnupg_2.2.27-2+deb11u3_all.deb was fetched, but other dependencies (dirmngr, gnupg-utils) for mipsel have old deb11u2 version. Fix: separate bullseye-mipsel into separate repo in base-apt. Signed-off-by: Aliaksei Karpovich --- meta/conf/bitbake.conf | 5 +++-- meta/conf/distro/debian-bullseye.conf | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 1372a00e..a8eb62f7 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -99,8 +99,9 @@ REPO_ISAR_DIR = "${DEPLOY_DIR}/isar-apt/${DISTRO}/apt" REPO_ISAR_DB_DIR = "${DEPLOY_DIR}/isar-apt/${DISTRO}/db" # Base apt repository paths -REPO_BASE_DIR = "${DEPLOY_DIR}/base-apt/${DISTRO}/apt" -REPO_BASE_DB_DIR = "${DEPLOY_DIR}/base-apt/${DISTRO}/db" +REPO_BASE_DIR_NAME ?= "${DISTRO}" +REPO_BASE_DIR = "${DEPLOY_DIR}/base-apt/${REPO_BASE_DIR_NAME}/apt" +REPO_BASE_DB_DIR = "${DEPLOY_DIR}/base-apt/${REPO_BASE_DIR_NAME}/db" # Setup our default hash policy BB_SIGNATURE_HANDLER ?= "OEBasicHash" diff --git a/meta/conf/distro/debian-bullseye.conf b/meta/conf/distro/debian-bullseye.conf index c368dcaf..00d50df4 100644 --- a/meta/conf/distro/debian-bullseye.conf +++ b/meta/conf/distro/debian-bullseye.conf @@ -2,6 +2,7 @@ HOST_DISTRO_APT_SOURCES:mipsel ?= "conf/distro/${HOST_DISTRO}-mipsel.list" DISTRO_APT_SOURCES:mipsel ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-mipsel.list" +REPO_BASE_DIR_NAME:mipsel = "${DISTRO}-mipsel" require debian-common.conf