From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a05:651c:1035:: with SMTP id w21mr4774523ljm.278.1636613259470; Wed, 10 Nov 2021 22:47:39 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:2610:: with SMTP id bt16ls1103541lfb.2.gmail; Wed, 10 Nov 2021 22:47:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJwDf2clztfR9SfcIqlCeVt3BaoN0ZLi+sppuJNeCG9J8HT75kSVdJ5rZ0UWO5K9mJ2kH3gR X-Received: by 2002:a05:6512:1096:: with SMTP id j22mr4526162lfg.237.1636613258269; Wed, 10 Nov 2021 22:47:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636613258; cv=none; d=google.com; s=arc-20160816; b=qMCpkf6X1hAZCtWuKaYmKIRxIp/sr1FQFU5FfQBBLQ+vSAohHObL3Yz9QEiKlLKym6 F0y4l6HCXQ1oViN3Mzdt5ziuZOXi4T7wYqed+INRddcbk2xXhy9dLjqPKueoXvEvHXbd D5cAzgRaoGkt+8FQB2/xessjqa6VAF0Ds3Nk6/v2TUipKvQdkAJmNOeAgxYqxZm41+aH UyC1fmHgU8fF9sZz3UhSkgGSdZy/G646s3IQ2JPadhT6pwhMep8n1XBY8bDsSc0jKawi YxSnhFltS5OxTXdcNWed8cAF1CtCczA0SpJ9H+m83uFndCvpws8f86Z7DFaamvCpNtHJ ++IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=7j1fopFWfV0Bw+Mx8xSOKmJT5DfD+J/TIAACmChRWXM=; b=l+U5NnDHbYAvHnYhwU8kMS0RAwiiPDuK+GfxQIdHPbDMUAeDwWDrFCOMIQxJxkYP8Q iwJKBXzvWEfK5PUGPimmhYXwFwURMHAYjNYp9DdhjD677pp+5/jlJkcop2/IGgj3KHVY hQvWBT2fB+0sHCM24LpirednThtNg2HALfM72TGkoFFDRj6MBKpCLIkTacQz8uzEPIFC Pi8s952lSSP3257Ebp3OuDqaJ/QnamJG9s42I/idzQOKtXECYvSSqcrEGy6+qhb0RbhJ C7jqjh2hOVq1ZKHcda0VGC1259ECySiL9h93V7W9m4wwWfb7RYly9Q8ns9y1Htf60+4H lfHg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id r16si177174lfi.13.2021.11.10.22.47.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 Nov 2021 22:47:38 -0800 (PST) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=adriaan.schmidt@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 1AB6lbNC017654 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 Nov 2021 07:47:37 +0100 Received: from random.ppmd.siemens.net (random.ppmd.siemens.net [139.25.68.25]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 1AB6lbcW012388; Thu, 11 Nov 2021 07:47:37 +0100 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v6 03/13] rootfs: recursively depend on packages Date: Thu, 11 Nov 2021 07:47:18 +0100 Message-Id: <20211111064728.2375760-4-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211111064728.2375760-1-adriaan.schmidt@siemens.com> References: <20211111064728.2375760-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: UmIpJV3//+CL This specifies dependencies more precisely, which becomes important when we introduce caching. The current definition of deptask can lead to errors, e.g.: If rootfs includes A which depends on B, then currently rootfs depends on A's do_deploy_deb, but only A's do_prepare_build depends on B's do_deploy_deb. So if we can produce A from cache without running its do_prepare_build, B might not be there. This is of course never observed when building from scratch. Setting recrdeptask instead fixes this, which is also how it's done in OE. The same thing can happen when building packages. Unfortunately setting `do_prepare_build[recrdeptask] = "do_deploy_deb"` makes a recipes do_prepare_build depend on its own do_deploy_deb, creating a dependency loop. This is solved by making do_deploy_deb depend on the do_deploy_deb task of dependent recipes. Not precisely what we want, but should have the same effect. Signed-off-by: Adriaan Schmidt --- meta/classes/dpkg-base.bbclass | 1 + meta/classes/rootfs.bbclass | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 8a39a6d..2005707 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -244,6 +244,7 @@ do_deploy_deb() { } addtask deploy_deb after do_dpkg_build before do_build +do_deploy_deb[deptask] = "do_deploy_deb" do_deploy_deb[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" do_deploy_deb[dirs] = "${S}" diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 20ccb00..b38de66 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -153,7 +153,7 @@ rootfs_install_pkgs_install() { do_rootfs_install[root_cleandirs] = "${ROOTFSDIR}" do_rootfs_install[vardeps] += "${ROOTFS_CONFIGURE_COMMAND} ${ROOTFS_INSTALL_COMMAND}" do_rootfs_install[depends] = "isar-bootstrap-${@'target' if d.getVar('ROOTFS_ARCH') == d.getVar('DISTRO_ARCH') else 'host'}:do_build" -do_rootfs_install[deptask] = "do_deploy_deb" +do_rootfs_install[recrdeptask] = "do_deploy_deb" python do_rootfs_install() { configure_cmds = (d.getVar("ROOTFS_CONFIGURE_COMMAND", True) or "").split() install_cmds = (d.getVar("ROOTFS_INSTALL_COMMAND", True) or "").split() -- 2.30.2