From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7016230395466219520 X-Received: by 2002:a2e:90c9:: with SMTP id o9mr25476592ljg.115.1635251300694; Tue, 26 Oct 2021 05:28:20 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3499:: with SMTP id v25ls175309lfr.0.gmail; Tue, 26 Oct 2021 05:28:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsjVElYe/Ts65+NbNwMV/DrIqgaYMlyuS22klA9ux0P/22vMeotoeRsBe/2V2H66YropM4 X-Received: by 2002:a05:6512:68e:: with SMTP id t14mr23632332lfe.625.1635251299601; Tue, 26 Oct 2021 05:28:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635251299; cv=none; d=google.com; s=arc-20160816; b=0gVkjE98T9bvfdFa2kR4E2G1xZuqgXjn5+GF98I+1eOFd2kHxXdyhjv+E6EkxEnEFq AdrD0Mhe6CZizmqgc6w0VtCt6dwEtq9dd5LISnbEDtC71yJAEOi3AmLB4DVHYUesUrjc BZY0+PihCqranx8pbgJkl2UO8r2R8Da2F3pbdHHMKgQS2iuduN22kfI+UEanXq4c7yrT LpSZZc3Xt6SC3iMGnYMp9kvp/u7tfmgvm8JMCMGGrd2H81Pr+hPFOGD3HJW54kNRS6SG JRDnPN+a9PtG/FBBglOLHbJNMEjsCuPs6dv4IUB3kTD0uVVbnMZTi0mbYTqD9KAndDqt vdxw== 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=knAOZfkjBRsEB0jqITvl1h4MyNgJhD4WF/UxThGLoET8erET9sqI7WqEBUXtl+3JKn kLK8NzVuqQX4QgxxTjTjLrk2Nl8fIHDxu5eub/D/Ci68P1+QueGG3M17e89ILaOHDRX6 s8MGR4HJEvTDf6KsJgCz/rBebM4mNgHRc7xTROeClfRXpHWX5ab7w7jRDgBizsOEjdP3 aFE0sG7YgrqQMz+BBLzVYpTqOeTsJk5J13MGaTBML+0SJhK24Z5RuHXVfDUNctd8mava OpkJdC/zdGYxBiFjrbhAGJPLRcGFiC65JYecTL28bsAa1KovKxkH6/del7HyJkagn75x AUZQ== 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 x78si274001lff.10.2021.10.26.05.28.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Oct 2021 05:28:19 -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 mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 19QCSIpU009034 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 26 Oct 2021 14:28:19 +0200 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 19QCSIPL013081; Tue, 26 Oct 2021 14:28:18 +0200 From: Adriaan Schmidt To: isar-users@googlegroups.com Cc: Adriaan Schmidt Subject: [PATCH v4 03/10] rootfs: recursively depend on packages Date: Tue, 26 Oct 2021 14:28:04 +0200 Message-Id: <20211026122811.2654125-4-adriaan.schmidt@siemens.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211026122811.2654125-1-adriaan.schmidt@siemens.com> References: <20211026122811.2654125-1-adriaan.schmidt@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: jmk0JcGTPWkh 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