On Fri, Aug 07, 2009 at 08:49:22PM +0200, Sven Joachim wrote:
> [ Please keep CC'ing me, I'm not subscribed to the bug. ]
> On 2009-08-07 18:49 +0200, Luk Claes wrote:
> > dash's preinst guarantees that there is a diversion so that the unpack
> > always succeeds...
> 
> Only the first part of this sentence is true.  Indeed there will always
> be a diversion, but if a diversion had existed before that was _not_
> created by the dash package, the preinst won't change it.
> 
> Thus, both the bash and the dash versions of /usr/share/man/man1/sh.1.gz
> (and /bin/sh) would be diverted which raises the file conflict.

Yes, the problem can be reproduced with a fresh lenny bootstrap, a
manual diversion of /bin/sh (not with --package dash, e.g. as suggested
by bash's README.Debian), and then upgrade dash to 0.5.5.1-3.

I can also confirm that mksh no longer can provide /bin/sh at all if
dash and bash are installed.  There can only be exactly one diversion
for /bin/sh, and as both packages, dash and bash, currently include
/bin/sh, the diversion must belong to either of them.

I'm not sure what the best solution is.  In dash's preinst we can make
sure not only that a diversion exist, but also that it belongs to the
dash package.  This would require removing a possibly existing
diversion.

If the bash package finds a modified /bin/sh symlink and no diversion,
its preinst outputs a message and prompts for RETURN, we could do
similar for the diversion in dash.  That would fix the upgrade issue,
but doesn't help mksh.  For multiple alternative packages providing
/bin/sh there should be a different solution than diversions, I don't
think they'll work out.

Regards, Gerrit.



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to