From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a17:907:972a:: with SMTP id jg42mr19335842ejc.75.1634632164228; Tue, 19 Oct 2021 01:29:24 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:aa7:c944:: with SMTP id h4ls971942edt.1.gmail; Tue, 19 Oct 2021 01:29:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzbrk+cHYBW4W+7CB6cptL3MN2fAgMFFCpPb+U5bl/DGcGOHvtKTbgTiAHH8ydGI/cWYmYB X-Received: by 2002:a50:d50c:: with SMTP id u12mr52439570edi.118.1634632163234; Tue, 19 Oct 2021 01:29:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634632163; cv=none; d=google.com; s=arc-20160816; b=rH3Uf4AcvwJxCY0tVj9DQ0b2caXySC/YEu7LX/Q650XvPNrtt+56RUBOgNHmlpzxsQ 77bsI6ZZwIsjG4Cb9TS3xaUjaW6SwHSMpPY5sm26pl0IotXTtY/K0Z+O/tYTRdI8t0l2 QsS18PDXiUVzbA+qprzZdqo4W74PmaFzfbO8DWgYxxG53dGQW09RpcoSnGaF7HTLYLij w6S9rHpBV17S6WHSRHatIZsQvJ1faAtVgBs2JZdXKHpkWG430v+PLB1V4H45Ces7MdFi WkqNkQ3YyPtwdTm9Skf/GKwz/M5tYy2xnad/H/j0JSt1a5imJzbnGkK37VtIqaL7x0R3 ZERQ== 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=sa1WHdcuNPfI8bb7MbVhVliHJz1DzxdHCZA1Hb3kQntNTHWW+eUkkBr0D3/zwH8mH/ nLPnxdkelbqDJ+unvzTakOZi6mCuecZkeFRvElcGnVKFQFSWNjG304JJ9zPcQvS96Xxs LVnjgL6O5aiTzxvHkSmlxOKpGJSRfzW1fYo3SPFbVgJj7IGD/iNNGtwscGjQF5QxZG5f o5k2sOpZnBGwKSrZmcOcy/rKgP7NhB02l4ruFOOg4KKhjDRgL0J/tEVsjoOHJC0e6UVP ov8qf3ts/1hvj4G/79eDyi3pvrUckByPqmfUWMsglHRs0jBX9Q5ZwIdXnSnYtKoRPBXs TwFg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 194.138.37.39 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 lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id s19si1049696edi.1.2021.10.19.01.29.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Oct 2021 01:29:23 -0700 (PDT) Received-SPF: pass (google.com: domain of adriaan.schmidt@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of adriaan.schmidt@siemens.com designates 194.138.37.39 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 lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 19J8TMHU027130 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 19 Oct 2021 10:29:22 +0200 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 19J8TMYA002966; Tue, 19 Oct 2021 10:29:22 +0200 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v3 03/10] rootfs: recursively depend on packages Date: Tue, 19 Oct 2021 10:29:06 +0200 Message-Id: <20211019082913.199818-4-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211019082913.199818-1-adriaan.schmidt@siemens.com> References: <20211019082913.199818-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: WyyQ1BouHoSF 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