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]

