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/[email protected]/ Signed-off-by: Paul Barker <[email protected]> --- 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
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#230861): https://lists.openembedded.org/g/openembedded-core/message/230861 Mute This Topic: https://lists.openembedded.org/mt/117734936/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
