From patchwork Wed Sep 29 05:33:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?QsO2c3rDtnJtw6lueWkgWm9sdMOhbg==?= X-Patchwork-Id: 14073 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org From: "Zoltan Boszormenyi" Subject: [PATCH v2 1/2] kernel.bbclass: Add runtime dependency to subpackages on main package Date: Wed, 29 Sep 2021 07:33:52 +0200 Message-Id: <20210929053353.600644-2-zboszor@pr.hu> In-Reply-To: <20210929053353.600644-1-zboszor@pr.hu> References: <20210929053353.600644-1-zboszor@pr.hu> MIME-Version: 1.0 List-id: To: openembedded-core@lists.openembedded.org Cc: =?utf-8?b?Wm9sdMOhbiBCw7ZzesO2cm3DqW55aQ==?= , Bruce Ashfield , Richard Purdie , Khem Raj From: Zoltán Böszörményi Although this creates a circular dependency between the main kernel package and its subpackages, it helps dnf to automatically remove all kernel packages of the same version. Signed-off-by: Zoltán Böszörményi --- meta/classes/kernel.bbclass | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 4acec1877e..882858e22e 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -105,6 +105,14 @@ python __anonymous () { d.appendVar('RDEPENDS:%s-image-%s' % (kname, typelower), ' %s-modules-${KERNEL_VERSION_PKG_NAME} (= ${EXTENDPKGV})' % kname) d.setVar('PKG:%s-modules' % kname, '%s-modules-${KERNEL_VERSION_PKG_NAME}' % kname) d.appendVar('RPROVIDES:%s-modules' % kname, '%s-modules-${KERNEL_VERSION_PKG_NAME}' % kname) + # Reverse RDEPENDS on main kernel package so dnf upgrades can honor installonly_limit + # and remove all subpackages of old versions automatically + d.appendVar('RDEPENDS:%s-base' % kname, ' %s (= ${EXTENDPKGV})' % kname) + d.appendVar('RDEPENDS:%s-image' % kname, ' %s (= ${EXTENDPKGV})' % kname) + d.appendVar('RDEPENDS:%s-image-%s' % (kname, typelower), ' %s (= ${EXTENDPKGV})' % kname) + d.appendVar('RDEPENDS:%s-modules' % kname, ' %s (= ${EXTENDPKGV})' % kname) + if d.getVar('KERNEL_IMAGETYPE') == 'vmlinux': + d.appendVar('RDEPENDS:%s-vmlinux' % kname, ' %s (= ${EXTENDPKGV})' % kname) d.setVar('PKG:%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) d.setVar('ALLOW_EMPTY:%s-image-%s' % (kname, typelower), '1')