From patchwork Fri Apr 11 14:33:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adriaan Schmidt X-Patchwork-Id: 4168 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 11 Apr 2025 16:33:29 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f64.google.com (mail-wm1-f64.google.com [209.85.128.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 53BEXSJl018456 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 11 Apr 2025 16:33:28 +0200 Received: by mail-wm1-f64.google.com with SMTP id 5b1f17b1804b1-43efa869b19sf15130205e9.2 for ; Fri, 11 Apr 2025 07:33:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1744382003; cv=pass; d=google.com; s=arc-20240605; b=MEVtf09HJENsf4MhTzdYq/4Jj2DZDb4wIhygFM3thxqT2gaCRsx4T5H5rOeH3WVOoZ MVIAa0FWlR0bzr/TgnhfUzkp17PfPAG9UZB58h4HpAJhtl6HpEinPM4C1agBHFAyadG2 51eOq7z2WglKNQdRXZ8372oNzyXDNQiNBrpuNACn8CjVzsinnxnJObs8/C2+eoyDISFK 1iAwPlXofUXcpDnpwGSVsfFUkJnJahzL/qrwlySrvRlqI0bFNoEUhOoZbLIRl0gztXct fQU4hqMCoHhilmApuwbTm2UFNGeum3ZoNqosdobhHrXIbY6SEo15WQdN2lIYTkEk45QD /A5Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=7g3DG1z49BGXT0uRfuwByW+bhf22DpKFCzNFX9cMylw=; fh=0jvnQNA6fMv9dS//azydRCMMJMxLCXi5fekHiKDwHQM=; b=iVXSyaX8A6cYy7YCFoD8f79bTGjO4jvrSchnWTmMG7hYl8ekT4BxuqYroIzZ6bPBfv ky9HMBK+OwimsLY7z7yya0VzBTsEUV1eO5OLChup/Uqdb2HT8wClhFte5NazXquQRYJO znGB0CsUG/B66S9mJmc4wTRf2dekLY6KclZb6cetbv6PL2tDNYVm+aRedJn0nIWXDqzK q62/vHWXtKB/kPZjwK07h2PvMgo5TfZHv+5XnQ8J/MTYvC9uQYYdfNqBVnqG7menJlMq kkC+oIHM2Fo+Qi5UskrFHmnWIkeoU7oHLQzwmX5i4x33z4wc4+AQjXjv0IigJ5KrazRQ 6bxA==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=dLysIv1H; spf=pass (google.com: domain of fm-526363-202504111433186638ca3cbdb033eeed-bqurvd@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-526363-202504111433186638ca3cbdb033eeed-bQuRvD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1744382003; x=1744986803; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=7g3DG1z49BGXT0uRfuwByW+bhf22DpKFCzNFX9cMylw=; b=RVhB3iJM0jORKLilA/luPR0uHM++bU0MFoUlnuqsXtuX0ygQWe/mrfR+1z33z9xSVL pCDizNi4BJdclfZSc8sOWFfIBQ4wfUijRRenPlzCPzqz914GLG2fkdVgEnKqk80iVXQy snaNOwCy2ok8M8KRyorq3XqGSy+wd1AddE/TQ+zJnwmkf0GsVXa11e0zN8iMq6X/TCGc 7Gx1IeKY+TRn6TqMaYpRfxvsvPwYsAGmYnS0OGbVp4XeUorTAUc5fLY48tEkoYZxlVY5 bAPaSwFCxpvMPC4192GAf3BfaER34CR9vtNUnP+a00FwHTmoA45v93upUARdF/hPmVYZ 0MQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744382003; x=1744986803; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7g3DG1z49BGXT0uRfuwByW+bhf22DpKFCzNFX9cMylw=; b=MHjopq7q1CT25ykFFNKBALUQVkue1nAnH1e53BNVAj/lRUxFkD37hiVrJwDnYHfgRb R+U1EtwDF7SgAqW6qOYK6uZBIHc0BvDx7nIk5n13VtIkvI/zeyx78v0k+V0U9GKQcgdn DkzIvv0TrkGstSghnD+hn+qifkiFMgjdeKjmSKQ2PxUbjOuomvXmQGkcy4DWvmfHePVy sS7NN1OlRBmQNyAgzDYcM3VQA9q4LHo61hBEO+TdYkDC/fx6HWGiHjb1/n/+FdFzHn3J PDZ/5A8TJZbT21eKUOMl7aTDNzAIdBoYXI9YiQKCf7AYP93ezJ1ljlRjyfaPtxXiinCa htOA== X-Forwarded-Encrypted: i=2; AJvYcCW2FQQnt/stOrltBLYhyWg5gowIBUkRmUZv2/aFbm7oBU3YSDHgAW2P8VMVhSDT4+bGAIazZNU=@isar-build.org X-Gm-Message-State: AOJu0YyilkbvmPmE7RF4HBwelFWxssA3MxQ39aqf/N1TrgyoAtyCofIJ X4kkRGxrzrR94YrLhcXrM7VTRvDS9EqtN+lVqACSi4KYHHyYPQsn X-Google-Smtp-Source: AGHT+IFIwZ39G+GdSSGPnUXtBCN/Q6KwgjekkLYfKnR5OayY8RNM+29B768eWti2zbyTh5EZbbXcEA== X-Received: by 2002:a05:600c:1d83:b0:43c:f3e4:d6f7 with SMTP id 5b1f17b1804b1-43f3a9afdeamr28880605e9.31.1744382002200; Fri, 11 Apr 2025 07:33:22 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h=ARLLPAInXR0UQ758m9gwcST+q0ibtxJVLtRPZXaS5jOylkD7Tw== Received: by 2002:a05:600c:4f10:b0:43d:17c2:e7f1 with SMTP id 5b1f17b1804b1-43f2c57a602ls628395e9.2.-pod-prod-05-eu; Fri, 11 Apr 2025 07:33:19 -0700 (PDT) X-Received: by 2002:a05:600c:470d:b0:43c:f575:e305 with SMTP id 5b1f17b1804b1-43f3a93cfefmr21536565e9.8.1744381999478; Fri, 11 Apr 2025 07:33:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1744381999; cv=none; d=google.com; s=arc-20240605; b=dWEGLaZIe00TdnU8CEchXSA2ZkBjR8TIYFZv1NKWUQ+IYGPLAD6t4h3VA9Ub3/sVJ+ 384mWIGb4bdM90BFHa4F9831//17eftFz1hrX/OHwot55hmVymE1kYjFHzB4SPoQYEmC iiZiwgymLO1MoESPI5GHdlZQCmqy4PFEKzE3C2Tn/Nh1Dfk7n74xRQ7OsABoU6jPS2Ix WXLNUOsmt7vqRjfYSOmaucn4lmSVGaFka5c86AXpvIM/krEl4+lKW4HOCXDEtNEZBa0x 2wtUFgqO3nZonQeqsJ44w11kblTHZnpBNrP+7CNHuIi52La0OhYbjdZX+TeC6PIsbwqX rlvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:message-id:date :subject:cc:to:from:dkim-signature; bh=ml7V8jYOVYjjzftowMtVH16FgXpyOObJRgTQaStHOpc=; fh=9NE7CUS1FFTNwdA+qI7GDbtctuA5HPxJbMqweKhyPyU=; b=dCDk+28mqqNO0/6njKb6W+I/mYZ8YL0KdBVz+VxukPG6nHrCgCYUo8hva0+Z0bFBVw GDxGGrk98tcrzVkLhoQpmzAxTHT5QoYKP+L15fwtYuiIP4Bx6YbFaCAZBanUCrwfXMAs p8zdc2Vy0W5NueXSBMLm92czCCXFoRzy5JFjD8G2yBcvaoqmc4KWxX5KZxhGJxv7zJD4 6v2DQBUe5EKMoeKxyF5DXro47l6QEq4Dxr2Acg/6cRpJLsKTT4bfHsawP79HF4AY01KB kqwgSQDSXiH1yt4IY/J4teMtY3CEk0FHk6P5ae0BWBCMlPZC8yGfz+fbED6SRJDwfKOC WVOA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=dLysIv1H; spf=pass (google.com: domain of fm-526363-202504111433186638ca3cbdb033eeed-bqurvd@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-526363-202504111433186638ca3cbdb033eeed-bQuRvD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-227.siemens.flowmailer.net (mta-64-227.siemens.flowmailer.net. [185.136.64.227]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-43f20a7ec88si2717105e9.1.2025.04.11.07.33.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Apr 2025 07:33:19 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-526363-202504111433186638ca3cbdb033eeed-bqurvd@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) client-ip=185.136.64.227; Received: by mta-64-227.siemens.flowmailer.net with ESMTPSA id 202504111433186638ca3cbdb033eeed for ; Fri, 11 Apr 2025 16:33:19 +0200 X-Patchwork-Original-From: "'Adriaan Schmidt' via isar-users" From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com Subject: [PATCH] fix: add currenttask-guards to SSTATE(CREATE|POSTINST)FUNCS Date: Fri, 11 Apr 2025 16:33:04 +0200 Message-Id: <20250411143304.384348-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-526363:519-21489:flowmailer X-Original-Sender: adriaan.schmidt@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=dLysIv1H; spf=pass (google.com: domain of fm-526363-202504111433186638ca3cbdb033eeed-bqurvd@rts-flowmailer.siemens.com designates 185.136.64.227 as permitted sender) smtp.mailfrom=fm-526363-202504111433186638ca3cbdb033eeed-bQuRvD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Adriaan Schmidt Reply-To: Adriaan Schmidt 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-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= We use SSTATECREATEFUNCS and SSTATEPOSTINSTFUNCS to insert code for preparation/postprocessing of sstate artifacts. As it turns out, those are not per-job, but global, so if a recipe has multiple sstate-cacheable tasks, all of those functions are executed, and we need to make sure to bail out of all unintended calls. Because all invocations are visible in the logs, we add a message in case a function was skipped, to make logs more readable. Signed-off-by: Adriaan Schmidt --- meta/classes/base.bbclass | 9 +++++++++ meta/classes/dpkg-base.bbclass | 2 ++ meta/classes/rootfs.bbclass | 2 ++ meta/recipes-core/isar-bootstrap/isar-bootstrap.inc | 2 ++ meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc | 2 ++ 5 files changed, 17 insertions(+) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index c730eec9..d5a3142b 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -204,6 +204,15 @@ def isar_export_ccache(d): else: os.environ['CCACHE_DISABLE'] = '1' +isar_check_current_task() { + if [ "do_${BB_CURRENTTASK}" = "$1" ]; then + return 0 + else + echo "skipping because current task is not $1" + return 1 + fi +} + do_fetch[dirs] = "${DL_DIR}" do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}" do_fetch[vardeps] += "SRCREV" diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 4468a49a..7f2dcd3f 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -184,6 +184,7 @@ SSTATECREATEFUNCS += "dpkg_build_sstate_prepare" SSTATEPOSTINSTFUNCS += "dpkg_build_sstate_finalize" dpkg_build_sstate_prepare() { + (isar_check_current_task "do_dpkg_build" || return) || true # this runs in SSTATE_BUILDDIR, which will be deleted automatically if [ -n "$(find ${WORKDIR} -maxdepth 1 -name '*.deb' -print -quit)" ]; then cp -f ${WORKDIR}/*.deb -t . @@ -191,6 +192,7 @@ dpkg_build_sstate_prepare() { } dpkg_build_sstate_finalize() { + (isar_check_current_task "do_dpkg_build_setscene" || return) || true # this runs in SSTATE_INSTDIR if [ -n "$(find . -maxdepth 1 -name '*.deb' -print -quit)" ]; then mv -f ./*.deb -t ${WORKDIR}/ diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index cd8fd118..aed50a91 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -437,6 +437,7 @@ SSTATE_TAR_ATTR_FLAGS ?= "--xattrs --xattrs-include='*'" # the rootfs is owned by root, so we need some sudoing to pack and unpack rootfs_install_sstate_prepare() { + (isar_check_current_task "do_rootfs_install" || return) || true # this runs in SSTATE_BUILDDIR, which will be deleted automatically # tar --one-file-system will cross bind-mounts to the same filesystem, # so we use some mount magic to prevent that @@ -450,6 +451,7 @@ rootfs_install_sstate_prepare() { do_rootfs_install_sstate_prepare[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" rootfs_install_sstate_finalize() { + (isar_check_current_task "do_rootfs_install_setscene" || return) || true # this runs in SSTATE_INSTDIR # - after building the rootfs, the tar won't be there, but we also don't need to unpack # - after restoring from cache, there will be a tar which we unpack and then delete diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc index 08d61a84..a3ab28ca 100644 --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc @@ -219,12 +219,14 @@ SSTATECREATEFUNCS += "bootstrap_sstate_prepare" SSTATEPOSTINSTFUNCS += "bootstrap_sstate_finalize" bootstrap_sstate_prepare() { + (isar_check_current_task "do_bootstrap" || return) || true # this runs in SSTATE_BUILDDIR, which will be deleted automatically sudo cp -a "${WORKDIR}/rootfs.tar.zst" ./bootstrap.tar.zst sudo chown $(id -u):$(id -g) bootstrap.tar.zst } bootstrap_sstate_finalize() { + (isar_check_current_task "do_bootstrap_setscene" || return) || true # this runs in SSTATE_INSTDIR # we should restore symlinks after using tar if [ -f bootstrap.tar.zst ]; then diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index 931f6f13..44775bc5 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -222,12 +222,14 @@ SSTATECREATEFUNCS += "bootstrap_sstate_prepare" SSTATEPOSTINSTFUNCS += "bootstrap_sstate_finalize" bootstrap_sstate_prepare() { + (isar_check_current_task "do_bootstrap" || return) || true # this runs in SSTATE_BUILDDIR, which will be deleted automatically sudo cp -a "${WORKDIR}/rootfs.tar.zst" ./bootstrap.tar.zst sudo chown $(id -u):$(id -g) bootstrap.tar.zst } bootstrap_sstate_finalize() { + (isar_check_current_task "do_bootstrap_setscene" || return) || true # this runs in SSTATE_INSTDIR # we should restore symlinks after using tar if [ -f bootstrap.tar.zst ]; then