From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a17:906:6988:: with SMTP id i8mr60848602ejr.516.1636026686944; Thu, 04 Nov 2021 04:51:26 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:907:3e05:: with SMTP id hp5ls2603330ejc.6.gmail; Thu, 04 Nov 2021 04:51:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzafgFLNrQOvQQAybVZB4oxULBohmOcB4yCTgHrk3+TZIcOwTX6Ph73pDRQns/LrA3xk6iu X-Received: by 2002:a17:906:184a:: with SMTP id w10mr63293686eje.273.1636026685924; Thu, 04 Nov 2021 04:51:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1636026685; cv=none; d=google.com; s=arc-20160816; b=uTJvJP1md7ScsVkInYy57qzqX2WgHtD9h/uoOv7Rb95ZkpTlrQLKeQvWMYdQgZevX7 ukqXQBYVBawnc1LOg74M7uQ1j2DFCoiSdcIeb6hqfbCsZV3OIpIahiMCGJOL1usCoF/F F4dj6UP7nePt7aFj63C6RG27eTPp9RBOZI99aQNRs/0pWXCXWh21Y4zUjqlKJcDZv19r +4San7QsKC5bhp60bQFvuoLP57vnXDKLkogSMBJcFP/bRM7ywvgI6eBajBaRlnU7zWMH c6EpNRgyUgGEKAYHCnkMvGWf4WIaD56a6rRT7lyiGx+DqQ2TDcN8mKEHoqgqd+1Im2sI TWpw== 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=O1TfnbrG6ROMLk+ffpRLcZQpcdGqI1VXUAa5xQa3g3zaBuvba1XTsc98hyZ1o0bEyh 8SO97MhvZ4QEBM+6P429eJaQL/SKq+FDxbBiwxf84tIsm9JMnvvK+nWUvW9ADMD4zcLr deOk274xA5HkCDdV6fyKaO5XOz6gVtUXqlOsq8kJaAjau9qH6heV4lXGZkzS1i/a379Y mQFpcs1JcufBLObD8kJeJbmBB+DDxPQV28U79uU6H4nwYd83u/FVjTxcPl05UlE7Qe+j LstoBBpj1+ale+uhmqVtLJLqL4i3Nui81QxJMg12yBFkP+YzbLaG1OJkn1QwBOkR9wdg Jmog== 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 d2si360538edk.1.2021.11.04.04.51.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Nov 2021 04:51:25 -0700 (PDT) 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 mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 1A4BpPBR025209 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 4 Nov 2021 12:51:25 +0100 Received: from random.ppmd.siemens.net (random.ppmd.siemens.net [139.25.68.25]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id 1A4BpPbH026036; Thu, 4 Nov 2021 12:51:25 +0100 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v5 03/13] rootfs: recursively depend on packages Date: Thu, 4 Nov 2021 12:51:13 +0100 Message-Id: <20211104115123.2519356-4-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211104115123.2519356-1-adriaan.schmidt@siemens.com> References: <20211104115123.2519356-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: ofUY1I63PrBs 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