On Mon, Mar 26, 2012 at 12:02:28PM +0100, Richard Purdie wrote:
> 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 <o...@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@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@Nokia-N900 / $ ls -l /bin/watch
> > lrwxrwxrwx 1 root root 7 Mar 23 16:06 /bin/watch -> busybox
> > 
> > SHR root@Nokia-N900 / $ cat /etc/busybox.links  | grep watch
> > /usr/bin/watch
> > SHR root@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

yes please it improves situation for people with reflashed image.. other
need just rm /var/lib/opkg/alternatives/watch to fix upgrade path

> issues so we can properly fix it at some point.

Fixing this issue will be a bit problematic, because for busybox when
you use -force-reinstall it can remove some required commands you need
to install it after it's removed.

So e.g. you need standalone wget and sed to be able to use
opkg install -force-reinstall, but -force-reinstall also doesn't resolve
this watch issue completely, because after first upgrade there is 
new /usr/bin/watch path in /etc/busybox.links so prerm also doesn't
remove stalled /bin/watch alternative :/.

Cheers,
-- 
Martin 'JaMa' Jansa     jabber: martin.ja...@gmail.com

Attachment: signature.asc
Description: Digital signature

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

Reply via email to