[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash package removing /bin/sh on upgrade

On Fri, Oct 01, 1999 at 08:36:01AM -0400, Ivan E. Moore II wrote:
> > > yea...I just did an update today and something decided to remove
> > > /bin/sh during the upgrade...and didn't put it back before it
> > > was needed... so if something hoses for you just recreate it by
> > > linking it to like bash...

> On Fri, Oct 01, 1999 at 03:00:51PM +0200, Torsten Landschoff wrote:
> > If somebody could come up with a better method of handling this it
> > would be most welcome.

On Sat, Oct 02, 1999 at 12:30:04PM +1000, Anthony Towns wrote:
> Just having /bin/sh included in the .deb is Good Enough -- diversions
> work as designed.

Good Enough is not good enough (TM).

> There's a different preinst in one of the bug reports, ummm, #34717 I
> think, that does the diversion stuff itself, too.

That uses --rename, which is A Very Bad Thing in this case.

A wonderfuly horrible hack has occurred to me, by the way:  A cron job
which runs every minute: /bin/sh -c exit || /sbin/rebuild-bin-sh

rebuild-bin-sh would take a configuration file in /etc to determine
preference order for building the link (and fall back to some arbitrary
order if all those fail), test each to find one that works then recreate
the /bin/sh link.

I'm tempted to say that rebuild-bin-sh should be statically linked (and
use _exit() and not use anything related to printf()) to deal with cases
where /bin/sh has died because of a library upgrade and there happens
to be a suitable shell hanging around that uses a different library.

[I'm willing to write such a thing if it seems like a good idea for
longer than a few hours.]

[Of course rebuild-bin-sh should be run manually after the config file
is changed, for a smooth upgrade of the link.  You don't really need
the cron job -- it's a remedy for a situation that should never happen.
and it's a remedy that may not have any use should that situation arise.]

If such a thing is written, and deployed, it would be nice to integrate
support for it into all posix shell.  [Not for potato -- this is too
critical of an app, in my opinion.]


Reply to: