From patchwork Mon Jul 27 11:26: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: 5294 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:17 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ed1-f63.google.com (mail-ed1-f63.google.com [209.85.208.63]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTG2c001077 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:16 +0200 Received: by mail-ed1-f63.google.com with SMTP id 4fb4d7f45d1cf-698557ec1e9sf2024936a12.1 for ; Mon, 27 Jul 2026 04:29:16 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151747; cv=pass; d=google.com; s=arc-20260327; b=Gkmugl8NUXduMS5UsYDhdL4sPccrWE6wUwEI9RABcr6aM8n6TDdKXRVjx/hVFcXtmz xuA1eW2w2F2ZmXt1qTvCXmnzJBpXtTuv76L1RqJDLUEM2t/TuT+f2/srkb/TJBZ00yQJ hzPErcIY5AXyAoT4vFzo6j8JYDtk6VU1Ho5337XnG2qsOO1tjHE5RQ1dyqdajbkxAhgD RE56i+B0FzanMqCFnwJRXz8BEOYcaLWE7uEgJsAcypURIzDwzEHqkbMB1ciooUPenWf/ OtsVEcykEQhKa/85pTGVGtr4Fv527d5QtwddD9vw1YAxGSWawrugxyenLuFgOh3uSAGx GPMQ== 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+CFN27/YzneqFxpxZ+tOjqk/IiacCz1X0w+W8MN5kQ=; fh=2MqwfmEhG2TU+BmheYX8DuoHrJVr0JmjVLYVNQxuTqM=; b=jivYA7iNv94A6dav3ML7DfEfk3L3gZqu2mIXhHUiKQZBfoyWUb8zC7IGkgbVfPgzLf GIBona4gPxf+/1ThaWaNuNAQwVnuNg3g0Jd0MENQQxqCQGTwgkadnGbfqAg/iBGdyqNS lCpFpmCn0KwNwWz1cuThTUux5UggIPN5cx1Kn8n1MESXFs9w2Em/ElsOmgfglR/qA2FL xyxQqO0jeERmjkUN8SHsGo4h6R1nJIUJbXHHHhU3ZYTFGO/iaol4LeErb3RghzDNCHj3 o1Ja2L6bcVuuvRn5vHRjz4NfxZLQjBQYREiM7YNerQkgDTjazZsTTSSImTNrb0aqhvba uIXQ==; 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=1785151747; x=1785756547; 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+CFN27/YzneqFxpxZ+tOjqk/IiacCz1X0w+W8MN5kQ=; b=sEhJoS8HuYeulFj9sgGq77LXkdHf6K5riVbu4j2hoP6hk8y0jgjpW24G/wBeAJxvcu CHFxfs+Wkznz9p7pZsajFGQWPvZgj3q9RdJyh2wjJog4p9lXlW7h0xciGJugY2OckXnm Gv90JI2gGRSy5RYK3UJHfK+dqLwmjFRuckwzZ32aXQz4CfeJZrncbIAZDXiR/KR6uMnv bI3eTgIjWFEw3h6yhScl9yRlIfFGPXJv6xuUCLcbOLG0kIt4g8TDJjbiB8S6cDRW32Tw mZCEKF38gwqBP5lcmVS0EWW48eq7IiH9ewYQyQ3nOIdCdvE8USEhDRDjkfh/siCx45IW TGTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151747; x=1785756547; 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+CFN27/YzneqFxpxZ+tOjqk/IiacCz1X0w+W8MN5kQ=; b=MIRoDje0UEOG5O1o8tIlQ29t2B3OCi3AK+7ZbVLQprH/QxnaWNQ278BJKpGtWZxC85 OgNzbK/e1lkigAtP9zc74HfcY9I2RK989h5KNSD0up4J3wXuaBHAviGQlt0OBmv/4/jO 3bdcHcXE3JzuaL9C3hSq4An9pqHQJxGdMmT1SYDcR071waY/AyRdnYaUtJO025Hut/BX Mtoc7YEuxDTa2mK4af3fHyh1Au7XbwXSfQQLpyrCpzR1vD5RRymd97MISgWnniR27zFp s0qEmRA4En9LGigjL3hlc+W1qLc5nfbzNr/yKJd+oIjw+L/bfh76lxJfSj018IkLDAyX 0+ew== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RpvdigmcOlH+3Ot9rDRKbZCtqB0mxZn/w8QhZu6Azqm5Q6nJXrg34+jNb1j4SaMzeV6j6Q+aho=@isar-build.org X-Gm-Message-State: AOJu0Yz9RJlrdUPiLDvUa98gMeAYQmzMaol+aZBSZDb3tHHWGiwZ4bHI 0uudsMyCbHkVFyWpt5ei9GB6UJuznhkhpReL7hXG2qi6l9S9gjX2q/c4 X-Received: by 2002:a05:6402:3899:b0:698:c167:91f7 with SMTP id 4fb4d7f45d1cf-69fc1170687mr3300733a12.34.1785151746581; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPQMmIO7HVFl7qL97VXZCDp1/+OqslC/MV8ZP04IBQrYUg==" Received: by 2002:aa7:c942:0:b0:69e:1686:2039 with SMTP id 4fb4d7f45d1cf-69f60d9016fls4613329a12.2.-pod-prod-09-eu; Mon, 27 Jul 2026 04:29:01 -0700 (PDT) X-Received: by 2002:a05:6402:360f:b0:69f:aca0:3b9f with SMTP id 4fb4d7f45d1cf-69fc1009d18mr3173645a12.15.1785151741464; Mon, 27 Jul 2026 04:29:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151741; cv=none; d=google.com; s=arc-20260327; b=l8VzirRdoZpKkaP69L9kiwwg3JrHG5nQjj2ap3ROPpyLj3rvnp+TzUDlBjgls/WKIU j1Yf8nIwDncs18drMjnlLyt0TQsD+Z+BGHP5iB5Qr93zWkGf0OAdeYSaTaTBJREE3POE gaYmoC679OUWg+3CTIBlP7unnoOcUhyhHL6Zx6ZQLggcXyTKDF5qOtSFOPhmKVTJENZF MdxC+HxIMkBefzCE6w1L/8yCbnSqu7g2Jji/g0LYpDqrxZqHu5pDiD6qabu7cJMkH0yH wNeau/CF51/cKEnNr5I8KeS+fe/TqhAnOe6HKeYUyjsp+YL6WTKKco1Aqg3bwQrvIbdT dkkQ== 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=0fckCMAnifO628So7pF1blVxtW1x5kanHvgN/qE8uSo=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=s+b5SlVAtQhN6cCmkorkVD4QatQxULsPYyKe/9AkQ3zTl8tcZlV1CwHEKELhKgVJfA WtV8fIGUXr76EcKoxWrfeH1bqouQb33GvYgg1kdcbEmwQ74UBFU0WZlH/0NShPeRLe+L QASwQ0inZTTe/9wjycgSxioM062bhhSaTozeZ3an8W8R2f/bPVc2e7O6IeNhuMJkVG32 tvl0zPZHv9fLZIoDpOFUGrU76AoOgpLr22D4cFIm3z3aMtxvBJEpiulNcwwEQ1SHQwCw LviOUC6nUcFRxUvzG6MalXeOcU2m7BQKwyS3LqhBnZ3yGY6XgivCEVC97cG2Qy4cUP3M mlEQ==; 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-69fb4dd4389si145497a12.0.2026.07.27.04.29.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdR000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:00 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 01/14] scripts: Add debrepo python script handling base-apt Date: Mon, 27 Jul 2026 13:26:19 +0200 Message-ID: <20260727112812.2255297-2-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 --- scripts/debrepo | 589 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 589 insertions(+) create mode 100755 scripts/debrepo diff --git a/scripts/debrepo b/scripts/debrepo new file mode 100755 index 00000000..81056c3a --- /dev/null +++ b/scripts/debrepo @@ -0,0 +1,589 @@ +#!/usr/bin/env python3 + +""" +# This software is a part of Isar. +# Copyright (C) 2026 ilbers GmbH + +# debrepo: 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 `debrepo` 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 +``` +debrepo --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. + +``` +debrepo --workdir=d12 docbook-to-man +``` +Adds "docbook-to-man" packages with its dependencies to earlier created repo. + +``` +debrepo --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 +``` +debrepo --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. + +``` +debrepo --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 +``` +debrepo --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 + +``` +debrepo --workdir=d11 gcc +``` +Add "gcc" package (amd64 version) to earlier created repo. + +``` +debrepo --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}/debrepo.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}/debrepo.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) + subprocess.run([ + "wget", + "-H", + "--timeout=30", + "--tries=3", + "-nv", + uri, + "-O", + f"{self.workdir}/tmp/{filename}" + ], + stdout=subprocess.PIPE) + + def handle_dsc(self, uri): + filename = self.get_filename(uri) + 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", + "-S", "-", "-P" "source", + "--delete", + "includedsc", + self.ctx.codename, + os.path.realpath(f"{self.workdir}/tmp/{filename}") + ], timeout=REPREPRO_TIMEOUT) + fd.close() + + def handle_src_list(self, pkgs): + if pkgs: + 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: + print(self.sr.index.archive_uri(sr_file[2])) + filename = os.path.basename(sr_file.path) + if filename not in fetched_files: + self.fetch_file(self.sr.index.archive_uri(sr_file[2])) + fetched_files.append(filename) + + dsc_uri = self.sr.index.archive_uri(self.sr.files[0][2]) + self.handle_dsc(dsc_uri) + break + + 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() + + if self.extrarepo: + apt_pkg.config.set("Dir::Etc::SourceList", extrarepo_list) + apt_pkg.config.set("APT::Get::List-Cleanup", "0") + self.cache.update(progress, sources) + self.cache = apt_pkg.Cache() + os.remove(extrarepo_list) + + self.depcache = apt_pkg.DepCache(self.cache) + self.sr = apt_pkg.SourceRecords() + + 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: + 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 debrepo 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}/debrepo.lock", "a") as file: + fcntl.flock(file.fileno(), fcntl.LOCK_EX) + + debrepo = DebRepo(args) + + if args.init: + debrepo.create_rootfs(args.aptsrcsfile) + debrepo.create_repo_dist() + + debrepo.apt_config(args.init, args.crossbuild) + debrepo.apt_run(args.init, args.srcmode, args.packages, + args.dscfile, args.crossbuild) + + #Unlock debrepo context + fcntl.flock(file.fileno(), fcntl.LOCK_UN) + + +if __name__ == "__main__": + main() From patchwork Mon Jul 27 11:26: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: 5286 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:13 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f61.google.com (mail-wm1-f61.google.com [209.85.128.61]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTCB8001019 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:12 +0200 Received: by mail-wm1-f61.google.com with SMTP id 5b1f17b1804b1-492488f8583sf24049495e9.2 for ; Mon, 27 Jul 2026 04:29:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151747; cv=pass; d=google.com; s=arc-20260327; b=b+VEIHtF+0ctvqN37J3gtdSTDmxTeQCyHYeslv8rya3wSAO/DBOyMRIZ7s0R0sqLrC mA2Gc+psVT6tGqq7m8s5b6VCMlBzq4rz4iy6XyuPZf9yfh0Z0wBwJkiBfBS2/dgUbb17 oofDPWQGZ+ZYAaIIaTG1uTXiJV9DaleIdpV2I/Y1M3rl1V3P21boR5RnvDE+VqaNl2OH GsjiRY7opiaVUbHPPLkumZLWJS4oKqQhAMvcrzDnGkUXWh8LUqEby5eN47nrD3etxq13 SGs2qbR3Ku91f/Afw39U0gPmpNOveO7N6kXm0QxEQ5eiMKoquidQddcDFNAoxj4gfeVc M6jw== 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=t16oWWIXdPGe+9fxIs8ePq7211igJcoFIvfdZF29mus=; fh=2+hZ8mL0Uhnf1zyIvdQBzJDAexcosLItaXMnugLjPWA=; b=O4G1KGnukRFz/PF4gNnH5r8KI0BhHJkXhkFpBSuECsg06QxUElCZ47+G5wAwuy6bqg uaiEwXyhcbR7KFB4QbmFn0llyn+zRpSc2cUSUxiocPnSzbDI+Itrv2IxzmUHhzmu38nN 7iPg7MUroy3WgJVhBoVTRhvi8DQUU3oS2BKSCCNmzA5Vu//kw0NtKw/E0tVymN+shak1 WQEcZMzJoTV6dk7MSgP8cobjjUbquoBb12n6lLZhOT/rQOO7Ti0/XQrtFfc4FDewIXuk lJ1oopbusA1n20/Bz9NmixnYpz6i8E7VRfxItKgRB7soRF90CpZuQoG/bjlhRXetGp24 bf1g==; 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=1785151747; x=1785756547; 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=t16oWWIXdPGe+9fxIs8ePq7211igJcoFIvfdZF29mus=; b=hKiNOoi+nkPRNU4rkgNpSkAdao8/SuB5SMPA36pRFzd6o29cGoyKvNdoQFhaXCLIin 8gPe9H4le11s/xn6qcx0c1UsC/JvJnk0pHVNsBPeiYsJq0oC/5Z12nBB8GEsSyW0LzOz jK3ynagaXg03hJ7/Xr8wHhou7l6FqnCINnSA6G8r5JUn77XQkwuJfmqa1MyCBL4W9GJY mGl2Qgok9x4ilfFH4DFh+J9ULSWXGS/1FdrXhcwHOJC1/UIkv4dUlqkzmw4iQ7dHzWB+ tutdWMN7NX1Rl9vXeil9kXPeQpSNs+rIuXWDjZFSaoDdkxLlxaZKjXsNZ+HxoGMlxr5N 894g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151747; x=1785756547; 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=t16oWWIXdPGe+9fxIs8ePq7211igJcoFIvfdZF29mus=; b=Zscp8WBgXvSk+gADZ60FsrCNr9ueBRIKlTf22yrt5hFkBaEPji/CwoElwDpU6WExwO zDBrLh3YZFSIwX7uVW8R7ql0+QVkpeJXQi3XdKCCdWeLtfAd/muAAkCyv0FgsiPAtVwx Iaol+eFFBlSi7XLDSWCjjMayYy6T/VE7v0OL3sss39G5s9TqSZf/l0J2gl8jcpvh/htt q3c6Me3yz+0afknsdpHped2DIhQ5g4Zvmj3kwd5lwxAtee8Sn1ZHurHiLgJBwBgHkuYT AEOw/54qVzAJPNCJfn3tx/+T6crtox61JbY41ccij9NQa1IV+dqEqee6azm1fpIbiBY1 Gbog== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Ro43NXn1988XvaPL+85YdFxsAawH+q9L+wyUX3vnek1xxDtG4MS8oc/4zntls5GlFdSdQa651g=@isar-build.org X-Gm-Message-State: AOJu0Yzx8pUBQ4b9LwCI8/2nG0Dx8qM+ZTPoXd9fwK8gGH9VAvC0cC77 tF/5HIrWhsXqiNVAGeXCjMdzSYDhu37LN4ncaUNPWCQr3vDeU1vCHV6t X-Received: by 2002:a05:600c:a00b:b0:493:c182:6b08 with SMTP id 5b1f17b1804b1-496b570f64cmr106783245e9.36.1785151747002; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPTlZEjm7v9d2wg9R8liOdbayHhqNBWga82A0PNk3Mc03A==" Received: by 2002:a5d:4f8d:0:b0:451:2ff8:a40d with SMTP id ffacd0b85a97d-47f8c8bffc2ls2705173f8f.1.-pod-prod-02-eu; Mon, 27 Jul 2026 04:29:02 -0700 (PDT) X-Received: by 2002:a5d:5f92:0:b0:47f:9ac6:c9bc with SMTP id ffacd0b85a97d-47f9fc8a7b4mr10331689f8f.2.1785151742015; Mon, 27 Jul 2026 04:29:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151742; cv=none; d=google.com; s=arc-20260327; b=lCglv1lVDq1hUfTTpk4Q7bfqKrYYpxPIc0dWepg+dEI/CN+T4vrx7e7eFYiRAehsx0 aTDgfkUI0r8qZ0eHtKL1MVln5KO1hthSYqqZ4GrwWkc8yZryLx1/sqqMGot1On1xxuy0 fetLLKGOtUe6rqxze6ByeBKut1Fsqkc4N9iZNXoh1rT6BS46zV3mzvsVELPHwIU3a4bS raVW2rYHdw4adUCZ+FTfDQ+RNmp7Fxhq97qBGE3v/G+eMzED16l9OpEyJh2XuhTQDJX6 W5rnTpTvekdpry4p0c9XwXgCnFsfqwvdbIxJFGDajqZwW2ZMXAjvQpqRg2Q6Q6OLpQ7P xaSA== 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=+oOkneHBsjhGCKih0dwrkhEX2lWNlz55rfkDGBuOYOQ=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=s4sVGb7TvMWNjOq/ABql64QYpxoI0Gt9KIWfYKsdWmSyufgGpN0dXoqlOMvL2AbUFb 2Pm74UKRihmvp4H7im5bKgUuM7+BXmHxu7lMMsxD44U+rY0sWrsiENaVEqdZejMcZoev hzCfRUDAgOqoXfGasfotCuSZzhzi5EOTduulbe4GTx71nO4XmlHM7wlTWJPngt4y6z9n cPUJPKpv2FslxUoLidFUYkouEV/xvlXeSA7nX4jGBnOQsBs9bYbYm2rS28qDOiKiqG1k 1e9MY7a1QWOnARrXEFAW+F1TefQNuZcAHVppckbDd9MdXTBb/9JEAUzEH6CF1BCJ49VY dgTg==; 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-47f85c81b94si304718f8f.7.2026.07.27.04.29.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdS000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:01 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 02/14] meta: Add debrepo bbclass handling base-apt prefetching Date: Mon, 27 Jul 2026 13:26:20 +0200 Message-ID: <20260727112812.2255297-3-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 --- RECIPE-API-CHANGELOG.md | 10 ++++ doc/user_manual.md | 1 + meta/classes/debrepo.bbclass | 90 ++++++++++++++++++++++++++++++++++++ meta/conf/bitbake.conf | 5 ++ 4 files changed, 106 insertions(+) create mode 100644 meta/classes/debrepo.bbclass diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index f5b84c84..7f89d121 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -1137,3 +1137,13 @@ targeting Microsoft Hyper-V virtual machines on amd64. The machine produces a `.vhdx` disk image using the WIC image type and GRUB as the bootloader. It supports Debian bullseye, bookworm and trixie. + +### "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 +`debrepo` 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..b4db9219 --- /dev/null +++ b/meta/classes/debrepo.bbclass @@ -0,0 +1,90 @@ +# 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}/debrepo \ + --workdir="${workdir}" \ + ${args} +} + +debrepo_parse_dscfile() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + dscfile="${1}" + args="" + + build_arch=${DISTRO_ARCH} + if [ "${ISAR_CROSS_COMPILE}" = "1" ]; then + build_arch=${HOST_ARCH} + fi + 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 + + 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}/debrepo \ + --workdir="${DEBREPO_WORKDIR}" \ + --dscfile="${dscfile}" \ + ${args} +} diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 0f35a7fe..3f94392d 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 Mon Jul 27 11:26:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5287 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:13 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f191.google.com (mail-lj1-f191.google.com [209.85.208.191]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTCG7001012 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:12 +0200 Received: by mail-lj1-f191.google.com with SMTP id 38308e7fff4ca-39c742c87bcsf1049751fa.0 for ; Mon, 27 Jul 2026 04:29:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151746; cv=pass; d=google.com; s=arc-20260327; b=OvbSf42PzojK4QiNLEtVx/0QTCqVlgdDR3FRhWIXv4lZR2+2biVCaiopN5QKpvvF81 2479QsBeDgH7lUF3KYKbWvXGekniPvq4OgC8IXpm7eadPPMUcBvKcUsL5yfk1qacelxP MHrkwpDKyaooESSB8RGDtEHIXip9R2pkQwPHuYWsri13unRFmYM0LKM/wfVVtDF++Ami rfMuJMfKfvxXCZ8NrtiXaHiamgEjZoNmMxR7KpnAJjY+R/Tl5/rrN9lyjVgwaPivUqo+ yvhtN131+P8RSD5y/iBqsbMqN9HZkQC7O5JAFyeUXqB7GiwtXz9vvATFCB21GWh2V72d aNdA== 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=E8ZIuMj9KR83MqifttSWOam59Lx7taqtTaHwqi6oW7Q=; fh=MZrv7z1IPbIykNrfQitSth6ZqvEpwFH03Q596LwrtvU=; b=h1ebIh2CAKpREdV6QLbTp6yfEfFUF3iSHT7x45eV7uD0csX6QDyMpjmY9FOyU3F8gN 9XgEm0jtbcXhPv9z5G8Hpnhj0yXWlV2GPCfUJRd9QiUkzey1s/x3nqImzMkNeZkPUs2u jUJeX/SresBNKHv4Gyrra0IbaLbWtfdOQIjD52ljtdfT6H1oHt4GJwFZBNFSQmA5bE1z hu8Iv5iO/1yw0n9cVUsMQ7YupFo/eqrUx+G708CBykIPvG3Cp2OmwNk2tHsmDVXfBm3i uoT9VmlNJGABGHexSamnTJfJwTBaesaEOLS++JF10TfBwY4HnVfUCdvdIvixBKZ2nuA6 HG8A==; 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=1785151746; x=1785756546; 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=E8ZIuMj9KR83MqifttSWOam59Lx7taqtTaHwqi6oW7Q=; b=mD7QSb8fdhxWRySLl8b/AGJYCYhUg7g6ckL+n4wKrEkzWxeOD6M9jHed4wOHHpsBAy Q5hWVEOLU4YC6m/At5BeCTydA/Tu8ch1Ke+FSjISE3YPK8DLnFv7CJd2I0quaOfgoXWE FJPYNppoH/b26NdWAlFj4CyosDxZYrvWwnfsf4h2EPIwchXf56+qidA7Pcd+Y3yUB7DO 23inRqc3PSkEofi9nVBvPIyDQrpYk6XY5p1QHRdFzaJoArJycvrXJO5UJzyQHAovbq97 DU8ju8c8Ss0YL/CDlJbwCUInrnpUKmHjV59PGpDBSLQnGxpuqzSKsTqYJ6LTth4Z0LuQ wwAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151746; x=1785756546; 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=E8ZIuMj9KR83MqifttSWOam59Lx7taqtTaHwqi6oW7Q=; b=VKx+UFI2cm4bfWfmvtlqBL9Uy3Lzah7TiWRugOC4vF6aXYI7v9pvNyBRB4kMOg2tp6 D03Ot6RAFN/fjIinAhgVKQ9RoZHxt7Q5Uih0f/tprOk2bA46uax1tFxq1DaDhy2L5iGz MVjuPp6nePXYhXbS2Smi2Xs4LArrPulqrzYORoPbJePaME3wbm1r5LY1uUQK0t8Cj0Hh EwP1sKzMnYFBLZwGETooFukkIM9++iWtvrpFPixkk8Mi8p4+DfC+/lv8djffiFVU6TPv SXiU5Ahen0G3DO6KoBzyT7NNKkhknadNK3QuGK4b4jqIkOIRH5/OriInB5JmVCMEOU4x 23RQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RotkzduEvSOor1O+a4XOxsJmxVHzFSEDWVqDf05lsQxVOGP4GtCc7pfYCOfwU0UIIXaz0XZJ7o=@isar-build.org X-Gm-Message-State: AOJu0YzbZhmeAM4gGa8pxznQPi+B+Q7RP3HHlSb6Gw4k6OO09Aj3Q+aQ KKpnFnXnnhzjVsTesqo41wmbKJ65LYtJAKqOubx6iNukvH//v3adrtkh X-Received: by 2002:a2e:a9a0:0:b0:39c:a0a2:fe93 with SMTP id 38308e7fff4ca-39f287e8ffbmr8320061fa.1.1785151745866; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPROj12Kf7dS6kgPnI9HefkuUczgs+GJELULN2qQPjICHA==" Received: by 2002:a2e:87cc:0:b0:39b:a0d:b8d6 with SMTP id 38308e7fff4ca-39f064c57adls14275951fa.2.-pod-prod-04-eu; Mon, 27 Jul 2026 04:29:03 -0700 (PDT) X-Received: by 2002:a05:6512:1593:b0:5ae:c563:f611 with SMTP id 2adb3069b0e04-5b2c1b522f6mr1468158e87.36.1785151743137; Mon, 27 Jul 2026 04:29:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151743; cv=none; d=google.com; s=arc-20260327; b=NKqGC+Ue2IztfnPTHUbvY6H5FJjxqC6f23zSxSgp6qaMdGU8kAob2fVo8oz1t3WYvV p0DDiov8H0CUdcwySii0hWo8IYoR88kdmyTm01TdWKf/Eb5rnvldS2k7R69Bq4UeVfqF 0xv8P4hRXYqEYQQsOIMCiQoGJLlFz7hP+O7+Cv1CPi5piVeDMw23s5lbGjMLDC/Wmr37 MNgnG57dDiokZ0ak/vEKQFX4Oh1NVvZ4NPi2OslXPUfC3+102RpV75nJnfAngfwq2d5s A4OqBfBHsy4u+F7VRCmYQAertg7UP0cchNH1PpMFEmIwLFGoutT23Swvay45w0LHDUUR 586A== 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=DzyERn8Fh8eguxt1SGsCgvQ/cnxZ8bNfsR8aDCGuhvU=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=dQtkrOyQM0dE4aq0mErAM4cU5vYW3DFCB5uCye+3yedvXRE39FKRfHADIvl7aXVyGb XUNqxvWSznNmfEg4zJqwrFhuj6xz+ti8ufB36SYscIptyvEz6ec5vaCOPt/fj9eqQ104 grqdLuoCpH/4hEp4/CF57dV8Vt79LViUMHZJULH/pZJZl5VSK/+XVmXS+eSP8MbXTbVZ kQ+5IGl8H+j3AOa6hCtRhdQPUTAalLe47sw4R4/bIfF3i3/2kv3bCNavSmVtLdpX8uhL d1CRyuwPuKJgq6X+gzqCQXmgIz5ZvQDfvVwYYdtXORO55HYcfaiESRHe4uG7E88qQV5N 11dQ==; 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-5b2be09a942si108215e87.4.2026.07.27.04.29.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdT000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:01 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v8 03/14] meta: Always use base-apt repo in local mode Date: Mon, 27 Jul 2026 13:26:21 +0200 Message-ID: <20260727112812.2255297-4-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 --- meta/classes-recipe/bootstrap.bbclass | 6 ++++-- meta/classes-recipe/rootfs.bbclass | 3 ++- meta/classes-recipe/sbuild.bbclass | 3 ++- .../isar-mmdebstrap/isar-mmdebstrap.inc | 5 ++++- meta/recipes-devtools/base-apt/base-apt.bb | 21 ++++++++++++------- 5 files changed, 26 insertions(+), 12 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 77e6aefc..80731c49 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -61,7 +61,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..6f2e47ac 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -153,7 +153,8 @@ 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" @@ -183,6 +184,8 @@ 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 mv /etc/apt/sources.list.d/0000base-apt.list \ + /etc/apt/sources.list.d/base-apt.list 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 ''} && \ 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 Mon Jul 27 11:26: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: 5290 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:14 +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 66RBTEn0001043 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:14 +0200 Received: by mail-wm1-f63.google.com with SMTP id 5b1f17b1804b1-496bbcf7d1esf7698415e9.0 for ; Mon, 27 Jul 2026 04:29:14 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151747; cv=pass; d=google.com; s=arc-20260327; b=QbjxAkAlMVuYSYmYbLWi6uQjzaHitXOR4jVYe0dDrK7vBnc/2Nha0uEzZn/0wKqj4b o1+9qDdfbfqOZhw0Un+qG/IMGPvYHOiyzZnkdjtIGt/zyu21YKDKQt38pq8Fgk7u4vel 6JrretxOv9my6KEK+VE3+xtW53dyrrNb4ME4bYOJziEAHO+N8nekejEzT6/f7ip2BtLE aq1chwLxgUyHGo+wvfOndrkXUhwbd6o4UWy5rSJ1V6hOJUaAm0Q9r5nLpXwvghvoWIXQ cEA/oKxKith5kg7Qd3kBRn7yAppTEx3xNCdSI06xyiMv8bBqnmCK1d8KxCrjohd2PKj/ 0QdQ== 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=EX1HAbpIXQetPYBbcZRg0bTp/+QBdQfhhiCp/RGJ/e8=; fh=z7adC1NpotXE4Y8VjTmrAWCTh7lFhmubJZib+7jtZLg=; b=GagTIYDmR4QaayPyOjgbpLcRqGVI1NqtOBHVLD2zPLjeQczqLoROsuwmWbgKwVQUD7 K+/ykvqOnxJWNXc7RzrwGC+BLZWz7qeOO5oLkLq/nrnX+5LRmu4zn/M50gM7cHgeJUFY incqm6FZr5VXwlH4GNkYB0lVv6Sljgil/eGH1QfcwMW49djWV3UZCC9B78ZGLEcOfW5c rFIkFxe++uRvsrV0mqT4+UU2kOFC7+AE4Pi2Chq+lLpEwcKPu/5w8O9fdf3oKtjqSpl/ AF8LXuwbSrHXPuznqrcoPg8n0pRRUudmLLqBa+QGQLvbTU0vLU4UTJyMzNfNsXBm4L5b KDrA==; 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=1785151747; x=1785756547; 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=EX1HAbpIXQetPYBbcZRg0bTp/+QBdQfhhiCp/RGJ/e8=; b=XNJSs6kWbkbOOZ5Ieiq9LDZt99+8nCkZDYmjd3VoH/WFDdd9AsWUN7oZLB1zIA8t+D TrI6NuojBcqkaGx4TGlN4/NPDwyxKRRKT9id6xhKvYPaDBTIb43hfMFFYvnhG6l2Xq2q WcY2IekLsyFmZ6KJE7jRErHigEsGX9yO8J+ESNT2QoNlTEiHGxi8b0m+I9eJ3SwS15jX zqfNHWhBMWxxQIwgFjQd7uU6OFQmdCU9HzOHsKPkTR1AYtztt2b+KJcqxVVCo63Xtpzw M5e/L3fN+f5I6Y25hX30Bt9MFOVprgUP5PEmrE7eaok6V381207xpvVZXDzrFiKiPsqn 0mmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151747; x=1785756547; 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=EX1HAbpIXQetPYBbcZRg0bTp/+QBdQfhhiCp/RGJ/e8=; b=UMQuM7/XBtU0vu9Tep6KoYF/LvmqSsROdMjlZaVZiT+CwoECdr1C9K4F0V/U02Tbe8 mPlI2EErFMgW3bLbs5P2Y3tMe/ZcBfJbDHuWTrAtggDBW23iSka3YRsHzVNooeQMwmUr n7g0XKQ3ehsF686tHB7cVQWoCu+WgnwWV7ciH7I16N3BwW6wvstlkkAETYpPFJ8yjopr Ucl1t7PamQA0noQH3tcdc+VexJNqUTOl7oWwp+aAZaXSegD48tF83yBZRXzcc15tH5T+ Glh7gGkv4kfNO8Vnl05pg2JnA5qd8ubR8KEd1nXfVr3PKm5NYpzjFda8PxmqfSIvM4Bj BGTA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RqPdY838iCWqXWfwZDIflFLSjESJ9TNzCSDMn6ydDoNdfZVrLHgejw4L8OtGplx2FbmaiW5zHw=@isar-build.org X-Gm-Message-State: AOJu0YwLIRnzTKODdQCJhpke0rf9jmTalizD2wkOF+b9f1k1Tg7VgdUC FWd36FUibxjnwuxtobRTiIeHKGbEBlEUGfjdYhPhlRGOmBlWGbj+2Sja X-Received: by 2002:a05:600c:4704:b0:495:4572:21af with SMTP id 5b1f17b1804b1-496b56be516mr103907925e9.9.1785151747336; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPReaai0HfOOVvOoFJNaCjQ6PChNGf+7RulUJsJu0pqL5w==" Received: by 2002:a05:600c:1548:b0:490:acbd:6a76 with SMTP id 5b1f17b1804b1-49572c02f8cls54179435e9.1.-pod-prod-07-eu; Mon, 27 Jul 2026 04:29:03 -0700 (PDT) X-Received: by 2002:a05:600d:8445:10b0:493:f5bf:4da4 with SMTP id 5b1f17b1804b1-496b56fa4ddmr72950925e9.28.1785151743428; Mon, 27 Jul 2026 04:29:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151743; cv=none; d=google.com; s=arc-20260327; b=I/80qIYduoGoVK1H9BlSAu4y+b6NBgOCDtbFt8Yamlw1srnUfDEG223+lDXHOaOT7n G0ddNGMWbjQVlH+sJwhIZA+Cf4hGWnnBuYpk2U6qhAMwXyEXydbF6DHBzfsrv85e4Vnm 3HJZ1meL8a4J3/PLJmXCSItLoIFZCF/BJvN3L9Pw0/tt2fKq7eOWFNXc99cYveOwt0xn ZKPPuuva3juTnxonSEDaVgWQhMJDx5H7cifJcDuFi9t6fLe9ROPhHp4VvX2AWbU55dAc hquPm1FUcF+Yvq9ux/OnK3L5rNW3JxSto4EJAobWDzebE87D4Ifmse1jy/yn/Nvw6OOj cNYg== 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=KiV86S7q8xhWAlh3klFdbd88oktx00ROy2r7D4t4QOA=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=kkgmJdY8WnfJbqc4j6gW9IX5/bJQMb6VUQIjU285WlSLO+35WINsvAcZvKPyWjhrt1 paTOGHFkqbgJcvokQJnbEvi0lvEmAmqXofWT7KDZhhS9ZZi9gtm7msMEwjwqxSqwoE8C 3R9YJSoefj6aNd/Yfe/MHuneqTHDfrSxxmMhsVWviGpgLSAn5Ci0MDBJFMgVOKbAzo54 J1l43C2askc62Xbo4rqhEl/omL9LGU699kxXlSZotwDLLJLzpHsQ6FUvWIPcKcuCPVeT wNwZOmxJXE9NkbAUYObXSiQKlxLhBH3RGId0pLUB2qv5SAYR664OVQURPcug4P2JwvbR oxLA==; 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-496c39ee775si22635e9.2.2026.07.27.04.29.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdU000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:02 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v8 04/14] meta: Use cached base-apt repo to bootstrap Date: Mon, 27 Jul 2026 13:26:22 +0200 Message-ID: <20260727112812.2255297-5-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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..21948742 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}/debrepo --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 6f2e47ac..8220d15e 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 Mon Jul 27 11:26: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: 5288 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:14 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f58.google.com (mail-lf1-f58.google.com [209.85.167.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTCA2001015 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:12 +0200 Received: by mail-lf1-f58.google.com with SMTP id 2adb3069b0e04-5aec6240ddbsf1638429e87.3 for ; Mon, 27 Jul 2026 04:29:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151746; cv=pass; d=google.com; s=arc-20260327; b=B3qxCqTTFwtEruACmfEAuyYD7vXR9Vl+1X9vGCMyGdxHOjvOLTSwh9moPt/8L6e8iJ NrDwoR+tmEgfdYxDfEu5JenpZMwO8s/c8ivEwOlKDYo8dsPIZeRg6YWvwbu1JtixT3bS wwcviO5eCDqjO0G0ffu3Gvfvsh/w3KVN9CZcaQmQGRuMPoF5FeXhGBxqJReqECpXd7zO KBcRuoj/bFiwwWATquilITcuAF+mASRCyLhV9yKw3ryxo3mZ8/f0/KmVq3vNgE89BUDs AnkctiiDOKJprUimlGjlxsG3pveSTew2H1WiKoEgBJlad2s3X8HLne0fxky7EMYVtrrQ XtGw== 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=nWzRY+lLpA/FU+1+Ng/oGfF1R208glyA7nJ/6JJrYFw=; fh=KboI3GDwQnfTmn+Ixb+Tvj6YNBmeNAbONAv86hQCmOA=; b=qkJg6Poy3Ed1Xe9ebkL/AoqX2XDXSmhGp5YJspnInCfBYw+hdQXNazbZdDdnTeFNZc grNeYWC2DN9mGM75bTQxLiAfyEvzoaBve/eCDLYlWx5kM6Seb8t7i8HFQsVErGB4nY+Q 7OQxe2xF7FN4lXIh84D5jK3fKzwAyQogozWhMsTL5NeuiabSdOytNLH3zwqZwIigEwaJ o9Kjdk8GhR/YPoeeZXLF9KEZ2wm//WwtVJJ1SsnIFv5INQewOO0kGxLMLzwhBhPQB7hm ETbgYRDfDcbPi4YkTOjxcJ+Frzd8oDAXUvf/h9I7IWEy6Ezo7TjMjzPOuLxj7CWGeMYP 8prA==; 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=1785151746; x=1785756546; 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=nWzRY+lLpA/FU+1+Ng/oGfF1R208glyA7nJ/6JJrYFw=; b=OAROyVMNJtsBr+AmsM90I9MxOS4qYb+xCXXZTyKnS9TmdDMfg3MCX1gFqctiH71BtR OjrgEy4Y1F9mhjQhQf+xd995keAzA32X46p9HLSDKsili0FqYRQd7RhWVPYcEk8aLg3W Lx3XvJhcfuDsiqaGjjhmd6vHgeE9rjd4IQpKX/ctwiHFi/mjfO2Wa7BQiYF1AMSJedV1 qIhAdGusnRaLDRG9M0Z0AkBSwgtLPFI/NU8JNP+PtErXCPnx5LzqT/EAsKQuaX7EkdxI UvcnJ1gObStBu9hh4Czl55XfXyUZsrBPschUzjMa/nqGRWVFZk1AlNAdqxm7rXmnp/Jm D18g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151746; x=1785756546; 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=nWzRY+lLpA/FU+1+Ng/oGfF1R208glyA7nJ/6JJrYFw=; b=V501q4yaehuBPWwBeRLMLw3hkNO62Q0pOv5b2UVUgMn9HVUqJnuQj/ol2duo4oVpSy e12amkJJuUTJ5IaSBIGjKaWyvLaiBtnuKVG8jMy+MFoFe67Psy4Semv7PcibLw63JcgZ 7t6P5ZtJuKLmBegpcJpbwaMphpdnt2yB+V+e6hUUJjuioxUBZ74dwD5IeD7ZyvO/7Evy cDtwekGVI0JL6BOpnXpObwbQDsHhuitSqD6HMnofjIpGWIG0Exc08ZS+zZXmEhL6iStc f1i3NB+FNpb1yyEQ2ewseBLkWLASYhfA7584pYC0h+RZ1f+HNsNrDE3bWN6sNQ0kRuKT 8YYA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RriOLSIAt6rZOKHFJd/Uxb3mQZX/SZIlumWSoM7SUTPYXC8cLcpS3xsl5gxirJHqxV9QcCylp0=@isar-build.org X-Gm-Message-State: AOJu0YxUkaqdaNXaQyBrFZUCitcfIx0zxfer+eekt2Z6Vun5+V8nVw6X JKYgAogf2n56HFOv14KX2rY2uzUFT8mDwYhzktowidyVIXca1lcehDyV X-Received: by 2002:a05:6512:3b0a:b0:5ae:b887:bb33 with SMTP id 2adb3069b0e04-5b2c1af7884mr1649187e87.1.1785151746461; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPSevrFMDWv6NLcKK5c6LQuaLA491NY+GIYai9f+yWDe7w==" Received: by 2002:a05:6512:6411:b0:5b2:9d66:8c2f with SMTP id 2adb3069b0e04-5b2b02835c4ls1483846e87.0.-pod-prod-06-eu; Mon, 27 Jul 2026 04:29:04 -0700 (PDT) X-Received: by 2002:a05:6512:3094:b0:5b1:5f7e:1ca2 with SMTP id 2adb3069b0e04-5b2c1b29759mr1571752e87.32.1785151743947; Mon, 27 Jul 2026 04:29:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151743; cv=none; d=google.com; s=arc-20260327; b=Wsk70LsTOVpPmRVnlPcgeW1tlSPSQYQ14lTmDQ3ZFQV20FkCYKzCi13MfrAK19YMaP A7whhfv80xol4oCs2ebSPSbTfy2uNakZqbnG7+opewGkRN/4UA7diL4Gsqk1sDnRx6nD zhqigCW2Zu4EWTgEYYLbclQIuv0Doo2IrDAWmdlyQO0yxCUbGnoyU/LxJUTaDFuyT8W0 T/Cxya6GgReDT6dPtmhBWVJGyxPcmm5AzXxo05eM7ydvsEUtCP8W2UtmIPAIbgp2J/PH tXFw75iq4ls3hOvIdfCZhvuN3HBuXTCRPUpghGsAwvlNxXuBWqH2Ids0ccCSPuMvvpti nr+g== 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=BJ76rBL0j0MGkHUtpSZtkVlxZ9PCxw9XEFuPQ+u6Px4=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=iS3Zcm0fsdErC8Pzm2WMAR1zJv/4R9QTW1tfycjRbFhOhuOUbBzY9q5yhmqHGAFAUd E+d78D5cszWb4DFTjA0WLldaqaWjbelxU+F/Z3SUPVrnhmjppP9sy6VJxlOqquNNDU+T oH/FsgUN8Zy8k6jxve6eD6D5H0tpczeqK0+TE9/SkvsEi7XONP5x04Edt+zhu7AQfLmn 4+jy6gJiLSe0nUQRcW06lIdczoSKKbus9M4NxwIKp2ImeOeYKgLAlHTYCFp1+f38L5Vj Nwq/q55JI+olFeaB8XHRJAlmVHtniyaCdCoyMIYlNtJg4DKgDMnRBUCKMqacz5brmsEC 0lmQ==; 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-5b2be0cc58asi153055e87.8.2026.07.27.04.29.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdV000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:02 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 05/14] base-apt: Predownload packages to base-apt before install Date: Mon, 27 Jul 2026 13:26:23 +0200 Message-ID: <20260727112812.2255297-6-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 --- 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 | 22 +++++++++++++++++++ .../sbuild-chroot/sbuild-chroot-host.bb | 2 ++ 8 files changed, 56 insertions(+), 1 deletion(-) 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 e2ed4dfb..cda3bd2b 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 DEPLOYDIR = "${WORKDIR}/deploy" diff --git a/meta/classes-recipe/dpkg.bbclass b/meta/classes-recipe/dpkg.bbclass index 1b2616db..e885a743 100644 --- a/meta/classes-recipe/dpkg.bbclass +++ b/meta/classes-recipe/dpkg.bbclass @@ -111,6 +111,12 @@ dpkg_runbuild() { echo '$stalled_pkg_timeout = ${DPKG_BUILD_TIMEOUT};' >> ${SBUILD_CONFIG} DSC_FILE=$(find ${WORKDIR} -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 sbuild -n -c ${SBUILD_CHROOT} \ --chroot-mode=${ISAR_CHROOT_MODE} \ @@ -124,9 +130,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 c75025ca..78118e8b 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 ??= "" @@ -50,12 +55,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: 5291 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:15 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f60.google.com (mail-lf1-f60.google.com [209.85.167.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTEna001056 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:14 +0200 Received: by mail-lf1-f60.google.com with SMTP id 2adb3069b0e04-5aeb49bb645sf1541536e87.0 for ; Mon, 27 Jul 2026 04:29:14 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151747; cv=pass; d=google.com; s=arc-20260327; b=aSpEuzLNFRu6lCKO8StN4B8otLIUhMWur2TA/HBzCUVkpz8N4tqCldfRHX3NqEE+ct ebwUqaZotuakoi7mrgbDj9Nff3B7M7AYoMPn0H3ssfKgPLpO3Th/MsUfcqFCqSV5CxJ+ 683Og+tilabBXMCGtKngQVkC5TTWHg07JGA92xDdFyRckuAoDV+nAL2VIJOvfCiFHH4E ZkghhDUyJuLGqBsTVi91TJMSr2ktzD7e5qo1XRKparGRUDb2/Rx+uiDeoH3UJfN6uJdM 90Xd+Hrf1ELRNGxvIJC7qQR5xgfoXn/5FN0sdPmbmoUpOAR043lB9ymICan3GiLUNqjg cG5w== 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=nLO6Ui0KGX3j8wKqBkeJet2nLofcxlz4JVSYXNQQqLY=; fh=J55Zx7ezFcPgY6zRAb0XEu7QOD9QiVCs7DkcIr0Bsik=; b=ApXeWO1/gFyOioC1WuyilHGKPRd4Gjwy01Q07bjefxY6G45yurPYYIA/oxeo/8nNA3 eyCxg4KTzA/t7QgVfI//sV11IwZPPbUaBioKg5JLoBw7gT9RkPSv5ETC467zJen9pXCQ XmPYE30gyCkM39MBVRDKNomS8JFOGwt2DVgxPzgpk6+H/2VHeRtoQWKIkQYj/xT4xuOu i1OOAoqL1JjKH5iggXqjVv2AY4QMrcuJ1DEaSIFsj2fOXeMMAtFopWvbD8/U4WfF93E6 GF09wd6/7IDu2t60Imswksc/cRNPwmZUvwgSoFF9na7HNQKE7Dc667jmPjSIGDul7q7x P6zg==; 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=1785151747; x=1785756547; 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=nLO6Ui0KGX3j8wKqBkeJet2nLofcxlz4JVSYXNQQqLY=; b=L3OiJSe0iD6ON7ppRoTVl4ZERsbUkKCKV3RdQhuFQs5NyPZz0z5pvglSHVoNVT6Saw 2HGXURC7RQeLWi6vTkka9GUCfa2bIb8qrhvMsldWuMldRbdvidhUUDfiTx2UKyFqMwWL GRnc+iH9aYjWsIYE/JF9slJcQmC6zxB1ZA09X8L3J6DoxJlT45KPMmnbnYwS3URw3Ymo EKh/2Ppke6HU60R6fcvV16i4VJgEEvrCvuGNOd95Wj4S55dvApYH5JOYRCHwLFyuotiT pyFDQV7aGooJhlAGJLZF5iFskIAPp19Puq/6eiVtUGCTkfU8MS0KcWApxn+q/SR+DjOU 3J4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151747; x=1785756547; 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=nLO6Ui0KGX3j8wKqBkeJet2nLofcxlz4JVSYXNQQqLY=; b=pmIr/ZPXVFgcyshHKPtXAFYaDSx0crUJI8Dh819elhAhhQ01BVfAarN8A0nR/3NYTK JwsE9SxRXf+D0DvFlNuI4Ybg3PSJUYWYt181ryTe6K49Re7cdUt2fQMGyRQZ5sbEcG8c p/i9O7i63Mq2c2jCKYvcy7JimBUhG45/UGvC8B/QkBAv6t/l9tv+8csbj0H3oDBRfHPb LF0rOKn9A4caKA8ti9Gvmhog389HyTeEqX87iAo+2SjaATc1sC55XFR2Ze373SGIJQpv PTeKlFAbuPjy7fUBbCcuVHjViys7tkY7+ZgiMuL6ekINP8sQgWQiy5RPtrr5+cfeb/Rk 3iow== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrbJQPEh72fNTGJ4Poon3lo77AFVarRQkksne68r3Mt6vekGNzV58OALAay+13I+dSjbe0Y0o0=@isar-build.org X-Gm-Message-State: AOJu0Yz0cQ62DCvf5HBUWi+u5OGuzk9aj2w5U/DbI7c3RBh1V0esN2RQ 7WZEgo40DfRLmFOaFLNzriSzMpEQrRPaGOPKiQn6yraBfV8UOVF2uSpG X-Received: by 2002:a05:6512:10cd:b0:5ae:be77:44bc with SMTP id 2adb3069b0e04-5b2c1affaf6mr1557230e87.4.1785151746891; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPSjahyfOW0LmxZ8MYiIV7wGYrMmJPvDnlSRzSFzfYODKA==" Received: by 2002:a05:651c:31cb:b0:39d:bbe9:baf1 with SMTP id 38308e7fff4ca-39f2ca95f84ls6182451fa.0.-pod-prod-08-eu; Mon, 27 Jul 2026 04:29:04 -0700 (PDT) X-Received: by 2002:a05:651c:1145:b0:396:a1ec:7f5c with SMTP id 38308e7fff4ca-39f2887ec7fmr15294011fa.25.1785151744503; Mon, 27 Jul 2026 04:29:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151744; cv=none; d=google.com; s=arc-20260327; b=NI4zSKVRvdNeK82+gqt792l/GByRdxra1sLzQg/oO0wnZv3cZaKXg8FJoeSVggenwn D340sotPF0wdOitnGlmUq+3dFzHo074yHzyBE0/lyKjuF6SrSoi/pKjvD6WEXI5eJwL5 Gf5TNBGMOTXPTlZau3bMuPC11NehFBb8OUYlcV576KnUq7PUDr5/bkrVS0pB0DxrOM17 K1Hz1RyIoM2gHEsLdfuYGoBpLHoqiGiZNTRkYa41bKb9/wuAESzsTIb/GgTHJp4TwQhT T3oehtuAcH1pNWRjd/tQWrHAcJFjUzXs8T1so++irmyez2UJJH34qfpQsZlpILejIA6i GQLQ== 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=/H36PZUjJ7gy9X1b0bftlpttRSUWuos/aGaNtKalxbo=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=d+uOxWhsS9s2c/xJkJhg5yjXcb4bJAhzKo1ly0FlcPH4sh9tR8A3pt3hhCSA+MmNn0 SMPOcRy+4baoSvRoq8UsQlHXjXSCjWVHS0JyDy+Pke9u37obTu0qqI8AOA0ejcKbHHbu j5ajCGtfUXOTUlfTR9rchxX1BmRMKtn66qzBYfwH0ZQJuJM6eyIhd64Q54wvphx6xLI0 CC9BhA8MivasDxIvEmcLWdCOaP9GOW6dDSu1+YADmMxNc0gJj4eNO8GW4KgYaoqZRMO+ bbIej2QK8ZQlvjDlh3K83p9QYPFrwQmOiiiC6rOsWE0vCUxd7SDClYSxd+b5eaBtry0V Jd0w==; 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-39f22255cf0si1718261fa.5.2026.07.27.04.29.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdW000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:03 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v8 06/14] meta: Add cache-deb-src functionality in base-apt mode Date: Mon, 27 Jul 2026 13:26:24 +0200 Message-ID: <20260727112812.2255297-7-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 | 45 ++++++++++++++++++++++++++ meta/classes-recipe/rootfs.bbclass | 7 ++++ 2 files changed, 52 insertions(+) diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 60e2fecc..39c77151 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -27,6 +27,51 @@ debsrc_source_version_filter() { | sort -u } +debsrc_fill_base_apt() { + export rootfs="$1" + export rootfs_distro="$2" + mkdir -p "${DEBSRCDIR}"/"${rootfs_distro}" + + debsrc_do_mounts "${rootfs}" + + trap 'exit 1' INT HUP QUIT TERM ALRM USR1 + trap 'debsrc_undo_mounts "${rootfs}"' EXIT + + ( 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 + run_privileged chroot --userspec=$( id -u ):$( id -g ) ${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_undo_mounts "${rootfs}" +} + debsrc_download() { export rootfs="$1" export rootfs_distro="$2" diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 3ca46bb6..5a66b4ca 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -495,6 +495,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 + debrepo_update_apt_source_list "${ROOTFSDIR}" "base-apt" + rootfs_do_umounts + debsrc_download ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} run_privileged rm -f "${ROOTFSDIR}"/etc/resolv.conf From patchwork Mon Jul 27 11:26: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: 5293 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:16 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f64.google.com (mail-lf1-f64.google.com [209.85.167.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTF4e001061 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:15 +0200 Received: by mail-lf1-f64.google.com with SMTP id 2adb3069b0e04-5b2a9f6b0b2sf1527356e87.2 for ; Mon, 27 Jul 2026 04:29:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151748; cv=pass; d=google.com; s=arc-20260327; b=XTThW+9yEiD+qNrYdGKoc4Z7jVu84HAWt58jzA2+z1bi1tZMZBPxG7Kf0vWity5oFf zj03EtAePgHDUKNUEE8FNKmFRBRhPUSXkdDDntF3LJhu6NOllBt95dQMczBqmHaSgmBq fr6+fnwfHMyZSBJG+WwXDP4gsDubxzvNBXomrxB5OSzApsqMzVn9SuQd06uBzrJ0N7D6 xMG7JINotA8OZDUuDxGVGL6HEUaCSW8X6g7faT9Vhc3btYBTca1Fmbe3x0JQicV2BvJB veFaqtDHXKaG6R0VcbO3GtMkTXupgCxkuaFhiOPzvV2P+gzOnhFvbjgDWJjVaEFvfePc 2N2w== 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=/QtgB5f+B8U3nW8Zbwk2AXqU7XZbvf8hNHWqPmcqKAY=; fh=TKI0ToTis0x0hUW7sTjKFzaSUPn9C+uSNym1N6QHNPg=; b=JiG027/sL6+TRPqYcuiJavSWn0ST/VJuRByfmyp/rrw5Dyj/KtrARe4HRF5xUb3+C6 MnvKM+6oBVUjSrHPvt2XpwZAFWnGjvmlxWkOCCe5z26/K0ruxt+tULQUImqF6nGd/0za Pz/3jLu771W92ajzjuVfv+3+K+UPszebyUc/QiPfAR59kvWULFGZzBpsHiFHti3fnNUK r1nICVOk/S3bmpnkboNOUuH50L10sColxVeqXumUWD/iNs3icQdUzPxzR14QSrdycwYV w5KtR1c7IUpr4O2IK0VH2I4SCu2EMLx/LYOEc//CS5j605VgX4OVfrbQ0/uygJYDxO2z RUHA==; 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=1785151748; x=1785756548; 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=/QtgB5f+B8U3nW8Zbwk2AXqU7XZbvf8hNHWqPmcqKAY=; b=poOt3xjcR7UDwBxk4f1HeNrWQwl40KKbsaESBDB/Y9zXbjUUtbh0KgZ4MRuYUOlhh3 aM7zvk2GhHi/pmIfgu7kedIDeBJlfgew5N56iDDsvV/j2itZY2Ztz+X8VOpW/SVFA3xZ Vtm7Zss+ck15iG1GGmzPl7APJd2PsKVr+4Q6Ut7fTJ+PQBSlH4nC5n/QfUlLbTdYuFV4 iCGpCfQG38R4SSVsqUKjRkNCphiq69xU9HoQsY0UJ64uj8eUnck6SzImpg4UTiE0nuKK hheZ/w4hRbPltfcSkCKKfPaks/VLxRSLONkrHj3q7/dCfETzshRvzuaDDpYDJU4Df3L+ Yo5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151748; x=1785756548; 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=/QtgB5f+B8U3nW8Zbwk2AXqU7XZbvf8hNHWqPmcqKAY=; b=piDixdfzYoraAZGhWQakYZPyVvcI1a0x0B0SaQ8jCoVUXo3RIIxMaIttGlOvYlyAkj m9NXM0QKbM79fomHofqQWSlowJeTXeAt2yfZdkioLxbXamJGVrsMNMan/f2eqBbAMn4Z hgaLCCYdoxMscyJ02F4JITPEHxA/AUEiMnZjblhYUxc2RQxan3mivGlthqRU7JSSM/OK EdWuphVaWrgS3Io981mquTU37pndrF/H9lXShgvosnQ4kSxOwl7Et8kVlkHb9hbCn7eq iI7v9rhF63F1SZoDg1pJGie1T6vNaPyTx18qSGuQXkmSlxeWwn0KRPBgVy8qQuoYVeIb gpJw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrLXgQlSXQUn/bji0D+WEjFDFhbl60HiXCVuvxb5dhx6mg/oAa8WUcYQtQ9laJQEYf2EX0Bizg=@isar-build.org X-Gm-Message-State: AOJu0YwBFsDGzyM0mqMTxi52atSGjBJsUKzUnoqP5fd7FiDDcz0t7Etb 0QnAoA3pcvAn1fWmRyCYgp7SH2uoiFCNa5q9nvZkiCcrv6oeODJNKSHf X-Received: by 2002:a05:6512:3d1e:b0:5ae:b5a9:6e86 with SMTP id 2adb3069b0e04-5b2c1b4370dmr1602380e87.52.1785151747568; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPTf1mH3xYiJGZh3cX0GhlxzK9MlTtIfGTB0m5i/dr8M0A==" Received: by 2002:ac2:5327:0:b0:5b2:a215:a2aa with SMTP id 2adb3069b0e04-5b2b72465e2ls43014e87.1.-pod-prod-06-eu; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) X-Received: by 2002:a05:6512:15a7:b0:5b0:227d:ceed with SMTP id 2adb3069b0e04-5b2c1b4e838mr1434488e87.57.1785151745182; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151745; cv=none; d=google.com; s=arc-20260327; b=mwslHPOr7xN3U+MdyA00f6uBawZB8JpmoR/Fl+vD9NlQ+EtC+EmbYDs4vu0p0YwFSl bQB46K4K9wIuTVcdxxyZSgUuO8/ouTizOBtObbSyavi0Aa3x6xnc+e5yTQwiL2CH3sEz 8w1i7lKayCeUIYZqnii4S2X0hrEVJyRqTZCZ7AbTTo+rADSB5/wcmWEE5AZphIZzebf9 7RA3sjcghlEU7DkdrUK7YTnVkzXV71kyeX0w2ZwCQeCqKZN3XWPNuYbOTJAZkpqDWu6Z zxTTmxEMdV6S61jbkMva8GYLc1JB8nQVeudHNdpoEOPGpMjgtQvs3A4SCD1CtY3uC2Eb hp1Q== 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=wGGZz4b8dbpDvIf+uQM4CQf8ls7KiB8aJyUZ2ICPF34=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=spvuiOfoW/VwScL5fPxwFk1tbyYHrzgPgLvL3FWB34sXsksXJKQYwsUFfxlpoYouIC SJNPkW+bgNJd44NHGRT6vAfEdpL6T9b++SKjb9ocX/Iig2SRE7VnuGZKmiv1UgTTFr1t Mayfa2qVDUnPh5qz0mIZk2w0lvI9Xur7wol0kbvn3o0TJ03B2H9MpLBBFIKQ5b49D/35 F7NREzOFhZPud/cPQjYOFJ4JkQ7b1J4JPMudkxwOcEdOC+CnBxuuHXVVA/3c4Inm6gb+ tHDtCNCx2GknCXTK+XzC64oXB6EBC8WY66TdAhdxGYGY9sM1LKuSPabmD6lXXfh5J5Nx P13g==; 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-39f221589e9si1484291fa.1.2026.07.27.04.29.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29:05 -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 66RBSjdX000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:04 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 07/14] testsuite: Set ISAR_PREFETCH_BASE_APT by default Date: Mon, 27 Jul 2026 13:26:25 +0200 Message-ID: <20260727112812.2255297-8-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 4a6308d0..348b8cde 100755 --- a/testsuite/cibase.py +++ b/testsuite/cibase.py @@ -71,10 +71,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( gpg_pub_key=gpg_pub_key if signed else None, offline=True, diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py index d42e8631..34aed471 100755 --- a/testsuite/cibuilder.py +++ b/testsuite/cibuilder.py @@ -161,6 +161,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" @@ -184,6 +188,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"===================================================" ) @@ -288,6 +293,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 Mon Jul 27 11:26: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: 5289 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:14 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f56.google.com (mail-ej1-f56.google.com [209.85.218.56]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTDZm001033 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:14 +0200 Received: by mail-ej1-f56.google.com with SMTP id a640c23a62f3a-c160b9c0676sf199289266b.0 for ; Mon, 27 Jul 2026 04:29:14 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151747; cv=pass; d=google.com; s=arc-20260327; b=oRf+MwlfmMd33usaN4DzA0suaQOCyrZc8H2YGUyz1zjeVlT+QtQ+ZZ27ITzDayp18z 6dzIXspNHwZVO4N/CoRJeFvm4D7mYXSDCkpZ0Mx5M+4c3EeFcsBpn04TR5s/woNPf5xo ivC6GQ78OijUfSveTRtFKP/juaQMh0eXoEoiqZxUQY22xGFKemQrehkid6D1+VrHxXqD /GAHk0oIW5NFYXuFcpq7KLySZnqM40Z+60wxbLiX7cdoQBdHGs8yzvXtuS8/fr03Ue45 rhl14AdWkFWtYqg9bBu8wh+SjuTgWHNe16m2qGM3k5psHb5bEa5Q95R9fJids+cOwsch z8zA== 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=bIF3/DMroD592B2VWUGN7PKZgKCCsBxp3yo0EtwbW7E=; fh=OUywltBlOLb7QDvcuZGoAY2hVYeO3rC6xcZd+RvtuBc=; b=VZiwOsTMnMY999KQWzT8gz8g+/RQI2Z0yCpqM4KrBaRSde6v5DUNjsn9Lf52qd20kV kVw/jgMQF8mxnqhozJuTjNv6A6CKJJV0idVK0g7k9F/UImdrwLBkZ0toQwdnnJDhIPel /mnxQh5i215HDTWMzc+e7G3s5rg/iaaocicdOMQTSeD+Otfcn49FIu3cyG3CkQ2fhfO7 BQCTxm/e7FQzTVwdolaX22eAniYFbS2VInixPm4Yr6SnxjI+lDT1f53v2qEpigrLRxTl ZM1XOCzHhb7wIioXQQjhHRPBLXSAIgjm0IZE51cXeBP0qKEY9OJJgz9wOp0wbmhCqxQt uFlQ==; 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=1785151747; x=1785756547; 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=bIF3/DMroD592B2VWUGN7PKZgKCCsBxp3yo0EtwbW7E=; b=JcFoa2C8JaQS1TVELSBUQaFQRGVCp0KpVivVV6bQCJZ7VaIu/tFLB48X9s4QyeJ+NA nIISjZ7pFkGAAXql8jg3DzZH7gh1Jauddf82qt1I4+ulJ+Eu8eImwJmLzr+/kEy80WxX 4az377/7HPc3Y7QioezqZ10FUc4hycd4tQp5AxW5CslZoF/FZjlNiTxq/z4v6V+XwSYK +oM0huKrgQDx2WIVRKUiYOry8DW3rNkL3xaRF8GsvEk88jfCSZdJEP3ta99DBXAxZLTO wI6pJDRMp7QrmlZ1gZP5auJpZBWDFext1a1afqfL+UHJ9G6Ifvq9BIQ7B7RQuQ+V7qvT G4Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151747; x=1785756547; 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=bIF3/DMroD592B2VWUGN7PKZgKCCsBxp3yo0EtwbW7E=; b=dMH8ezl4+Z+1AS+k+Temzr1xMrDFo+dDEcfL7MFhYhxb3TzKN7R52JMWoGmVej/uAr h4bMxOdtzvQJ8geZd7fw4Ycr8DpFWnNXnUlfg/3Zdq4VMW8kHq82l9YdBn1cHk7F6ED5 +J19k+hw7tZbcGc6Puk5YqQMLdpOd6kI+axoogDoqMLsv4qpDiQhGOLW/Xt2foi1wyrO QNOouWtcYMGb+wKsMqYOn5sJiBraEg0H907ChcyF987+JrgTiYc36mUPgAZrl5uLseax s/qp0ExoOzxG1laRLsRjwv43C0P8Qj0Q1RqixSZYG1os9e5MYbZhHYOkje9114IyOs32 gGSw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RpPqxinPSTU3kZo3gtmzGKyrHKKsgqrwc09dN2DYq50ka0K/2B47T52HKWz+a25n9eBAjfiTM0=@isar-build.org X-Gm-Message-State: AOJu0Yyy70+YHqqdDNWZTiQe+GLCcn9sgjQ6WkZDea1YHM/2PwYGuY/i d7mcjyCbnZNIJmtDmgyPqvk6xU709TNx62x+f+uJG3W8adNmuz4+ljT9 X-Received: by 2002:a17:906:ee88:b0:c15:e07a:eb4b with SMTP id a640c23a62f3a-c1f1ea07666mr342854466b.3.1785151747382; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPTEeubrt3H6+fOOk3Lh2HmdWIFX/xwUr1A67wvaV7e/iA==" Received: by 2002:a05:6402:194d:b0:6a0:16ed:389a with SMTP id 4fb4d7f45d1cf-6a016ed3973ls511028a12.1.-pod-prod-07-eu; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) X-Received: by 2002:a17:907:3e90:b0:c16:2750:fc43 with SMTP id a640c23a62f3a-c1f1f09c67emr363200866b.49.1785151745451; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151745; cv=none; d=google.com; s=arc-20260327; b=SraBOlzw8RZgHmTih3I3Y0DCs7/GCnyKYEZP328QFHDRuHqtYcdReVAAJO9Sh9uTiR uUNPKUkA571VkwPw/SQeuKlWkLco30NXroRudv1DrmFH9YRIiKN1n5P7wYQhJ+X+yCbP nNaHNAVEOsnnOcTz1ONu7L5OxUIfKVEcK5tzKH4Ic04SL31mRo92vT9i3KKfCxvGjwEw fg/dJiyiH+9cg2Ib0Y1rZiyCHMQ9EMjt6bQy3g/0WtvUzbvrJ5Mobvq8t4jKGTjHdw/l KfHbRfSlc1oOr+pGGLulO8waMwADGIIcCJ+7o4kAMjlS1zoxP9YQBiYpOxFpF1Tgpjtn LJQQ== 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=0rrkLau51tZER9SEHiChPpothfCIIB62eTs29zlvXe4=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=md5LNQ/VozKGh56A5/ceSdvKMShNPRSc+RZL3EqM5Khi85dDmYHoJeTUwbCvEjWqik P+iwM6lb7viefPpu805lTIlg6jJE14g3IDv5wn349n/95rcginHp9dYiEou8ZsmYAfji mvhZwZ5poa5E19olO1W6ziJYYfwDJe+t5xjLKwJFSU06e5g1jYi0/kXTWwo4RHZOmMsi c5/GKZ7xSSnDU1B6+F1sjMZu40WANuj+Ir5Lf2Y8+aDz+ZQkfdmEeKT+USXJnVQyFJte bL34tOt64KAf4lvedz3HXiJvtVGrFN40VLB0+OgdJkGDOSwYHX4KkD76FIalVzccS4fP zi3Q==; 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-c1c32bbc3f5si35751566b.2.2026.07.27.04.29.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29:05 -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 66RBSjdY000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:04 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v8 08/14] Disable deb-dl-dir in base-apt prefetch mode Date: Mon, 27 Jul 2026 13:26:26 +0200 Message-ID: <20260727112812.2255297-9-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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?= 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 39c77151..29ed7822 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -178,6 +178,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 @@ -200,6 +201,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 8220d15e..d98db7fc 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -270,7 +270,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 Mon Jul 27 11:26: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: 5295 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:17 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f60.google.com (mail-ej1-f60.google.com [209.85.218.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTHIa001160 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:17 +0200 Received: by mail-ej1-f60.google.com with SMTP id a640c23a62f3a-c15d4224f9dsf196801966b.3 for ; Mon, 27 Jul 2026 04:29:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151748; cv=pass; d=google.com; s=arc-20260327; b=JIdrsKUSz8IAtGyMmUA7WN1HEHzTXNdhNZGNcUfvg5Zm3wo1jC3/FsaU/nWls+BSxU xzBgVCdrCKaGExwVzd8cs9PIlwPa16uwH2W46DgKfxZkZPn/9IFDwrNWXWOw/ydagR20 n1BaPu4w/PmB8dlAw8j0fANchlAbDnluWH2ioQEtqHRizW1DvLYg1SjCaAhGS0UNniAI lnTBel9BO6Nb11zOwFO16SyZcC7hHKXxsv+Pau4e+uhQChSHpwgzxObviWbQGOO4pAKu Ld2/IPXuw0caaPCgFRuv/A0ystq7CMZ15p52HPXItDdwHzYX4sLaPDCZspAE94MnSpvB mKJw== 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=MO6YuVqCo3zQf9cMRUw1uQGpT7Wg7bLW1vxpMDMVZSg=; fh=8dP6Yt3FJ3hpY1IIAh1mk5dxlXmiTiIPQRuVnF7F1d0=; b=fgyhk0v85kgy+0QOT/ODa8F6CS+m7JziPWE43gJdmLqXIDy4XsnbfvCNQNp5bhcbI/ 7+ARd+qZlSzDQo+UBSM6PCM6MEOS3RDPUY4kH+jU8wtS+i0JsNCNvcs/tkONK3KIfwN2 Cw+ggcbaWZqm4ScSPowPaF7pbvB/j12Fi20jY5DDt/GbJ0u8N4EsWkOIHGlrDE+sm4JD rc088uAbI6g+ZmIdBo2K1nYx9DBmWTcubrH52hhMx8oeUQZA4DaTa87a+pn03e9DI7VC V6UIz+oNWIYnDrIrgzFBF7ANTFCSnSwINwBBY9GtD9/PAMnsR0qi8BjJtpTEXspyQ0Ea hgzg==; 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=1785151748; x=1785756548; 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=MO6YuVqCo3zQf9cMRUw1uQGpT7Wg7bLW1vxpMDMVZSg=; b=wLO344xasfh5JVil6lEupyaiE4GdvLcVk1NFPa6SnDtKtXEqWFWsVZjvwqWvuK9v9K qTr/G+CIIiY1LgKMu2dyQ6V0AvTWkEadcExYM69w8v2YsBihMCvXif+LPhl9COXvhQkm gRuWy8DgrDD4jGnENDcHCnqx8VstmgnxtHiSmK62D2j1rhzTgdUnWOlJ/EvZFl2CB0qv xbKngoolzLcupDmoO9h2DN9o/ijC6mHTWbNQk83WiA6MmZP9sZPNGzAMRW8oLqO6GXQr YfdcdGTwJrraQP/kQmp12ln8PrxhKWK/6IvEPS2GIzrZvBPPOEcZ+fVUEt71LNU6l+gQ ET6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151748; x=1785756548; 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=MO6YuVqCo3zQf9cMRUw1uQGpT7Wg7bLW1vxpMDMVZSg=; b=abMTMA0A6hQoi3E+Ijs49COxFEPBQfYweAuDRJCDPsu3Z5+OFagtuzGZI+L7vcUXUr q5kf+JbWM5F7AWYT0iLiwA902ZuKn9DF9jWNzLY23zb3+n0/0UyUipp8bp5gTCtoPZ62 NtSNpkevGGu3SsCdgFZWjNGFwYh+GZdwCJdUIGzpIIVUoBR2RWxLLIVwKwZ/Bkq9PQbX gek7/GaL4sYAlQLqSgcJLdedYuykr2cumozDVTwmvgNhwKsGRn94ji5Eh/QUU7zQyaT8 X8lSnkhb6T8m/qSrluOHUdOcsS3LIvlwyGkQYqD7Zuaek9ION/DIR4e4nRvTHm0IH5ge 8Z6g== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrTAQSvANQYyGc7oRnSJbi3Z6SaIWr44/ZKD0IUQIOJJO/2tQq4UKWP7g7zi9knBIxfX5SHZlc=@isar-build.org X-Gm-Message-State: AOJu0YxcXwhtPzPoSIIWb6DK3gQZ5JT7NITVkk5gLVIfYxajTtk3ywqt yL+q9PydkgIz7KNVVNFkvl8jEMsrHYmNV36sYJ2vumOwRhGFZe+1DPm5 X-Received: by 2002:a05:6402:4589:b0:69e:8f57:b865 with SMTP id 4fb4d7f45d1cf-69fc118d2e0mr3127894a12.34.1785151748161; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPQ222eUcpmMAWG+OtgIANY+GFFTdFzoRKP6BD83dSTf5A==" Received: by 2002:a05:6402:897:b0:69e:ad9c:742c with SMTP id 4fb4d7f45d1cf-69f60d260c4ls4416898a12.1.-pod-prod-05-eu; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) X-Received: by 2002:a05:6402:42cc:b0:698:6084:db7f with SMTP id 4fb4d7f45d1cf-69fc110a89cmr3284111a12.10.1785151745879; Mon, 27 Jul 2026 04:29:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151745; cv=none; d=google.com; s=arc-20260327; b=Z17jlmi35/YSgRUBEm8kVzAMmhMAwXpuvTsF0/yH8BHIj8HaTm7MjXQkNl8JE7tv7+ jBuK9Ukb8cGNXQaSTb0mXQjOMU7BG3qpTLAMM4j6AaG9WVNMENIzYMePjRIICk4klBLR giMMtYzKEzXrMifYwHRFQ/BlaDjTafcnl67KZTBlSFvseWB4O50ohXoLnhNxXRIPnzFx 8xtB8de9YWpMrAyAI1C/00VdJ3LGMPddlgJQbd6D6pDHqCZ24UrC0L/1N1lWKx0Nqvjn 6cB8DIw8u7GVnKrJiCO/Yyb1Wtw6Daekc1Q08t/DLp4nAl42hzrRvRnn+PidsfYOanm/ AMRw== 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=kE9ikEIBhgG3im/oEyPBqOQiMJqqAMiKS1uc8IEkbDo=; fh=2ALxNboLzDt503PhX56nFQ4pQzOkkVjVTCOSpqCio6o=; b=f6ZL3drGmaqlqzgcg8E2LQZ1hR+RH5a0a0rAq5jXrRaAIcWfxznEzl0NTe6BRL/3YL vOgRmmLsXbT2wUiTl5cxBaWzI0KNhJ6ParGAeiawIdvdDuu0btLdseHN4NgyFD6ruebC Z8AP4r+gJlaJ3Pvjg2WvLzGe+aSHMJMqBTGU7GmrHqhitoSbJVqC7/8S3qPexTT1jbXz kmwvDjRDDlmL/DyYZSmcIVau6cfQST18ZBxPiy6GOiDPOHG3qtT+Bpz4FhLxBdzQ2eqD aWyteJNqFQ9yANS29Wgq6NDk8jmaU5oeoOJ8blIzQDNqCF6pbadABbDwwUl0Tl7gKL0r dtzQ==; 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-69fb4dd4389si145503a12.0.2026.07.27.04.29.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29:05 -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 66RBSjdZ000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:05 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 09/14] kas: Add PREFETCH_BASE_APT config entry Date: Mon, 27 Jul 2026 13:26:27 +0200 Message-ID: <20260727112812.2255297-10-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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?= 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..cb3f0d0c 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 debrepo 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 Mon Jul 27 11:26: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: 5299 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:19 +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 66RBTJoU001341 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:19 +0200 Received: by mail-ed1-f58.google.com with SMTP id 4fb4d7f45d1cf-69f4a9eaa68sf3571314a12.0 for ; Mon, 27 Jul 2026 04:29:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151748; cv=pass; d=google.com; s=arc-20260327; b=EtLbbUTz0X3/1F7B4zelxHh8ijg/X+fJNqRoDXy+cIHXiXss/ZBMXbXarmS101YEXV gSeWBH9Yuikjaw1U+KRaENvypTFtCz4DjJG7d9zXA7xk/2Ls6zzGonKBY1UMZW6EDjqY qBcijlq9XwGni1SBEAh0e1aw19mLI/e4J+X7l6GAY7mpno6LCGd2eXHP0QeFtBzt2I8l Id4JGhp07Y8UovWCJmLKSiGPHBktCDFpp70SA4lTVeLHV4OjvCoLXC3reLW4cZSBR5SV Nn1FROw6ArLA5xOMaN3sC/Kv+27HXbIe7mhOnPcgjIr6NmxzpvLis99rD5LjPZ16b07B i13Q== 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=oNldo3z0X/CZUcdk/wpZ2FwoK6yuaJwbMQ56c5cQ780=; fh=03Z/05CzyhXl1y0z3LjTdxs4Jv1L55EjEbeZHuTryIs=; b=FIdreowivxCDfAcUdgl53HF3DL93b6Q5PsY1OO8EEY+ljYCqP8vOwT/oPLWJsrZxaf ofRDFY33U2wdXcakcz0CCXvviIjtZvAgMIjfaQDDFrq5x/n1YrtptDW5RtNaFO9hzLXU E+s5OwlsGZWhzp3912QM7mAREx6KTm8MhEUySODh7PZVFVki+Q7taISxPbTQfFEKvAuO HrDOMuZg+f1P1at9XPvo1oldKcLwWFgKxE9durL58a65nVWKSSOibmxx87ErCwx9gqAw DiJoDhZ0AMqC0nq7jDQxLiFFU5D3DPPG9xezAwk/R5eh4ig+XZkpPb5jW7eMiqSPH4Di wmhw==; 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=1785151748; x=1785756548; 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=oNldo3z0X/CZUcdk/wpZ2FwoK6yuaJwbMQ56c5cQ780=; b=pajSyrDBszSjTkbDmWKi/dOENYU3pyV99T4+uTIBy4PmDLvN97GyNm5dbgbhqoHk5q MVIoGCb3sSR2c/kQsutNuHQw8NoJ79fMtXgfuI+v7RAjKrvdT0Id/j8irDWT83qkziJD VGqvfjBoddkg8jbGdUFGyxe7MOyTjHJl/68QtnLckys+MGZ+9IVBGCqrKYxaWZDzbXR0 DSI0ZeWqp2kcoc62dYjGRmfSy72I5qtydAKUJWcKuK8JLQXWQXP+Swd84gxIu216Vqf/ FQ+Wf9KGRW0JOT+JXZGLae0XnFHdotm8J+YXi70MEU+oNZaZdY/m7Vj1Cq4jOVyYiTs1 vWdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151748; x=1785756548; 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=oNldo3z0X/CZUcdk/wpZ2FwoK6yuaJwbMQ56c5cQ780=; b=dj+kLy+ATgHOzlN7oMWxx5HoBtyBooYoANL9xgVotSYVuhg3Xh5w8uBFw+wAe99yFR uvAKR+4JYnBwd68LJ+7VJ8sM39kqLaW77RYSOZ/lQBKOO4FnA4ZchFZ3Wci80ijvDBZR HBGUXr042xtRBgW1YJQCcQy8uzifvYyL6vFMuXYpZo8ZaWnXJgeE572g38jJd/Qs8Pi8 on4OGsdWSXkvcdbLWj0uVosVUpUgAYdacawFivwigUzzTeXX7cHN4NqUrIU92vZyCf8K /eTQW/UP5X6QnPN68I2H51RfefYkNRgaOvtKllYclv6AMsu17EvIMeD1+tn8AFft+O2Q 3KNg== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RqJRjXdbSdly12R/EluIIf80PG9rVsET7TCZnCit3pDrL58Zi0iZ191izkwq4TAAThBlSuUUfc=@isar-build.org X-Gm-Message-State: AOJu0Yy1G/k5TvNg7MntfFZOTSJsMS3FSBXOJE3KjAgcKj3EPVK/bf6o wv8caEQCSJs3zPqsfyKF+XaWwB7Whm1yINGqEWKN2k9v5TBmLT62eijS X-Received: by 2002:a05:6402:321e:b0:698:a9de:16e4 with SMTP id 4fb4d7f45d1cf-69fc113f532mr3368142a12.20.1785151748507; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPSZp1hLzAhI0zSmhshdnEuG9ayXk2z3pgmEwxutFUucLw==" Received: by 2002:a05:6402:2303:b0:672:f72:23ae with SMTP id 4fb4d7f45d1cf-69f60d6b81fls5773766a12.1.-pod-prod-03-eu; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) X-Received: by 2002:a17:907:c0f:b0:c15:f65a:43a8 with SMTP id a640c23a62f3a-c1f1eabefc9mr343153066b.12.1785151746327; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151746; cv=none; d=google.com; s=arc-20260327; b=SP2V4z+xnM1kFGSoZJy1aFJlJ2gFGd3YH2I7++PTvad6zsHR7l0LasVEJ7my0P3Fk0 2nbEKilGHeYa2NGfv5XRBG2nWfQW/tYXfub7Bi+weZmigQt1ELIg8BuzKTsz2je8GMYB ZQFO9d0sWCC1P0WXbM4Zi8zqs4xS5/a3CxSBUv7fFF/bM17QAD2yH5W46AaeYe0wKC+v /RpqGsbKxos51F/MoizhdYnhGH6G72agYo+FioXnC8c5hL/cPwlbACCmse9ecemIzFZW 0PH0BECFbWTEFGlLBtqU8wAi6lBNGoUm8W3K6uhMrctXZQ6V+2yoOagP3XzorN2Cobp9 DtfA== 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=HzNPlhFlnhpmj7EsMJEKjCkky/GJumQJm5rBV+tqQC4qMw8mHCllPPpP254BWGk8zW MpzB8SvietfYVQ+qIrd8NkqlsU9aRFDEmCZdkR9jA2Fykom4cXxy8B8Qlc4/oV+zTwST xfu6bll8Y3E6cMyWCQoSTK/m+c+57PxeGBjCfhqjFsay3JXE3KqbrGjvqPWTotVtGPfR ST3YvGFPHesgcYOz521rXSk10gkqDTia9qGcu8qLDFoguDTDiZ66l98TO4rpeECY1KNn K/VQehNerfvCqY9ujtCtjLetl16tQtwYnmkZ477sWeKOnzzghX8Sv15d+9y6Hfd7ucfM oj6w==; 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-c1c325fdfa0si28585866b.0.2026.07.27.04.29.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjda000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:05 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely Subject: [v8 10/14] ci_build.sh: Install python3-apt if not installed Date: Mon, 27 Jul 2026 13:26:28 +0200 Message-ID: <20260727112812.2255297-11-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 Mon Jul 27 11:26:29 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5292 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:16 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wr1-f58.google.com (mail-wr1-f58.google.com [209.85.221.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTF7Q001069 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:15 +0200 Received: by mail-wr1-f58.google.com with SMTP id ffacd0b85a97d-472a798fc7csf2034201f8f.1 for ; Mon, 27 Jul 2026 04:29:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151749; cv=pass; d=google.com; s=arc-20260327; b=AFxNWf2y6LxIuV7Z3YPZ9DlWZdrFRIRhPijuI7FLN8n03OnfMh/vuGsZ6wNGU/O1zi 0yu2IQYdb/PFNuxuwn4h36klIKuYJpqla24v0jDZHZsaweEYrTQq1XzmQmRg0OYUGltq AODL+FI2mkFXrMO8D3fqVRikxgStc62mkLMk3jgaQsp0uR7ukhwnvQuDRb7iHCQ1DXxr e6DU55jz2LziaiGRqf1Sv/fnJSiVR1QOaYf8g6w8gZ+QctMLz4oPN7mrS+QFFc0KX03F dkV0wVAVGDnNKESjnlFE2ZCr+oSLXiDJK1+jhBpbsqnm0B4FYpl/VHdSsSmqTl9EsiCZ l/5w== 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=Fdlc5RnkuyDZmXtGmkkMPpxSlPshvtDlmvyJJCf/mcw=; fh=rg6VZG/v3jcxuQShEQrMd3i2yhqG59eUR/W+RWL7AwY=; b=KrX0t+W5u2W354vFVGB5aXbjkQNVxXTwADyzdN0Vv8iiG6WYkTmgorCqomuO2xXTyV 84deiDRQJQba7NrF7U7UvjylEQ4KveMTWnmmt8PyFu1Tvyu5+fW8zbDsE9DKIS+vyxGn 2+9285mmaWwqRswI1L3ACnIl65khhYnssdCEZfj51+zp0/ODukx/x3Ovp/kSTA8F9bpU z19KcJPQb9IQAxY3pGRzDh8PteKuuMa2bfV6bNfbFjq3W+ljhLfadIp28LVon3L6z+Ot J24qWjnPN9Mea58BBKy4ZJe0HDUbFzstBGX0XHFap679+ZlAfnvidtsP78aMDLTtGEgL ezHg==; 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=1785151749; x=1785756549; 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=Fdlc5RnkuyDZmXtGmkkMPpxSlPshvtDlmvyJJCf/mcw=; b=smVMrVCGJE8w9kNYF8ZR8EcSdLVM7QvoSxZ1ORSgBNhfZBUWBwWKCjPYsGwAE2wajI JJ7/nyHlzazmH9hFJAolKzZ95ZSMbKiKllKG8RAPHesTK1U1NQw00t6qtcO4NAVgSd8V oGb3ME4Zt/x32xcTmals3pJ7IhDydjHELzs1OH+oSpguu/kBniB1hnQFyM7SYpxcWLRv 3yO5Ya2WDhxIiId1WHDOdBgP74d3n+Rj0lxctKWM9TJ+f/OTgsRMcciO+Aa1l5T0p83z Wk2ydlDb98uzoeqf4VOHmRxrVpgGPbsU0E19kFuRAFLavbVfRrlMe6syA4xCE37w0oIx X75g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151749; x=1785756549; 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=Fdlc5RnkuyDZmXtGmkkMPpxSlPshvtDlmvyJJCf/mcw=; b=FSSAhvppHxFOuRdppwzF+vUNhzVN7a/YF+b19ehCzupnJKvtizXeIdvYWSW/sy1XSv oZ939IKArt3gyTvv6UyDRizZdyxab647C0ucoEIyO0vuQ9mVl7nDg7LJemp5aER0ROzU NDK7pgB/mI6dDGV1+6jgZ2B7Ghb1w27tpX6jciO5ksoeB0i09Lcwef0wMc6Ec1UlI4dZ Kx7ABfXE87PXymFT1pEUxMZPCkgN7wZYbgFFnX2arryjhsZg6XVbjvuERGu+P64Hc2fX ctVdFVLz1fmYNniS3Vvj0lFL0WesjGnWSG6fbbm5bqIWZJ6sEMcl2BeYUtYZ9lRYtOvB iotA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rrepj3VR5myw3ps/8WNytxq1SOSZxfuhumzB4XSaoCeLuAVROldtAfmuOK/qWw0nwLQf+Vwpqw=@isar-build.org X-Gm-Message-State: AOJu0Yzw/SoNzWS+8OB4QdXazyriDb+Q/x99zmfJN9qPjSher/W3vck4 8H0gE0NOj8EUpf4OmODo5JwvcOox63hDVIOzgYdGdNSLOSD8PJPegjx7 X-Received: by 2002:a05:600c:8b52:b0:495:6e68:39bd with SMTP id 5b1f17b1804b1-496b5726cf0mr107534495e9.28.1785151748894; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPQDGQLrpErCNi9lQkSuEmMifYoM/eX5QRPsMZEJYD/BIw==" Received: by 2002:a05:600c:5486:b0:495:4e17:f893 with SMTP id 5b1f17b1804b1-49572a833e7ls45410315e9.0.-pod-prod-08-eu; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-Received: by 2002:a05:600c:1392:b0:493:e79e:da98 with SMTP id 5b1f17b1804b1-496bd6d22fdmr56085445e9.39.1785151746892; Mon, 27 Jul 2026 04:29:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151746; cv=none; d=google.com; s=arc-20260327; b=JuTWMjIfGjH1JzPqJDTbNRKSa452jf+h9xIFbLxoRFckOhudZYkcPVDYflINACb/Ds P6Ob1L83EBLujJbVP15/KfjljXAIkib23JXP23buMHBSuPstfrgbou5K/YslLUaPlsfg Z9P3QoBepcN79ZA/9jTE1q44ZTcM6433kN7nuK9gwH1541U77D6pXNOHfiCAwRwmuHje pakEqAN3J3iPGcZVZeKxgzlCZEtIHGswR1M98dbsRxcx5p7+LT75rZRnQMj3QfJVYZK4 kHetSIlp6kav5QMOahuHqLFUDLfiAekWtx//+RWD9hp+WSp+Wnrnoj1FvA3s+N5kla9N DYtg== 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=rWmmqJ/3ECY+i8mecFAZxz6QWKXpFdLBSZVz8CT7Qqc=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=abQnvmO+ospF9rn5IZHTFPhTnFb/Q75V3btp4MZExo80QdPA3dgSt5EpnFAKlC89sK gAPz+dGnjuLf1rqmhd7709m9huKUDo3JM7BfBPWCWp+HRPCtOvGkweoxny16bFwXB7b/ fXCYRUwctTGaLxDP3wommubHCYiibUDVNVwliYw4V2lQqpqecsuy9b6NoAnI2sk2JRky ycavkPW2i9iC/k3OJ9bDBuQoq6ri+IZa4seOO3hWSVnrLeV5f0xnpHjSKtk5hRpkNBhS +uXo5J0oQzCB7iJr51RPdQQRP0/ssk88VLzEw3GJBUT4307sGibOld8mNJ6pt8px6j4N oSgA==; 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-4957b9467f9si728545e9.1.2026.07.27.04.29.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdb000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:06 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v8 11/14] rootfs: Fix URL parsing Date: Mon, 27 Jul 2026 13:26:29 +0200 Message-ID: <20260727112812.2255297-12-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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?= Error: | DEBUG: Executing shell function rootfs_install_pkgs_isar_download | Starting pkgProblemResolver with broken count: 0 | Starting 2 pkgProblemResolver with broken count: 0 | Done | E: Unable to locate package libstdc%2b%2b-12-dev | E: Unable to locate package g%2b%2b-12 | E: Unable to locate package g%2b%2b The apt uses the percent-encoding in URI and print it with replacing of some symbols (f.e. '+' -> '%2b'). Current implementation extracts package name from URL and gets it with percent-encoding which leads to error above. Format of output is following: http://security.ubuntu.com/ubuntu/pool/universe/g/gcc-12/libstdc%2b%2b-12-dev_12.4.0-2ubuntu1%7e24.04.1_amd64.deb' libstdc++-12-dev_12.4.0-2ubuntu1~24.04.1_amd64.deb 2194756 MD5Sum:47b73d6b9f0aa4f0e115b1898ca80455 Fix: use second field (the name itself) instead of URL. Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/rootfs.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 5a66b4ca..2ffbbca7 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -379,8 +379,8 @@ rootfs_install_pkgs_isar_download() { --bind "${WORKDIR}/dpkg/lock-frontend" /var/lib/dpkg/lock-frontend \ --chdir "/var/cache/apt/archives" \ ${ROOTFSDIR} \ - -- /usr/bin/sh -c "apt-get ${ROOTFS_APT_ARGS} --print-uris ${ROOTFS_PACKAGES} | \ - sed -n \"s|^.*/\\(.*\\)_[^_]*_[^_]*\\.deb'.*|\\1|p\" | \ + -- /usr/bin/sh -c "apt-get ${ROOTFS_APT_ARGS} --print-uris ${ROOTFS_PACKAGES} | \ + sed -n \"s|^[^ ]* \([^_]*\)_[^_]*_[^_]*\\.deb .*|\1|p\" | \ xargs -r apt-get download" } From patchwork Mon Jul 27 11:26:30 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5297 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29: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 66RBTI0J001281 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:18 +0200 Received: by mail-lj1-f186.google.com with SMTP id 38308e7fff4ca-39c7291b47esf10125121fa.2 for ; Mon, 27 Jul 2026 04:29:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151750; cv=pass; d=google.com; s=arc-20260327; b=XhO/z9RPIcegvVEa5EvusfTN2H7wVwLpGOO72wqgFCLKHNZEs2zh/VEyFmE8o5tELZ ZXOdkZk7TR1nCXxR0hmpPNKxfQZvQkwCofXUe6jvBacRI7O2bK2fYvlck4NYu4Go1T1p Q3XmlEl7v3iC/hG+Mc3PFnIQBmw2FY4a01PtXj5q+0fy1KwFm5N2Su+1PueeIW8tlEGC OigP3tgK+BPTdpASaKF/fdyUda1GTZcugBKxI6fXtoohKLnLkLdvsDtdSlIM2DtqK9vQ pomVtCkAzoKKGEOlOYcGMTE6t9wRH+QehbWRUvdnuyIx1lGVhA5mY4B775ynxMRjspKl cELw== 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=Qdf2YTd3NFF5JC22ktSHNooD8GEbsEUNzS3akr3ZgRM=; fh=71qdieJ9TLFAmqQzQsfeqhWuhMycL4V2+galuclIQ4k=; b=G9igWdthBdxpChpij17qkwen9YWh3if5LJk0uYfx2Dvd6C43gBsf/NsAOOy7V51alG sUu4IFy0QLSP6gkZiyk4YmO+setn0H1XjA4AUmaC9WXtk8mCEEJk94/pR3/eANOCiP8V Bfgx2Rzr500SSEOKU4/CjiKUNjyPg6YvZE2rXFtPqQqU53DWUHzbp3gN5QADoYNliJgW KVZNXnsiihveobbOu+gbZ5czlu3aezoRNumrlVGvnnXz/pEp2C6ICfk/cDY6qfAdZJ90 Dushq4rCqhhtDWPDO+oJG1LSIovN2X5TfKElAU4hJsfMQ4mJFujIZgg/yZ5KmL7fchsA nUVA==; 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=1785151750; x=1785756550; 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=Qdf2YTd3NFF5JC22ktSHNooD8GEbsEUNzS3akr3ZgRM=; b=CHBAnXws5ZQpMyJF+7vZEsn9/HWuoFmpqwU+sGELFQG1ZCb8XATqAdwWQyu+gFc1tk EV/LVK9hX92TP7slh1DBfE7MyKPemeFYMSdCF+qW/NU4xP6b6jjejD+9tJTQLMJubawj Z2rPaQV1SVc2inUbSTMWM3cujlfeB7r63yl6G/ew2Vk6UrCYZPEjb4GfD4h+Ek/s3e1+ sNiirEt2d4JVNPHXjsSxYszsbDLtsKgYWdMVQEQlNaotX0DfUrzHeiRTrwrN0UH173fS mN0C6RgVkYLh9CY0Qr48iP3hNoL3KfEG7Ci/GDMf5xBU9M7rFDTPgcydz42mD6Q0KjS7 MCww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151750; x=1785756550; 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=Qdf2YTd3NFF5JC22ktSHNooD8GEbsEUNzS3akr3ZgRM=; b=DgHDRLZ8zKvVYCZguj07gXLm3XIlD8vivtbvN8mTevHbyWK2Vk6BYySer5JTn2/r2e wzJS5bou1JBDEMZh1iDFfI20fKUVu1xrENxu/Jtq+f0CNXt5S3v0IbmkZ8fsMVHh45zB uGThcwccZMCVwSanPicHyG23uITqkek95ZrRJdVnzCytNfbYBhAZiB1W4/W0a+gyrLap bZSejUeIpzXHn1/VIiwmtfRrZmQqbPIWkZsyBE80luous2DoyHUbTWPca779Yk67+P6h kbR6Pxy0y534XMLLvQ0u7aibdZ7BGbp1xkWeDAzQmNxZrvvmpZIon/mHCLaj4CxrMyxx bR+Q== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Rr3DIkNsb5NjBJQ6S+h4q38q3ghEKRI/Nexg+F0EsDs4gM5hkErWj23Zw/K7buN+Bz5zmEqD/Q=@isar-build.org X-Gm-Message-State: AOJu0YzTGO/LfeAz2BkRpjQdDZ++wwaqWBasctdESAS2iuGgFvNAOSI+ FIo9DgSlEenw1haZrTRWPUgZFkoSPqwJs8yEcHSNxBzxY9swQKlh2JV+ X-Received: by 2002:a05:651c:3135:b0:39c:7d51:70d8 with SMTP id 38308e7fff4ca-39f288f4206mr14273911fa.32.1785151749602; Mon, 27 Jul 2026 04:29:09 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPQTGYo0u+2AZ7HG7tnhduecwMJSfEBwMSwJhJIusoyvXw==" Received: by 2002:a05:651c:31cb:b0:39d:bbe9:baf1 with SMTP id 38308e7fff4ca-39f2ca95f84ls6182561fa.0.-pod-prod-08-eu; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) X-Received: by 2002:a05:6512:12c6:b0:5b0:eda:de2c with SMTP id 2adb3069b0e04-5b2c1b0eae6mr1501735e87.17.1785151747375; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151747; cv=none; d=google.com; s=arc-20260327; b=Pl5acZYwmEpIz4FiRPPxVqhPMD8cxGzGZzZaWeYXB8LFk5OAlWdypy2J0LJB66QtV1 SBTtax8pQW3CN3EH1MUkPayfFhCAYExuHr/Y22g9bHoyMQA62UHpTtulZPK8QebhDCmI ylt0KEdY95eHrY3X4FhHB14ubh3/IJGO5cbzSMLz0C3GkX9x2J6fbg2ngb49qJjFA59u RkQSKUjbW2+4ITz9rxeCto4AD3/m2R+GT0uUkJXBlM143rF6s7VGPqvE2UWgs7x7t8jo gmPocH/LuU+4Gc9D8Qu52pbHlph+PjR8h7ETdwURJKdWIG67SpbPlqd6XAvrXpk1o7cl lG5A== 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=tqEa7Tmx6L0SNmFQ4v+OdOLcJxVR98KlV2lVmltEzlg=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=J7UNHYy3WIQuvEMnutH4/HM/hvV83jCh4N3JEljk3WODh1F6gLPKiRCN9MIMK+kPUI U9RLqdZV/+eqH2i+yl95qA+8T+l8hmTvo3AhLsHvzpygVn7F/Sxs+E112XTNrn5lC+LE xI73xbpD34qZSmKyjjuwf5SKkNqvUocJfoWrT0XClyHJGLk8fyMBCAy9aHc+UxbTn9B9 apOidh3d7r/bX7T/t259mtJPDmUIwNktLwKM7QLsg8G5rG+4OmoWYFN5j+6MfOb+4F7l hoWaqAfhiDk37IqDtLxfGMg9HeTT4GSoKW9lYrddCTsGSg/b6xw1a0xKHPlfx8ZdWuAY Zpww==; 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-39f22267edasi1163741fa.7.2026.07.27.04.29.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdc000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:06 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v8 12/14] rootfs: Add version and arch for downloaded package Date: Mon, 27 Jul 2026 13:26:30 +0200 Message-ID: <20260727112812.2255297-13-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 following error: | E: Internal Error, Pathname to install is not absolute 'gcc-14-base_14.2.0-19_arm64.deb' In case of cross compile the arch of package is lost. F.e. the gcc-14-base_14.2.0-19_arm64.deb will be transformed in gcc-14-base name and amd64 version will be downloaded instead of arm64. We should take into account arch and version. After this fix package name will be extracted in following way: gcc-14-base_14.2.0-19_arm64.deb -> gcc-14-base:arm64=14.2.0-19 Signed-off-by: Aliaksei Karpovich --- meta/classes-recipe/rootfs.bbclass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 2ffbbca7..f6913cff 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -374,13 +374,15 @@ rootfs_install_pkgs_isar_download() { # Command apt-get install do not cache packages from local repos # We can obtain non cached package URIs by recalling install command here # No need in export those files to dl_dir, so we can run it right after + # Package name extraction from URI for download : libmagic-mgc_1%3a5.46-5_amd64.deb -> libmagic-mgc:amd64=1:5.46-5 rootfs_cmd --bind "${ROOTFSDIR}/var/cache/apt/archives" /var/cache/apt/archives \ --bind "${WORKDIR}/dpkg/lock" /var/lib/dpkg/lock \ --bind "${WORKDIR}/dpkg/lock-frontend" /var/lib/dpkg/lock-frontend \ --chdir "/var/cache/apt/archives" \ ${ROOTFSDIR} \ -- /usr/bin/sh -c "apt-get ${ROOTFS_APT_ARGS} --print-uris ${ROOTFS_PACKAGES} | \ - sed -n \"s|^[^ ]* \([^_]*\)_[^_]*_[^_]*\\.deb .*|\1|p\" | \ + sed -n 's|^[^ ]* \([^_]*\)_\(.*\)_\([^_]*\)\.deb .*|\1:\3=\2|p' | \ + sed 's/%3a/:/g' | \ xargs -r apt-get download" } From patchwork Mon Jul 27 11:26:31 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5298 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:19 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f63.google.com (mail-lf1-f63.google.com [209.85.167.63]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 66RBTIZN001260 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:18 +0200 Received: by mail-lf1-f63.google.com with SMTP id 2adb3069b0e04-5b293eca8c4sf1470365e87.2 for ; Mon, 27 Jul 2026 04:29:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151750; cv=pass; d=google.com; s=arc-20260327; b=F+9WWSoiVj5k7cPAHj+GsaNAeuoEgWH//ZqHypRtnH7LkVDnBxAOdhUWBR/u5sXx0m isPjdhl2syGBXKY0kmsIkgMEolyuUYkXmUtMynLEFa1jQXkKQmthuFSh7jskmqZgEL3S RBOixL2g2AYU/nryQtAcg+E35NB63KOBcs2XSRrBvvCz35GRgJGxPx89csJ7Mo62vJg5 IDUbCbJeuG3xJ1i7qsV/GJcB+4LNT3cez59e3NvNkzAsZqaq0d+IoK/dqLXtFj2CZxcT fmYnPd0ghP1/kJydgCbbNaveFIe4whjEg0HrNHemM7BpcpVa9l/4mU+WAjmMQyLSuOS7 zKuw== 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=3uC9O4jU9hjBwr/roYdxyzEb1uM/7JveTk1nYE0UO4M=; fh=Aqct/Z+75XdaYPcJIGdulaTkM3964Nq6jbSs7RQCKqg=; b=GY9FBSczvZnt6aGlfDh8sPwvv1RgsZ6QXrxLMU26RXpUfTiHkXNOESwgUSlHI1j7BU g7PHQslbnAK/Das5XpHX1FCi2uA/o7j90pCvuoJ/B09jGTelh5vPcmTvtTmdUhCVSK4u JeEZBj5ZSbfGuN94aSp+fzW46zO3A5xviQVmE5VKKCAYFtQ04sbMU6qjaNAlRndvlkeK osXdIdhZ6m9wednyMAWYFMYyMeY24VK5xisx2tal5c2X9MtDP8PshAIIgQZIZk1t7DfI eafgHq8VE9yOGwqGiGBRK8HdOV+0u0OExbNc4ddiTDnxWguCB922Vqw7PbYu60mqWP5c T8ew==; 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=1785151750; x=1785756550; 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=3uC9O4jU9hjBwr/roYdxyzEb1uM/7JveTk1nYE0UO4M=; b=Ukty2bVQ5yJLPzfj5ku2dYtnCB5A0a8wV3ESdI8bOisLuAyjP0kUi77t8sP3wuOTTD isCDq4pSgi1weI3nXXHXdMIMYuPGIXDlz4KTPsT75UUMfQ7nUPTRjSKN5fNR3b1Jf/b4 qYeQJu4doNmUJCK0Dhc2KbWMVH1XMKZn18/x8N3dOJgvAsPKEkIQoFmqPEEdcyKuSaC+ e2NH0pq0cHUVeSjEDuc5KjWsX0/6I4BYcP4nE9AYwjiC7k6jTB+sdTksTbARAky+GrHX 3OXMX3u8uI6Z8kcUIKWhBG+rPCH+/kwaZkd6dvyc8Z50aD15efxigGZxBV7vLEN4zJKJ Ruxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151750; x=1785756550; 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=3uC9O4jU9hjBwr/roYdxyzEb1uM/7JveTk1nYE0UO4M=; b=fIZt2Wteif2kJLQ9P5tS1hiauwHblkWRbArc+gjl7+26IiEydwHa4D3CGphIzHgH94 ZFtjU8H+xpVrbITCxkr+v3YEFPT/hCQiQ8gj7rbjgASEOlQbiCQYWSh2rAmFPMDmOA+y J2HpHjqStCm4jbF9zfnHHyAqRawDO1JI0Lg5tQB11DKSREc9W77rKUVOVjsC3rRYbOtV FirwZTOeH/LnvAWFCQ8/T32EJCghOMJoynsW8sK71ht0QuEjzX246K1E/wHEpowfo3h8 CpNmO3fK4V3kHLMlvJF6VQfHqGkppRwX/znVPNNDvwVdvYQgUzlqIlxgFj5zjvPpl8SD Revw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RpZ7s+PJEdwub5NjPe90lyrEf9zUG6MqTp7YhrM6yPXGVaTpNxoYD8MScjXj5L4qBXHlfv40oU=@isar-build.org X-Gm-Message-State: AOJu0Yw/G7Rv1EKwY0hF3BX5RIRkmqEnxh7dUTnZCWZmcGjsuDWGA+R/ eOKz4bv02pxy7J2SQlWQYnUEQDQxWzpCESQfrtZNLFHwNfPkQYd6wxaO X-Received: by 2002:a05:6512:2256:b0:5ae:a9ec:3545 with SMTP id 2adb3069b0e04-5b2c1b68f31mr1636710e87.54.1785151750330; Mon, 27 Jul 2026 04:29:10 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPQ2nmyCgdPOnM7KBzBCEL2HX5tYh7v6LDxhAFPl5P7+OA==" Received: by 2002:a2e:9842:0:b0:39c:5ebc:5180 with SMTP id 38308e7fff4ca-39f061fc6eals6908791fa.0.-pod-prod-05-eu; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) X-Received: by 2002:a2e:be9e:0:b0:39c:920f:c486 with SMTP id 38308e7fff4ca-39f287152c4mr14691391fa.6.1785151747976; Mon, 27 Jul 2026 04:29:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151747; cv=none; d=google.com; s=arc-20260327; b=PHCcPd0UL84huXWtwxYkDG/c60fXNDePdcAqe/Bk6dqTypWxp3XM8N3mFFSwSH4P6l +NPcT0674mrkwD673lTQnKquLn8kljyZViVdFdH8eMtcavfgw5amgFcX9UD/nAHO/gnQ AIFaxOO8+cODtb5FFtUtZHLoF/QY3peq6xtiPLwhGEj/N4qJbrqwDKuj9fBaTWu9tZq7 NM2BTgWwkMWTCrNGWHhhipNvQSOeDNDVTNqVzF4Lw3oOSRdtvAr2HAYqltCkmOkdNYMQ Z8beRcQFb5kiVb2Z2d1+Gq5VblOUSaQDY5ZMfDpC4BL1P8y2z5rrArCJRd9YLpPb2L1g olLg== 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=Xh5q7wCyHAAnAUzlVEZl0+FgiDAKu4Lvgbr3vlEWLsc=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=XQV2O8Fac0o97goFAwBqqnLgTPazXNngnxwoXC73qCR/5KUEZjTpr4P+T2OHB4rv6O +1nyLXkj8CGw01oEz57NJpQAkiMWpXC4OUDWBu+fxdVbhWZ6q1Dp6g+JQE5stk3NcCPw 9zKMPulLB0Yz9tggxIHAZn63KQJDAr9eKCvvRj25z0kGNj67ifWa+FjZ2B3tkYQr6aaY iZ4pI6cTdoisyjJtahHc52RfCXeQg8k7qdCLrWjMBTAsXdIF++lRwt28GEV48r9jJtvT k7hjRfsJuNqjDPyTZ1IyBsMDh+XFC5RbiNR9Ryh9AWN0YJ8h8v/QOhIx1GO3CyntsvVB RrJw==; 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-39f2223d6e9si1290661fa.4.2026.07.27.04.29.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29: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 66RBSjdd000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:06 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v8 13/14] sbom-chroot: Fix python3-apt dependency Date: Mon, 27 Jul 2026 13:26:31 +0200 Message-ID: <20260727112812.2255297-14-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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 Workaround for base-apt to force to install python3-apt amd64 version 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 Mon Jul 27 11:26:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aliaksei Karpovich X-Patchwork-Id: 5296 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 27 Jul 2026 13:29:18 +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 66RBTH7Y001191 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Jul 2026 13:29:17 +0200 Received: by mail-wm1-f56.google.com with SMTP id 5b1f17b1804b1-49560dddaa4sf14729555e9.3 for ; Mon, 27 Jul 2026 04:29:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785151750; cv=pass; d=google.com; s=arc-20260327; b=jpCjO4y38y02gQSik6oxCBDqfX0PD6fy6DHGm9etigFy4GDgibQyjWNMRCXwxqMTot J/NZ/yNjkIyPMVpvNQkt/OANu3Psk9wPnmOco94/+S5FQX0lE6bpKUHuv4+HsIisvAfA DE+NaxAF1CHnShS9cdNtY9Jh3mx9GU7wrhhe5l4pzOEbRvLK5xadLyu+M/T/GiY5zGfz tUxwhuPvWJQm1OWaFHh2J6/N8vLB+RolL54bUijtM0f5vlq2cmPoZz0TiBlx0Sb1tmNw UFigMm9mmMyj3tBX45gmW9Ofn72CzCbh2IwnGC1j3Urs312Vh6AApTAnMnmfgE8L1vSd tOGQ== 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=dyfKF4TvaUPmgw5zt/KPl4lYwpjdUxt/yBP2fR8mFog=; fh=D/vO7plpOvMmw2FXjaeP19P8xjgkwaDo+wVuwZ1W0lk=; b=DalkwneleI5/wd35lw5QSgKxBs/56RkaCkl3gqUcMXRoDW8B1L2P9dYRZo+NR/CQBr aS0r2/vsPNRNyL6r8s53XliOJV/1NSLnRVbuqpbkOk4oiA+sq8uoMyup2J6hsjlK+fBX 3YQenO1GFukrOZodqqC3dOpLjkbz9DzgXKqlZHrFbngb3P+VViglG5leDd69vY50HWL6 ArDL/LflExVdsAZktbEMITu+vs4gnTiUhYcfazybZ4iC9Pj2mzpnFycSma/cKl8n9Qqh g8suWi824STMXnNlcvjgvosMDl5c6u5uC1+3C+oe+SvE4I9zCqNJJsNf6CiZz5E7flB7 YHxA==; 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=1785151750; x=1785756550; 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=dyfKF4TvaUPmgw5zt/KPl4lYwpjdUxt/yBP2fR8mFog=; b=jBCbSixRceWp8GIcNnUQopP6+UgkCiNu9KrHOwoW5vHULX/g3CQQFZ9CoiZIJVyfuR y88aJId1eM27zCxzHxnDnQKicLOLDJfjcHJqVmFW6KUsiBRROpALu8/JfKKoesH8/zqW 3dQ1lxoSFF/SCerc4vgyOvYwEIQI7QVtREC0QoSOXKJlOxKAVL3uEJZvvJtNO4ukOuog GldpJRKzbiD4F2NEyPjd3z+WcgcTZzJfoWAHsmTgSify/H1uRse/ExmwxZNrpX6tAveA 55Lwrr05KpaOTvJUY8OcwLeRc2zx0iB5J+Pnu60urkdYDV2NF+q2rcWU43rNoOPJtEy/ ieoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785151750; x=1785756550; 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=dyfKF4TvaUPmgw5zt/KPl4lYwpjdUxt/yBP2fR8mFog=; b=ZI+Ssw/Er/MKwFNpaRvTy0MM3gd3PlonEhmrELnO5gLcAm6QISokyZC+O3/hE1yBm7 yndhuj3Tr5CXWs9SYfBEJJkNtWHzvJbDVXBtWMpSba3nKqj1Y6SXskblJ1B42wi/0+uy tH3iHN++beywDTzozaZX51RhZoJ0aWohzGs0ltI9tOxB6vyVYY53JS/A/blvB2vT2O0/ Ca+XRPpoelq64dis6rgpie4udkJ5aA4/O9u/pB/ZHNllYtdIghqLNRESO3XKIBFv7WLQ 1Y8eDco3Lu+uE56k7UrYVm+Mc1xv8LcTnO0ItkxViCWGgOrvyDpM+AHOCHlocomZ+iyU v6JQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+Roz8CZJxO5xV9buN4emeP3OpKQTshC3MigNBdzGPTRBq7FDI4NJoq0jU1T/EhQeXsjZkyoo+ec=@isar-build.org X-Gm-Message-State: AOJu0YwBghShQbx2jBtijwLcggURzizyi887OaqXKFnvLzVaG1JB9Tr6 JNQcHcSKq+W0AaI6zeEHEd7suJBcqCguvGe2T3WHL+gDE3oVG3wg8/Tc X-Received: by 2002:a05:600c:e489:20b0:495:6a50:3fb8 with SMTP id 5b1f17b1804b1-496b56da6eemr69194265e9.1.1785151750233; Mon, 27 Jul 2026 04:29:10 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPTHYf0Xo38QSKKmT5CO9p0f65ukYygPB9PQzx2Mhz96MA==" Received: by 2002:a05:600c:1f92:b0:495:5f00:94cb with SMTP id 5b1f17b1804b1-49572c0fd80ls56825945e9.2.-pod-prod-03-eu; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) X-Received: by 2002:a05:600c:1c05:b0:495:607e:5ed6 with SMTP id 5b1f17b1804b1-496b6a31f1dmr97677805e9.31.1785151748270; Mon, 27 Jul 2026 04:29:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785151748; cv=none; d=google.com; s=arc-20260327; b=GxgexfnvHKzYAERsyv9uF1YH9E3H1TP8H9e4Vf5nnVrMoogiPZXdBJIi9L4KD7tqLh 7F9twJPsnPwIJ7YGMRC3/oAPwaFd9K27MuCH/mEJ3CpWyXWkwvas4Si6+T5JkHKeJVxR k2gC42XkhB1/rD3odLCBoZDhwXEmKNCzY/rCpCZHUlMAti2t3RBfR2tCFNTonHwq5Unm 5QauaOysNh9D+BMtOkyyeDG0VpuU4wtZbNu+0qV2jV1uDr+rocBEK7n+PamvVKXveRVV FOmpb8lKYM6pdoLB0DAzs75Zd1gco5S+M3K5dEj27M/Yxi2nzTG/w3j6C+fFDw6LnhO9 PeDw== 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=puEE7G7gloGj1/UNx8UuLB0hJ+yB47t8dCqDPw6tWTI=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=P8NwFfeCHwdChcyR5+0YOEWNXkAPjeIzZU4tbKgzDxssvtb6IMqYsvEKhbpT9BLu0+ cro2Z9Pkqc3U/1heGGYnELFqMruYbA/X8dfyNaSNO9v3TKkw/lT7EFri2vv/yOWowiB7 t6HGWVhDgBGUHaQWYv+m1V6D9upAmXEP1KzW6fwHiHktbkcXuOn/w7+f1i/WfKFKByRW 9/UTo8qyPEvZkjx73IXpvZpTjtCxHTmtDvht5EOYR8X+PaChfGqtWfN+476b6/6QwmSF sL70p+ZFKg7GVG1a88CEu64nIXNHL+J9MH3X373zY9me0lCDZKvJNJtbTx4WZbXHoMEh BtwA==; 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-496b4a00860si1352475e9.2.2026.07.27.04.29.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Jul 2026 04:29:08 -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 66RBSjde000930 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jul 2026 13:29:07 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v8 14/14] debrepo: Add using override for reprepro Date: Mon, 27 Jul 2026 13:26:32 +0200 Message-ID: <20260727112812.2255297-15-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260727112812.2255297-1-akarpovich@ilbers.de> References: <20260727112812.2255297-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/debrepo | 88 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 9 deletions(-) diff --git a/scripts/debrepo b/scripts/debrepo index 81056c3a..4a74be33 100755 --- a/scripts/debrepo +++ b/scripts/debrepo @@ -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("\s+", s, maxsplit=1) + if type not in ["deb", "deb-src"]: + return None + + options = "" + options_match = re.match("\[\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("\s+", s, maxsplit=1) + + if s.startswith("/"): + suite = "" + else: + suite, s = re.split("\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,51 @@ 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.gz" + 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 deb override file + self.fetch_file(f"{source_url}/indices/{deb_override_name}") + break + + with open(override_file, "w") as f_out: + # Unpack deb override file + with gzip.open(deb_override_file, "rt", encoding="utf-8") 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: