[OE-core] [PATCH] sysklogd: add alternatives for klogd and syslogd

Victor Kamensky kamensky at cisco.com
Fri Oct 26 07:28:59 UTC 2018


Hi Chen,

On Fri, 26 Oct 2018, ChenQi wrote:

> On 10/26/2018 12:53 PM, Victor Kamensky via Openembedded-core wrote:
>> Otherwise when used in presense of busybox that provides
>> its own version of klogd and syslogd, image packaging
>> complains that klogd exists and it is not syymbolic link.
>> Failure happens only if image packaging script install
>> sysklogd package first followed by installtion of busybox
>> package.
>
> Hi Victor,
>
> I think this problem has been fixed by the following commit.
>
> """
> commit ef11c54ba99af261a70ec31091216cdd1556da24
> Author: Richard Purdie <richard.purdie at linuxfoundation.org>
> Date:   Wed Sep 5 17:39:31 2018 +0100
>
>    busybox: Put klogd/syslogd alternative links in syslog package
>
>    Currently these are in ${PN} and ${PN}-syslog may get replaced by
>    other packages but update-alternatives would error in the postinst
>    if other files were installed first. Avoid the problems by putting
>    the links in the correct package.
>
>    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> """
>
> For the current status, the update-alternatives operations for syslogd and 
> klogd should be in the busybox-syslog package, which conflicts with sysklogd 
> package.
>
> Could you please help check this?

Thank you! That helps. I see it now. Apprently busybox.bbappend
from meta-selinux layer:

http://git.yoctoproject.org/cgit/cgit.cgi/meta-selinux/tree/recipes-core/busybox/busybox_selinux.inc

is effectively undoing effect of above commit in my workspace.

meta-selinux is doing it because of

http://git.yoctoproject.org/cgit/cgit.cgi/meta-selinux/commit/?id=521ca9c9cf370840e9f8c808a7955aa5da7c356e

It seems changes similar to above Richard's commit needed to
be applied there as well. After applying that to busybox_selinux.inc
in meta-selinux my problem goes away.

No need for proposed below patch.

Thanks,
Victor

> Best Regards,
> Chen Qi
>
>>   If during packaging reverse installtion order
>> happens, busybox first followed by sysklogd, packaging
>> succeed.
>> 
>> Note this fix along with recently committed
>> 55ba9dc1f8 sysklogd: Re-enable alternatives for syslogd.8 man page
>> effectively reverts this commit
>> 988aad01b2 sysklogd: don't use update-alternatives
>> 
>> Signed-off-by: Victor Kamensky <kamensky at cisco.com>
>> ---
>> Hi Guys,
>> 
>> Here is more details. Example of failure that I observe:
>> 
>> update-alternatives: Error: not linking 
>> /home/wd8/oe/20181021/build/tmp-glibc/work/intel_corei7_64-oe-linux/kdevel-console-devel-image/1.0-r0/rootfs/sbin/klogd 
>> to /usr/lib/busybox/sbin/klogd since 
>> /home/wd8/oe/20181021/build/tmp-glibc/work/intel_corei7_64-oe-linux/kdevel-console-devel-image/1.0-r0/rootfs/sbin/klogd 
>> exists and is not a link
>> 
>> Also 988aad01b2 says:
>> 
>>> Using update-alternatives for managing init scripts has proved to be
>>> problematic. And, sysklogd rconflicts with other syslog daemons so there
>>> is no point in using update-alternatives from this perspective, either.
>> I am not sure why "managing init scripts has proved to be problematic" and
>> syslogd and klogd are not really init script per se, aren't they? Also
>> klogd and syslogd actually come from busybox, not busybox-syslog as listed
>> in sysklogd RCONFLICTS. Maybe it what has changed since 988aad01b2.
>> busybox-syslog now contains only init script for syslog and its
>> configuration.
>> 
>> Adding Markus for further comments.
>>
>>   meta/recipes-extended/sysklogd/sysklogd.inc | 5 +++++
>>   1 file changed, 5 insertions(+)
>> 
>> diff --git a/meta/recipes-extended/sysklogd/sysklogd.inc 
>> b/meta/recipes-extended/sysklogd/sysklogd.inc
>> index f151dd87f7..4393a39180 100644
>> --- a/meta/recipes-extended/sysklogd/sysklogd.inc
>> +++ b/meta/recipes-extended/sysklogd/sysklogd.inc
>> @@ -60,9 +60,14 @@ FILES_${PN} += 
>> "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}
>>     ALTERNATIVE_PRIORITY = "100"
>>   +ALTERNATIVE_${PN} = "syslogd klogd"
>> +
>>   ALTERNATIVE_${PN}-doc = "syslogd.8"
>>   ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
>>   +ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd"
>> +ALTERNATIVE_LINK_NAME[klogd] = "${base_sbindir}/klogd"
>> +
>>   pkg_prerm_${PN} () {
>>   	if test "x$D" = "x"; then
>>   	if test "$1" = "upgrade" -o "$1" = "remove"; then
>
>
>



More information about the Openembedded-core mailing list