| Summary: | logind packageconfig flag in shadow causes circular dependendency | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Pavel Zhukov <pavel> |
| Component: | core | Assignee: | Unassigned <unassigned> |
| Status: | NEW --- | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | alex.kanavin, ccasciato, meta.mr.watcher, meta.watcher, randy.macleod |
| Version: | 5.0 | ||
| Target Milestone: | 6.99 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
|
Description
Pavel Zhukov
2024-03-22 16:10:48 UTC
shadow needs libsystemd when the logind option is enabled. The logind option was added recently to avoid host contamination by explicitly disabling logind, and was/is not tested otherwise. systemd inherits useradd class, which DEPENDS on target shadow. That dependency was added in 2011: https://git.yoctoproject.org/poky/commit/?id=605d0116414fe0ca2796b36c7a042af81c69e41b The dependency is needed so that the class can then dynamically inject RDEPENDS on shadow into generated packages (which is needed to run preinst scripts that create users). And indeed, if I remove the dependency, I get: WARNING: ptest-runner-2.4.3+git-r0 do_package_qa: QA Issue: ptest-runner rdepends on shadow, but it isn't a build dependency? [build-deps] WARNING: dbus-1.14.10-r0 do_package_qa: QA Issue: dbus-common rdepends on shadow, but it isn't a build dependency, missing shadow in DEPENDS or PACKAGECONFIG? [build-deps] WARNING: systemd-1_255.4-r0 do_package_qa: QA Issue: systemd rdepends on shadow, but it isn't a build dependency, missing shadow in DEPENDS or PACKAGECONFIG? [build-deps] WARNING: systemd-1_255.4-r0 do_package_qa: QA Issue: udev rdepends on shadow, but it isn't a build dependency, missing shadow in DEPENDS or PACKAGECONFIG? [build-deps] I'm not sure how to break this loop. We can convert the shadow packageconfig option into hard disabling, but that wouldn't be a proper solution. |