| Summary: | IMAGE_FEATURE ptest causes conflict between dropbear and openssh in core-image.bbclass | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Pavel Zhukov <pavel> |
| Component: | connectivity | Assignee: | Richard Purdie <richard.purdie> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | meta.mr.watcher, meta.watcher, randy.macleod |
| Version: | unspecified | ||
| Target Milestone: | 4.1 M3 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
| Bug Depends on: | |||
| Bug Blocks: | 14926 | ||
|
Description
Pavel Zhukov
2022-07-11 13:23:40 UTC
The easiest way to reproduce this is: local.conf EXTRA_IMAGE_FEATURES:append = " ptest-pkgs" IMAGE_INSTALL:append = " packagegroup-core-ssh-dropbear " bitbake core-image-minimal. However in product images packagegroup-core-ssh-dropbear dependency can be hidden by core-image class and it's not so obvious why openssh is pulled in into the image and why it fails only with ptest core-image-weston brings ssh-server-dropbear feature too. To summarize the issue. Easiest way to reproduce the bug: EXTRA_IMAGE_FEATURES:append = " ptest-pkgs " IMAGE_INSTALL:append = " packagegroup-core-ssh-dropbear " If IMAGE_FEATURES contains "ptest-pkgs" it triggers installation of complementary packages (meta/lib/oe/package_manager/__init.py__:install_complementary) with "*-ptest" glob for every installed package (including openssh-sftp-server which is recommended by packagegroup-core-ssh-dropbear). as the result [1] is called which returns openssh-ptest. Openssh-ptest depends on openssh (via openssh-misc) which causes the conflict with dropbear. PACKAGE_EXCLUDE_COMPLEMENTARY = "openssh" "fixes" this issue and can be used as a workaround however it may break some use cases when -dbg -dev -ptest or other COMPLEMENTARY_GLOB packages has to be installed but will be filtered out. [1] oe-pkgdata-util -p d.getVar(PKGDATA_DIR) glob <installed_packages.file> d.getVar(IMAGE_INSTALL_COMPLEMENTARY) Having given this some thought, I think PACKAGE_EXCLUDE_COMPLEMENTARY = "openssh" is a reasonable workaround as all the alternatives are a lot more invasive with worst potential side effects too. I think we should set that somewhere in OE-Core by default, the next question would be where. It really needs to be somewhere in one of the image classes... |