[OE-core] [PATCH 1/1] systemd: fix runtime dependency
Peter A. Bigot
pab at pabigot.com
Thu Oct 16 12:32:22 UTC 2014
On 10/16/2014 06:49 AM, ChenQi wrote:
> On 10/16/2014 06:59 PM, Peter A. Bigot wrote:
>> On 10/16/2014 04:19 AM, Chen Qi wrote:
>>> Previously, if we set 'NO_RECOMMENDATIONS' to "1", we cannot reach
>>> login
>>> in systemd systems. The problem is that several runtime dependencies
>>> are
>>> coded as 'recommended' in our project.
>>>
>>> This patch makes the following changes.
>>> 1. Add util-linux-agetty as a runtime dependency.
>>> Otherwise, getty services in systemd cannot start correctly.
>>> 2. Add systemd-serialgetty as a runtime dependency.
>>> Otherwise, serialgetty services cannot start correctly in
>>> systemd and
>>> we would have problem when using `runqemu qemux86 nographic'.
>>> 3. Remove 'systemd' from RDEPENDS of systemd-serialgetty.
>>> systemd-serialgetty justs ships systemd unit files, even if the
>>> init
>>> manager is 'sysvinit', these files do no harm.
>>
>> This looks really weird. It doesn't make any sense that systemd
>> should depend on systemd-serialgetty; the original dependency was right.
>>
>
> If systemd-serialgetty should rdepends on systemd, then in the same
> logic, we should also change sysvinit-inittab to rdepend on sysvinit.
> I don't think this is right.
OK, that makes sense: systemd-serialgetty doesn't depend on systemd,
it's just not particularly useful without it. Without digging into
details, I could see a case for removing the RDEPENDS on systemd from
systemd-serialgetty. Maybe RRECOMMENDS is better.
However, so much more so does systemd not depend on systemd-serialgetty,
so adding the dependency in the reverse direction is simply wrong. A
system without a serial console is unusual but not invalid.
>
>> serialgetty works fine under systemd with all my configurations as-is.
>>
>
> Yes. But it needs to be first installed to work correctly.
Agreed.
>> I think you need to look more closely at your project-specific
>> configuration to understand why things aren't getting set up
>> correctly for you.
>>
>
> You can hand-edit local.conf with IMAGE_INSTALL_remove/_append to
> workaround a lot of runtime dependency issue. The problem is that
> setting 'NO_RECOMMENDATIONS' to "1" is valid, however, such valid
> configuration would raise a non-workable minimal image.
The documentation for NO_RECOMMENDATIONS has:
http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-NO_RECOMMENDATIONS
Note: Some recommended packages might be required for certain system
functionality, such as kernel modules. It is up to you to add packages
with the |IMAGE_INSTALL|
<http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-IMAGE_INSTALL>
variable.
AFAICT, if this doesn't work for you because you use NO_RECOMMENDATIONS,
it's a problem with your configuration, not with OE.
Peter
>
> Try the following steps with the current project.
> 1. set NO_RECOMMENDATIONS to "1" in local.conf
> 2. Change in local.conf to use systemd as the init manager
> 3. bitbake core-image-minimal
> 4. runqemu qemux86 nographic
>
> My point is that a system should let users login in on serial console.
> Our sysvinit based system does this, and our systemd based system
> should also do this.
>
>> Peter
>>
>>
>>>
>>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>>> ---
>>> meta/recipes-core/systemd/systemd-serialgetty.bb | 2 --
>>> meta/recipes-core/systemd/systemd_216.bb | 5 ++---
>>> 2 files changed, 2 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/meta/recipes-core/systemd/systemd-serialgetty.bb
>>> b/meta/recipes-core/systemd/systemd-serialgetty.bb
>>> index 1c34d5c..f3acaad 100644
>>> --- a/meta/recipes-core/systemd/systemd-serialgetty.bb
>>> +++ b/meta/recipes-core/systemd/systemd-serialgetty.bb
>>> @@ -36,8 +36,6 @@ do_install() {
>>> fi
>>> }
>>> -RDEPENDS_${PN} = "systemd"
>>> -
>>> # This is a machine specific file
>>> FILES_${PN} = "${systemd_unitdir}/system/*.service ${sysconfdir}"
>>> PACKAGE_ARCH = "${MACHINE_ARCH}"
>>> diff --git a/meta/recipes-core/systemd/systemd_216.bb
>>> b/meta/recipes-core/systemd/systemd_216.bb
>>> index ebf9395..62fe5c7 100644
>>> --- a/meta/recipes-core/systemd/systemd_216.bb
>>> +++ b/meta/recipes-core/systemd/systemd_216.bb
>>> @@ -267,11 +267,10 @@ FILES_${PN} = " ${base_bindir}/* \
>>> FILES_${PN}-dbg += "${rootlibdir}/.debug ${systemd_unitdir}/.debug
>>> ${systemd_unitdir}/*/.debug ${base_libdir}/security/.debug/"
>>> FILES_${PN}-dev += "${base_libdir}/security/*.la
>>> ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
>>> -RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (=
>>> ${EXTENDPKGV})"
>>> +RDEPENDS_${PN} += "kmod dbus systemd-serialgetty util-linux-mount
>>> util-linux-agetty udev (= ${EXTENDPKGV})"
>>> RDEPENDS_${PN} += "volatile-binds"
>>> -RRECOMMENDS_${PN} += "systemd-serialgetty systemd-compat-units
>>> udev-hwdb\
>>> - util-linux-agetty \
>>> +RRECOMMENDS_${PN} += "systemd-compat-units udev-hwdb\
>>> util-linux-fsck e2fsprogs-e2fsck \
>>> kernel-module-autofs4 kernel-module-unix
>>> kernel-module-ipv6 os-release \
>>> "
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20141016/0168f626/attachment-0002.html>
More information about the Openembedded-core
mailing list