[OE-core] [PATCH] busybox: move watch to /usr/bin for compatibility with procps

Richard Purdie richard.purdie at linuxfoundation.org
Mon Mar 26 11:02:28 UTC 2012


On Mon, 2012-03-26 at 11:26 +0200, Martin Jansa wrote:
> On Sat, Mar 24, 2012 at 08:46:47PM +0100, Andreas Oberritter wrote:
> > Commit 68dc2a3fa30c03a196d650de34d0c657a7b85454 broke opkg upgrade:
> > 
> > | update-alternatives: Error: cannot register alternative watch to
> > | /usr/bin/watch since it is already registered to /bin/watch
> > 
> > Signed-off-by: Andreas Oberritter <obi at opendreambox.org>
> > ---
> > * Martin, can you please verify whether this really helps? I've built a
> >   rootfs with both busybox watch and procps installed. I didn't actually
> >   do an opkg upgrade.
> 
> Maybe it does for 2nd and later upgrades, but for some reason I now get
> the same error from busybox upgrade too, probably because old u-a for
> watch is removed only in busybox's prerm and not during upgrade.
> 
> SHR root at Nokia-N900 / $ ll /usr/bin/watch*
> lrwxrwxrwx 1 root root   17 Mar 26 09:13 /usr/bin/watch ->
> ../../bin/busybox
> -r-xr-xr-x 1 root root 9508 Mar 26 08:48 /usr/bin/watch.procps
> SHR root at Nokia-N900 / $ ls -l /bin/watch
> lrwxrwxrwx 1 root root 7 Mar 23 16:06 /bin/watch -> busybox
> 
> SHR root at Nokia-N900 / $ cat /etc/busybox.links  | grep watch
> /usr/bin/watch
> SHR root at Nokia-N900 / $ cat /var/lib/opkg/alternatives/watch
> /bin/watch
> busybox 50
> 
> And also busybox is upgraded after procps so even with old alternative
> removed it would take 2 opkg upgrades to get it sorted.. but that's
> quite common issue :/. e.g. u-a for runlevel causes many postinst issues
> because update-rc.d assumes that runlevel is available during upgrade,
> but if sysvinit (as runlevel provider) is configured after e.g. dbus you
> get:
> 
> Configuring dbus-1.
> Cannot create link over existing -/etc/resolv.conf-.
> /usr/sbin/update-rc.d: line 173: runlevel: not found
> Unable to determine current runlevel
> ...
> Configuring busybox-syslog.
> update-alternatives: Linking //etc/init.d/syslog to syslog.busybox
> update-alternatives: Linking //etc/syslog-startup.conf to syslog-startup.conf.busybox
> /usr/sbin/update-rc.d: line 173: runlevel: not found
> Unable to determine current runlevel
> ...
> Configuring busybox-udhcpc.
> /usr/sbin/update-rc.d: line 173: runlevel: not found
> Unable to determine current runlevel
> ...
> Configuring sysvinit.
> update-alternatives: Linking //bin/mountpoint to mountpoint.sysvinit
> update-alternatives: Linking //sbin/halt to halt.sysvinit
> update-alternatives: Linking //sbin/reboot to reboot.sysvinit
> update-alternatives: Linking //sbin/runlevel to runlevel.sysvinit
> update-alternatives: Linking //sbin/shutdown to shutdown.sysvinit
> update-alternatives: Linking //sbin/poweroff to poweroff.sysvinit
> update-alternatives: Linking //usr/bin/last to last.sysvinit
> update-alternatives: Linking //usr/bin/mesg to mesg.sysvinit
> update-alternatives: Linking //usr/bin/wall to wall.sysvinit
> update-alternatives: Linking //sbin/init to /sbin/init.sysvinit
> 
> And dbus-1. busybox-syslog. busybox-udhcpc. postinsts are fine on 2nd run.
> 
> So this patch looks good, but there are still issues with u-a calls in postinst.

I'll merge the patch but we should probably open a bug about these u-a
issues so we can properly fix it at some point.

Cheers,

Richard





More information about the Openembedded-core mailing list