On Thu, 2018-09-06 at 17:04 +0800, ChenQi wrote:
> On 09/06/2018 04:19 PM, richard.pur...@linuxfoundation.org wrote:
> > On Thu, 2018-09-06 at 10:11 +0800, ChenQi wrote:
> > > Hi Richard,
> > > 
> > > I think my previous patch has covered this case.
> > > 
> > >     git://git.pokylinux.org/poky-contrib ChenQi/busybox-alternatives
> > >     http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/busyb
> > > ox-alternatives
> > > 
> > > Chen Qi (1):
> > >     busybox: fix the alternatives logic
> > > 
> > > 
> > > Is there some problem with the patch?
> > 
> > Sorry, I thought I'd replied about this. There were build failures from
> > this patch and I had to drop it from the test branch. I'm afraid with
> > all the build failures we're had recently I'm struggling to find which
> > failures those were...
> > 
> > I merged my simpler but less complete fix simply to get patches moving
> > as I'd assumed this one was being debugged. I guess we need the
> > failures for that though...
> > 
> > Cheers,
> > 
> > Richard
> > 
> 
> Got it.
> I just looked at some build failures, the ones that might be related are 
> those of testimage failures complaining 'No syslog daemon'.
> I'll check things locally first.

It seems that we have problems in master even with my version of the
patch. Its not a deterministic problem, it depends upon rpm/dnf package
installation order.

The dnf.DnfRepoTest.test_dnf_installroot image test does:

dnf --repofrompath=oe-testimage-repo-i586,http://192.168.7.7:36895/i586 
--repofrompath=oe-testimage-repo-qemux86,http://192.168.7.7:36895/qemux86 
--repofrompath=oe-testimage-repo-noarch,http://192.168.7.7:36895/noarch 
--nogpgcheck install --installroot=/home/root/chroot/test -v -y 
--rpmverbosity=debug busybox run-postinst

which figures out:

================================================================================
|  Package                   Arch    Version      Repository                 
Size
| 
================================================================================
| Installing:
|  busybox                   i586    1.29.2-r0.0  oe-testimage-repo-i586    352 
k
|  run-postinsts             noarch  1.0-r10.0    oe-testimage-repo-noarch  8.7 
k
| Installing dependencies:
|  libc6                     i586    2.28-r0.0    oe-testimage-repo-i586    1.3 
M
|  update-alternatives-opkg  i586    0.3.6-r0.0   oe-testimage-repo-i586    8.5 
k
| Installing weak dependencies:
|  busybox-syslog            i586    1.29.2-r0.0  oe-testimage-repo-i586     10 
k
|  busybox-udhcpc            i586    1.29.2-r0.0  oe-testimage-repo-i586    8.1 
k
| 

so far so good. It then tries to install busybox-syslog *before*
busybox. During the postinstall of busybox-syslog we see:

update-alternatives --install /sbin/klogd klogd /bin/busybox.nosuid 50
| /usr/bin/update-alternatives: line 145: sed: command not found
| /usr/bin/update-alternatives: line 145: echo: write error: Broken pipe

which makes sense as sed comes from busybox which hasn't installed yet.

I added:

RDEPENDS_${PN}-syslog = "busybox"

to the busybox recipe but this doesn't seem to help. I see in the
busybox.spec file for the -syslog package:

Requires: /bin/sh
Requires: busybox
Requires: update-alternatives-opkg
Requires(post): /bin/sh
Requires(post): busybox
Requires(post): update-alternatives-opkg

but it still tries to install busybox-syslog *before* busybox.
(busybox only RRECOMMENDS busybox-syslog).

The autobuilder with the above RDEPENDS added also shows this.

Interestingly this test doesn't fail, its the parselogs test later
which fails due to the postinstall errors being detected in the dnf log
files.

This would seem to be an rpm/dnf bug :(. 

Sometimes we don't see the error as if it chooses to install busybox
first, things work ok. THis is currently breaking builds quite badly on
master :(.

Cheers,

Richard


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to