From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 20 Aug 2026 15:42:02 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f55.google.com (mail-lf1-f55.google.com [209.85.167.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 67KDg1oD013655 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Aug 2026 15:42:02 +0200 Received: by mail-lf1-f55.google.com with SMTP id 2adb3069b0e04-5b45f65d4b3sf821541e87.3 for ; Thu, 20 Aug 2026 06:42:02 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787233316; cv=pass; d=google.com; s=arc-20260327; b=LySgbFW34Ye18ROzukhBmyNCv1jmySwKQK1HrXXXebBq0Wmyz8pvyK6VEmua1KxNoP AImVKT4gqg006LevKTGCYKtaRe8lkWikzxjjBRDfID09EGBFLR6Gl4bOk7P0VhN0/GgB MqlZMIeaRpQ5sWktUlBvu3fdgfp3HSxCwh7e0yHyyvv3vzZy1qjIDBKYxUL5TvkHf0Zq TXwS7BJQKXB6ABExWuRTD5vDxoFPgBOfqgU0gK4L69SY5kAI4naVEHorOQp4NpVwQzlo PHW4abz66zAncIy1PvsaJQo4r+47RpPq2z1XmTVGVwjZcYmG74wdvK4pKYR4CKrhNrrv XV+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; fh=tGIicBywf6l6kUYD693UYb2kYtCPEIWiw+DeKsAq1Ug=; b=kg5tz7EeYiRfEm2fz82WPjxqsZbaok4p0G0wG+QieDhZnyviCHgbHnRMygbqV7egL/ YeFSXPMXwh2e5rlhcv4mx8X2FFPTusyrC6/M8wOIb44xRe3dO7umk4DxFANLskdN5Jhe rIdp9x8ur0M187WCQb3zVHHmiLxnG3uqjTnijUkLIO01cUa8hDAbQPySwCstfUOPekrY sn+/+yWrlagniUrOA4gr2i+rx3xEvwwVGgEbS5TjhbTY3jPyI7kELeCej/jbUfpuv4jc DqA4oZpj347Qdv1AZzDSHRvyWQb0/10lBXaPvcecfIAcNKxzkH507Md+R17isL2/f7Gn QJuw==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1787233316; x=1787838116; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-type :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :from:to:cc:subject:date:message-id:reply-to:content-type; bh=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; b=HWz9YV8rytYVrZ64EE6JMvU16AwsopVJQxrmAg0m4NcoP0m4L4tIQvtw1KyDXNAFUG 4FKvzh0PUtq3ZZskRdDj3xvWYkvb6N14d7rMuWJZHphCUYDUzBE4FPN1Vw5stnNdgHsl BR0DrnVxqrjyA6/3tOK/ut6tGS8qLr8kIg61HqgXG9GoHx4QBhOPFHoZwgGWfKTM2TYO G/e92Ez3lqFhfONeF3uYEik1eeZNR/NpK01j/6WeDXSgp0q/EV16mq+Y1Lm832iZPq1U fjaeUDtQ66iwiNrGprF4rx3UER11fZnIZCpIRmNo6uKk5r7So/wQ1SXFXbNQIyHb7N0a EQ0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787233316; x=1787838116; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:x-original-authentication-results:x-original-sender :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JRyRLLX/IROYgZh/lf28zbxDm+lnSUF6qSWtWEWsHFA=; b=NwIlYrxd3/FEr3mbg2d/t/BeZAx+NHoLZ2cqQCvHFXy6GeLQyNRKZvCcuk1ta+NsEI 4Wweq8L2yPzDJi/y4dnTVMshpCFfqhKxN9jqdMZOr8cX81mXOk8H4GBVEox220zo7aPT +WhdthqR79Lgj3gyJcrytDJ8AWpnbHXBYk8Dn9OLpchuoVaOGwXfNcBxUY6ZqHF6f3u8 W/EPSAkJxRopb3twBV7nfeC/Mwn836tlYITThcR4vyh+6AfzApXes+Fs0tcf2cV46bBQ P0skEZ2IWFnzTvLSdgz8mKVrLuYGDrWKV+t6f7kmhC8lzgdbPqnqbA2RKND/lhOQWS/m v6NA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrMJsL6zm4ntA+nMiJUq/YTGSIvwz3Rsb/NKjhdEGTDjUYdN93jw6xwbLFPjsupc3H9kbPJ@ilbers.de X-Gm-Message-State: AOJu0YxtTFKPS9G/96/9B9jBlYFbw2+IVbwxAtUcHotrCO7SdfMLxRSj mymKRuWXbETQnBXb9TQ/KHj0jJUnUtF8/M4a0H22QYk0OgAFm1cgULe0 X-Received: by 2002:a05:6512:2312:b0:5b3:f69:fef7 with SMTP id 2adb3069b0e04-5b478bc5b28mr4558569e87.4.1787233314794; Thu, 20 Aug 2026 06:41:54 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfDrAbPEal56rdgtMIWciGVfrH0V5shyMSRfYs7rbxbhA==" Received: by 2002:ac2:5e84:0:b0:5b1:5d99:bc6c with SMTP id 2adb3069b0e04-5b47d58bcc4ls364117e87.1.-pod-prod-08-eu; Thu, 20 Aug 2026 06:41:52 -0700 (PDT) X-Received: by 2002:a05:6512:2c85:b0:5b1:5eea:a576 with SMTP id 2adb3069b0e04-5b478d14ce3mr5380198e87.21.1787233312524; Thu, 20 Aug 2026 06:41:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1787233312; cv=none; d=google.com; s=arc-20260327; b=o8o8CSrFS9TCxud4nRGwFX4QvV7CTnc+sYdkeTlT/EeqC9E++zjpQNhkFO4lu4tNlM GDPpEJyLIfSeW4vpPL1w0QTMzcDttuqSiuerryUSMY+XWVFEhgJRSiGiZpDG54gFSMZy 39Tvqy7OhNLSU1dACclsl7tkV4MKo0WNfoYhJKZNGEDJdjtZY8hcJrl47kqWUTeDQMNy skqHTXp99BTEr/ek0QEmxWPW08TIeq2SQam6RKb6kB1yA8l9B0rBjgxyjlUWK9GoH+kE 5iDo3ugsDP/kI9nMVDxlDlvSneLh6UA4XN0vem/0hDK/LbcIUyQz4PG0mg6cBtsu9BJX m8Pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=jIZUIhxiFY7O+c1VZ/RnWqvTjL4VJbRqfFUhfJEzPkM=; fh=IIbR0JxonYgzdrHDdB9TmZniSh/o1z0HofhfbmLXp8s=; b=mYSiN5t2/OtVVzI/WHVXpd/SvzzG+FXUNE6W4SKVLobDonptKKxB0PwzE3Y1qNffym Dbaxo8T2zJc0k505Ir1bsGBebxw3tiNBBAuaem2QGFfizrWdAqqM/96a/FYcil8hzkW/ Ucpi0OYzDUBKta1jAwIGt3Ek6YeQONpqWc/yeqM4Ti6qv6zrd05Nccz//VqRn3lG1pAH Ggo0D5Kv1QG5U3yjL9ymKdza6hxzgJA2a8gCF9MbbknSB07yG7MUJ/MFfU++ie2uSRt4 LPfMTyigfk4YJiBXSzJ4mk6vg4FlZ//wFkQX9DPVVhHXO4IZrEG6zhn0K3UVYQqe/iuB LFeA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 2adb3069b0e04-5b47881f116si108239e87.0.2026.08.20.06.41.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Aug 2026 06:41:52 -0700 (PDT) Received-SPF: pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (62.122.174.6.serverel.net [62.122.174.6] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 67KDf8lP013513 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Aug 2026 15:41:51 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Uladzimir Bely , Aliaksei Karpovich Subject: [v9 02/13] meta: Add debrepo bbclass handling base-apt prefetching Date: Thu, 20 Aug 2026 15:29:17 +0200 Message-ID: <20260820133934.383231-3-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820133934.383231-1-akarpovich@ilbers.de> References: <20260820133934.383231-1-akarpovich@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-Original-Sender: akarpovich@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Content-Type: text/plain; charset="UTF-8" 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-TUID: NRUxjs8dDlBM From: Uladzimir Bely This class uses 'scripts/debrepo' python script to prefetch given packages or sources to local base-apt repository. Signed-off-by: Uladzimir Bely Signed-off-by: Aliaksei Karpovich --- RECIPE-API-CHANGELOG.md | 9 ++++ doc/user_manual.md | 1 + meta/classes/debrepo.bbclass | 89 ++++++++++++++++++++++++++++++++++++ meta/conf/bitbake.conf | 5 ++ 4 files changed, 104 insertions(+) create mode 100644 meta/classes/debrepo.bbclass diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 2db05169..139fcc8b 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -1201,3 +1201,12 @@ To opt out, remove the feature explicitly: ``` ROOTFS_FEATURES:remove = "clean-apt-credentials" ``` +### "Prefetch" mode for base-apt + +Originally, `base-apt` repo is created only during second build when variable +ISAR_USE_CACHED_BASE_REPO is set. The repo is populated with every package that +took part in the first build and was cached in DL_DIR. + +New ISAR_PREFETCH_BASE_APT variable changes the way `base-apt` is populated. +Packages added to the repo before running any task that need them. Separate +`deb-repo` script is used for populating base-apt repo. diff --git a/doc/user_manual.md b/doc/user_manual.md index dcc3f560..aa2b68b9 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -86,6 +86,7 @@ apt install \ gettext-base \ git \ python3 \ + python3-apt \ quilt \ qemu-user-static \ reprepro \ diff --git a/meta/classes/debrepo.bbclass b/meta/classes/debrepo.bbclass new file mode 100644 index 00000000..79a19144 --- /dev/null +++ b/meta/classes/debrepo.bbclass @@ -0,0 +1,89 @@ +# This software is a part of Isar. +# Copyright (C) 2026 ilbers GmbH +# +# SPDX-License-Identifier: MIT + +# Prefetch to base-apt repo by default +ISAR_PREFETCH_BASE_APT ??= "1" + +DEBREPO_WORKDIR ??= "${DEBREPO_TARGET_DIR}" + +debrepo_update_apt_source_list() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + + chroot_dir=${1} + apt_list=${2} + + flock -x "${REPO_BASE_DIR}/repo.lock" -c " + sudo -E chroot ${chroot_dir} /usr/bin/apt-get update \ + -o Dir::Etc::SourceList=\"sources.list.d/${apt_list}.list\" \ + -o Dir::Etc::SourceParts=\"-\" \ + -o APT::Get::List-Cleanup=\"0\" + " +} + +debrepo_add_packages() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + args="" + if [ "${1}" = "--srcmode" ]; then + args="${args} --srcmode" + shift + fi + + if [ "${1}" = "--isarapt" ]; then + args="${args} --extrarepo=${REPO_ISAR_DIR}/${DISTRO}" + shift + fi + + workdir="${1}" + args="${args} ${2}" + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + else + export GNUPGHOME="${WORKDIR}/gpghome" + fi + + ${SCRIPTSDIR}/deb-repo \ + --workdir="${workdir}" \ + ${args} +} + +debrepo_parse_dscfile() { + [ "${ISAR_PREFETCH_BASE_APT}" != "1" ] && return + [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ] && return + + dscfile="${1}" + args="" + + if [ "${ISAR_CROSS_COMPILE}" = "1" ]; then + build_arch=${HOST_ARCH} + if [ "${PACKAGE_ARCH}" != "${build_arch}" ]; then + args="--crossbuild \ + crossbuild-essential-${PACKAGE_ARCH}:${build_arch} \ + dose-distcheck:${build_arch} \ + libc-dev:${PACKAGE_ARCH} \ + libstdc++-dev:${PACKAGE_ARCH} \ + " + fi + fi + + args="${args} --extrarepo=${WORKDIR}/isar-apt/${DISTRO}-${DISTRO_ARCH}/apt/${DISTRO}" + + if [ -n "${GNUPGHOME}" ]; then + export GNUPGHOME="${GNUPGHOME}" + else + export GNUPGHOME="${WORKDIR}/gpghome" + fi + + if [ -n "${DEB_BUILD_PROFILES}" ]; then + export DEB_BUILD_PROFILES="${DEB_BUILD_PROFILES}" + fi + + ${SCRIPTSDIR}/deb-repo \ + --workdir="${DEBREPO_WORKDIR}" \ + --dscfile="${dscfile}" \ + ${args} +} diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 7a12a3ef..1372a00e 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -67,6 +67,11 @@ SDKCHROOT_DIR = "${DEPLOY_DIR_SDKCHROOT}/${BPN}-${DISTRO}-${MACHINE}" CACHE = "${TMPDIR}/cache" KERNEL_FILE ?= "${@ 'vmlinux' if d.getVar('DISTRO_ARCH') in ['mipsel', 'riscv64', 'arm64'] else 'vmlinuz'}" +# debrepo config +DEBREPO_DIR = "${TOPDIR}/debrepo" +DEBREPO_HOST_DIR = "${DEBREPO_DIR}/${HOST_DISTRO}-${HOST_ARCH}_${DISTRO}-${DISTRO_ARCH}" +DEBREPO_TARGET_DIR = "${DEBREPO_DIR}/${DISTRO}-${DISTRO_ARCH}" + MACHINEOVERRIDES ?= "${MACHINE}" DISTROOVERRIDES ?= "${DISTRO}" OVERRIDES = "${PACKAGE_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${BASE_DISTRO_CODENAME}::${BASE_DISTRO}:${ISAR_CHROOT_MODE}:forcevariable" -- 2.43.0 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260820133934.383231-3-akarpovich%40ilbers.de.