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; Wed, 05 Aug 2026 10:40:25 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f183.google.com (mail-lj1-f183.google.com [209.85.208.183]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 6758eOFF028658 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 5 Aug 2026 10:40:24 +0200 Received: by mail-lj1-f183.google.com with SMTP id 38308e7fff4ca-39f65da4a4asf2874591fa.1 for ; Wed, 05 Aug 2026 01:40:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1785919219; cv=pass; d=google.com; s=arc-20260327; b=hOu1SvT5L+wpFfRmhcUdd8dzwEnZF5/BDnRQhLEeIDUhdU3itS9B9BknnJSdqhE5jT AJcgkbJyaTfM5VI412EpHrCejubgkM3ve4otF/qGzM0/BaHDPE2P0f6XjTlSG+4tMvvs Dq4mAXQsJLUa8e0+Sn5fdyg2rUOOcymcGoo+f9aVQpdHtw4mthKG9nvKkVseMUa7OCSj VfxZD3Wj4vgsF6VKncABXKjfWx/aQoduL1sBSj3zQOfAvYDiTCbkdjeK3Y2ARUHEmPor T1qEj2s1RgArb7Xhz/ROb2Z0+qPzLGpRG2ClILqiUf4SGLZJ2G6Zzkgk0tCvn8JCLJRS st8A== 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:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:dkim-signature; bh=yo98jusA3Ui/2RPAsIbeu3mihVUDJYfnYkNDhcARg3M=; fh=omCA48Dw4GhfrGTB/0Boc6NyE0eT1NxGgRMJQRPaqIQ=; b=shPu6Pn/Dav2SQ+D6cTmuSrS9gEyjsB/53dlHcsFUbDZ70PS0ZNIxcfBS66W7Qft7K TM9G3MiBJCKg5P3JU4LJxI4p9GejMIxPez1MjZUo8NWFRd1BUqCV4lkjdnSJTqiclQyE pvj3PFtRAUrR4xOuzyWkKDRVWyiK5GBxZQKM1i8IZYic9hcURaBBiDGULcyNmltZkalG mI1uDBvadlXEiwCpDHdl9/RbYdsCjjDKjPCteH7rC8kBaGTEyZdTXvrcEqsptnXfkwR/ uwTLLV4Vc4EzT1YopO4wiYOgGwB4ZdNaaSJTWFJX3T1WurkNqlSAV0mRMUMRoBZeJGjP Ncsw==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1785919219; x=1786524019; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:content-type:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to:content-type; bh=yo98jusA3Ui/2RPAsIbeu3mihVUDJYfnYkNDhcARg3M=; b=BSR5C5mZ3LLhMtU8kW+VVhSlMq8lNiKnO0ABlR5VsI58rP3sBRmTlcacXjNaAw4mXM xxTXEPRP37NWBUOYrhfIi5ttVLntARXEOQn7gYqNY/c7E4SGqw0OvXfGPjdP48tD0Su3 Ei9LTDDNwC9VRcPJXKSMlqoH9TCc3I3Q3dCnsSR/4U7TGRRCsCV6CWfn0Mpu2yBQs3Iy TgueFhn0+fjKyDKXvg3rTmTFRENKawKkeWM8lUANdukBfmgMQqEEEsanu77rwyyWhVVl PJCcIozIieahLUHaCBMRw8A0CaxctSQG7BpbzWrG6oJEJBCsdQhUJZrjLjAfYCt1Bkop tzVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785919219; x=1786524019; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:content-type :in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-beenthere :x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to:content-type; bh=yo98jusA3Ui/2RPAsIbeu3mihVUDJYfnYkNDhcARg3M=; b=dPC4fxBpWdKBWS19rSYCP+AmI1sovkKBz6GVif28jcewZphB5Eip15udnUHARZcdhY hI0G3ECLtUJe+Qlyi/mJ62sHuBovbMfqfn/YEIUQahIrggxI0hnhH3wI7jGlaorSxvQO +2Uh0yqTEIr4PgdHglNmVVwR8V2M6zCn0E0Lq6fqAiGk5J5FQr7ZVgQ3V/kp2bEiszM6 3bQqsUlwB0xknHsWaf3I5vO0+1E0hK8fb6TPjJUEzCrl9a2HBL4xiB3Tgfe0mcc0ysdR 6mdVmjq5QlFGZPaLW8JvfsiR9Uqw4BLehnjrvqV/JzIY2arAjK8v0fiE9T6x9D2w0Qb/ we0w== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AHgh+RrI90ww6CYlRynNlbV2GN843YoGtg2o0kRGGCg4w87wCAeGSiwZnj/D+h/PFTCFu12MyTb+@ilbers.de X-Gm-Message-State: AOJu0YzzoFOydNF/LpdqdCz9Wtwwk5E5dKr4aZnP9cxK3ePvUGfQWhpI 7InO1TaolyFV+M7GojSy0LkERAFyEr5snyfgX/8PRCjFHVi+tXqHzfE3 X-Received: by 2002:a05:651c:1548:b0:39b:f25:6058 with SMTP id 38308e7fff4ca-39fbb2bc3ddmr5835891fa.15.1785919218953; Wed, 05 Aug 2026 01:40:18 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="Aa7YSPSRDsB+UfRg60qrEbMvlaRDP9+MbByVknoalTl9sVUu6g==" Received: by 2002:a2e:3c13:0:b0:39e:fe5e:a75b with SMTP id 38308e7fff4ca-39f679c648bls18155331fa.1.-pod-prod-02-eu; Wed, 05 Aug 2026 01:40:16 -0700 (PDT) X-Forwarded-Encrypted: i=2; AHgh+Ro2474ATBQ2oGB/aWtu0z4Lx1d85nsrM3RonRz42c4IpQaGRDytTECDddSNeOwG5PNyqreEdP1FsIXw@googlegroups.com X-Received: by 2002:ac2:41c8:0:b0:5b0:11cc:2284 with SMTP id 2adb3069b0e04-5b2f4b92aaemr432736e87.21.1785919216200; Wed, 05 Aug 2026 01:40:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1785919216; cv=none; d=google.com; s=arc-20260327; b=SGBXRDUyldguxPeAWCFg40uyGLhJDMr84hpanCo6B2Ve5zHJbqmQwf1d6rlYw2ojrv TUsUM7s9JKmShLG3fhkwuvbYiRz++wVV1XWkRPznEvpdqUt2To1afASIZfduGEfcIN0V ezQCg8HU41z8+zcCZG9wNMH/5atyDtj4klD81Dt9V4NZ5ZcFAmI1OIVbEsMcRRiLM2WJ MdC+/YQy9TMyD67Whf3dFfp716ijGFtWrr9823T4XzMI8q/pLXWK8L5rBz30Td7eyj85 xTc83QRrehzuInzaSzVt6FJk3MDJepyCu18MuCCOYTamLUy7rfiFQkW4NddmmSLr4t0B twXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=snaU/kTsQanqMKC5fZeyuV95L7J26lsNa2hu++6LmuA=; fh=oj2Lw3hN0xAF1UllTKVHI9r/7a2eBqx72zyDCjayfJ0=; b=c9hGZ8c7wKPfop/GEMlLxSZ3rRnviuDZhnvlzSZDiOQeLmLkRQuKukVKn/qguzI4BD Re02a0mfOakJ9S4LQsMJuHFpD3mzr0wPVzEb5tAjnAlNyT/YhYt+gjDoN+TtBf0bFf9C IPVsSbyH6l+3ZfdVOCa0Un4+hPRGSNG4hVqe0S5W+YDvQEvoERZpCx58utM9JlIHwXWm hILffRN+d7UKV8xoDwYa7fhr/hNp/9CXQd8RZMVxUtjcGcaupfcuv2HeJlTBX9cOhytu JVvJTH5lXNQrCa4kA0MLqyZVgLyaIXhjjgFWfLgRo+hhVN0h5bC6Clsd4MRpDkqHu5pT LZVw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 38308e7fff4ca-39fb99d7c8csi436571fa.7.2026.08.05.01.40.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 05 Aug 2026 01:40:16 -0700 (PDT) Received-SPF: pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from [192.168.178.139] ([88.130.203.42]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 6758eEXv028646 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 5 Aug 2026 10:40:14 +0200 Message-ID: <754fd903-8735-4a08-a730-8066c982e13c@ilbers.de> Date: Wed, 5 Aug 2026 10:40:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/1] fix(dpkg-build): deploy debs via shared sstate dir To: Felix Moessbauer , isar-users@googlegroups.com Cc: jan.kiszka@siemens.com References: <20260731100311.449086-1-felix.moessbauer@siemens.com> Content-Language: en-US From: Zhihang Wei In-Reply-To: <20260731100311.449086-1-felix.moessbauer@siemens.com> Content-Type: text/plain; charset="UTF-8"; format=flowed 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: wzh@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@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-TUID: 0d7da78Lo07Z Applied to next, thanks. Zhihang On 7/31/26 12:03, Felix Moessbauer wrote: > The built debs were stored in a WORKDIR-internal plaindir and consumed > from there by do_deploy_deb. do_deploy_deb is a live task that mutates > the external isar-apt repository and can therefore never be sstate > cached, so it always runs and relies purely on the plaindir being > present on disk. > > When do_dpkg_build is served from the sstate cache, that WORKDIR-internal > plaindir is not guaranteed to be materialized (e.g. when the task is > covered via hash equivalence without a setscene restore). do_deploy_deb > then runs against an empty deploy dir, passes an unexpanded glob to > dpkg-deb and aborts the build. > > Fix it by deploying the debs into a shared, sstate-tracked DEPLOY_DIR_DEB > via sstate-inputdirs/sstate-outputdirs, the same pattern already used by > do_bootstrap, do_rootfs_install and friends. This makes the deploy dir a > first-class sstate output that bitbake reliably restores whenever a > consumer needs it, decoupled from the WORKDIR lifecycle. do_deploy_deb > additionally guards against an empty deploy dir so it can no longer feed > a literal glob to dpkg-deb. > > Fixes: 3fc96652 ("dpkg: directly deploy via sstate cache") > Signed-off-by: Felix Moessbauer > --- > Changes since v1: > - rebased on top of the latest next, no functional changes > > RECIPE-API-CHANGELOG.md | 8 ++++++++ > doc/technical_overview.md | 2 +- > meta/classes-recipe/barebox.bbclass | 4 ++-- > meta/classes-recipe/dpkg-base.bbclass | 19 ++++++++++++++----- > 4 files changed, 25 insertions(+), 8 deletions(-) > > diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md > index 7b13cc7e..7e923e55 100644 > --- a/RECIPE-API-CHANGELOG.md > +++ b/RECIPE-API-CHANGELOG.md > @@ -1138,6 +1138,14 @@ network access. Recipes that still require network access during the build can s > `DPKG_BUILD_ENABLE_NETWORK = "1"` to explicitly enable it when using an sbuild > version newer than 0.89. > > +### Built debs are deployed to `DEPLOY_DIR_DEB` > + > +The debs produced by `do_dpkg_build` are now exported into a shared, sstate-tracked > +deploy directory `DEPLOY_DIR_DEB` instead of being deployed to the `WORKDIR`. > + > +Recipes that accessed the built debs through `${WORKDIR}/*.deb` (e.g. to unpack an > +artifact in a `do_deploy` task) must now reference `${DEPLOY_DIR_DEB}/*.deb` instead. > + > ### Add Hyper-V machine support > > A new machine `hyper-v` has been introduced for building images > diff --git a/doc/technical_overview.md b/doc/technical_overview.md > index fe427cae..5d2e1b8a 100644 > --- a/doc/technical_overview.md > +++ b/doc/technical_overview.md > @@ -217,7 +217,7 @@ Both consist of the following steps: > finally unmount again (`dpkg_undo_mounts`). > > 6. Task `do_deploy_deb`: add successfully built packages > - `${DEPLOYDIR}/*.deb` to the isar-apt repository > + `${DEPLOY_DIR_DEB}/*.deb` to the isar-apt repository > `${REPO_ISAR_DIR}/${DISTRO}` > > ## 3.6 Populate Target Filesystem > diff --git a/meta/classes-recipe/barebox.bbclass b/meta/classes-recipe/barebox.bbclass > index c9a767d5..094f8018 100644 > --- a/meta/classes-recipe/barebox.bbclass > +++ b/meta/classes-recipe/barebox.bbclass > @@ -47,12 +47,12 @@ BAREBOX_BASE_BIN ?= "barebox" > > do_deploy[dirs] = "${DEPLOY_DIR_IMAGE}" > do_deploy() { > - dpkg --fsys-tarfile ${DEPLOYDIR}/${PN}_${CHANGELOG_V}_${DISTRO_ARCH}.deb | \ > + dpkg --fsys-tarfile ${DEPLOY_DIR_DEB}/${PN}_${CHANGELOG_V}_${DISTRO_ARCH}.deb | \ > tar xOf - ./usr/lib/barebox/barebox.bin \ > > "${DEPLOY_DIR_IMAGE}/${BAREBOX_BASE_BIN}.img" > ln -sf ${BAREBOX_BASE_BIN}.img ${DEPLOY_DIR_IMAGE}/barebox.bin > > - dpkg --fsys-tarfile ${DEPLOYDIR}/${PN}_${CHANGELOG_V}_${DISTRO_ARCH}.deb | \ > + dpkg --fsys-tarfile ${DEPLOY_DIR_DEB}/${PN}_${CHANGELOG_V}_${DISTRO_ARCH}.deb | \ > tar xOf - ./usr/lib/barebox/barebox.config \ > > "${DEPLOY_DIR_IMAGE}/${BAREBOX_BASE_BIN}.config" > ln -sf ${BAREBOX_BASE_BIN}.config ${DEPLOY_DIR_IMAGE}/barebox.config > diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass > index e2ed4dfb..610213b8 100644 > --- a/meta/classes-recipe/dpkg-base.bbclass > +++ b/meta/classes-recipe/dpkg-base.bbclass > @@ -12,7 +12,12 @@ inherit repository > inherit deb-dl-dir > inherit essential > > +# Local (WORKDIR-internal) dir where do_dpkg_build collects the built debs. > +# Its content is exported into the shared, sstate-tracked DEPLOY_DIR_DEB so > +# that consumers (do_deploy_deb) always find the artifacts, independent of the > +# WORKDIR lifecycle. > DEPLOYDIR = "${WORKDIR}/deploy" > +DEPLOY_DIR_DEB = "${DEPLOY_DIR}/isar-deb/${DISTRO}-${DISTRO_ARCH}/${PN}" > > DEPENDS ?= "" > RPROVIDES ?= "${PROVIDES}" > @@ -200,7 +205,8 @@ python do_dpkg_build() { > bb.build.exec_func('dpkg_chroot_finalize', d) > } > do_dpkg_build[cleandirs] = "${DEPLOYDIR}" > -do_dpkg_build[sstate-plaindirs] = "${DEPLOYDIR}" > +do_dpkg_build[sstate-inputdirs] = "${DEPLOYDIR}" > +do_dpkg_build[sstate-outputdirs] = "${DEPLOY_DIR_DEB}" > do_dpkg_build[network] = "${TASK_USE_NETWORK_AND_SUDO}" > do_dpkg_build[depends] = "${SCHROOT_DEP}" > do_dpkg_build[postfuncs] += "dpkg_collect_debs" > @@ -218,7 +224,7 @@ addtask dpkg_build_setscene > CLEANFUNCS += "deb_clean" > > deb_clean() { > - DEBS=$( find ${DEPLOYDIR} -maxdepth 1 -name "*.deb" || [ ! -d ${S} ] ) > + DEBS=$( find ${DEPLOY_DIR_DEB} -maxdepth 1 -name "*.deb" || [ ! -d ${S} ] ) > if [ -n "${DEBS}" ]; then > for d in ${DEBS}; do > repo_del_package "${REPO_ISAR_DIR}"/"${DISTRO}" \ > @@ -232,8 +238,11 @@ do_clean[network] = "${TASK_USE_SUDO}" > > do_deploy_deb() { > deb_clean > - repo_add_packages "${REPO_ISAR_DIR}"/"${DISTRO}" \ > - "${REPO_ISAR_DB_DIR}"/"${DISTRO}" "${DEBDISTRONAME}" ${DEPLOYDIR}/*.deb > + debs=$(find ${DEPLOY_DIR_DEB} -maxdepth 1 -name '*.deb') > + if [ -n "${debs}" ]; then > + repo_add_packages "${REPO_ISAR_DIR}"/"${DISTRO}" \ > + "${REPO_ISAR_DB_DIR}"/"${DISTRO}" "${DEBDISTRONAME}" ${debs} > + fi > } > > addtask deploy_deb after do_dpkg_build before do_build > @@ -241,7 +250,7 @@ do_deploy_deb[deptask] = "do_deploy_deb" > do_deploy_deb[rdeptask] = "do_deploy_deb" > do_deploy_deb[depends] += "isar-apt:do_cache_config" > do_deploy_deb[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" > -do_deploy_deb[dirs] = "${S}" > +do_deploy_deb[dirs] = "${S} ${DEPLOY_DIR_DEB}" > > python do_devshell() { > isar_export_proxies(d) -- 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/754fd903-8735-4a08-a730-8066c982e13c%40ilbers.de.