From: Paul Barker <paul@pbarker.dev>
To: openembedded-core@lists.openembedded.org
Cc: Paul Barker <paul@pbarker.dev>
Subject: [PATCH] selftest: Test installation of recipes with complex packaging
Date: Tue, 10 Feb 2026 08:07:57 +0000 [thread overview]
Message-ID: <20260210-install-tests-v1-1-2c99e3ca1d34@pbarker.dev> (raw)
When recipes have complex and dynamic packaging, it's easy to
accidentally end up with one or more packages that build but can't be
installed. We've seen this recently with linux-firmware [1].
Skimming through the recipes that set PACKAGESPLITFUNCS or
PACKAGES_DYNAMIC or are otherwise known offenders, I've also picked out
gstreamer1.0-plugins-*, kernel-modules, perl and python3 as recipes
where it would be easy to end up with similar issues in the future.
[1]: https://lore.kernel.org/openembedded-core/20260123163305.880111-1-dmitry.baryshkov@oss.qualcomm.com/
Signed-off-by: Paul Barker <paul@pbarker.dev>
---
meta/lib/oeqa/selftest/cases/install.py | 37 +++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/meta/lib/oeqa/selftest/cases/install.py b/meta/lib/oeqa/selftest/cases/install.py
new file mode 100644
index 000000000000..06ce5fd3b559
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/install.py
@@ -0,0 +1,37 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake
+
+class InstallTests(OESelftestTestCase):
+ """Test installability of recipes which use complex dynamic packaging"""
+
+ def do_installation_test(self, packages, extra_config=""):
+ self.write_config('CORE_IMAGE_EXTRA_INSTALL = "{}"\n{}'.format(packages, extra_config))
+ bitbake("core-image-minimal")
+
+ def test_gstreamer_plugins(self):
+ """Ensure that all gstreamer plugins can be installed together"""
+ self.do_installation_test("gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
+ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly",
+ extra_config='LICENSE_FLAGS_ACCEPTED += "commercial"')
+
+ def test_linux_firmware(self):
+ """Ensure that all linux-firmware packages can be installed together"""
+ self.do_installation_test("linux-firmware")
+
+ def test_linux_modules(self):
+ """Ensure that all in-tree kernel modules can be installed together"""
+ self.do_installation_test("kernel-modules")
+
+ def test_perl(self):
+ """Ensure that all built-in perl modules can be installed together"""
+ self.do_installation_test("perl perl-modules")
+
+ def test_python(self):
+ """Ensure that all built-in python modules can be installed together"""
+ self.do_installation_test("python3 python3-modules python3-misc")
---
base-commit: 6ce19709f7835ee5cd7915e181f89397975236c8
change-id: 20260210-install-tests-6e506dfd367f
Best regards,
--
Paul Barker
reply other threads:[~2026-02-10 8:08 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260210-install-tests-v1-1-2c99e3ca1d34@pbarker.dev \
--to=paul@pbarker.dev \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox