Re: Changing the default simlink to sh [was: Password file with over 3000 users.]
On Wed, Sep 26, 2007 at 05:03:38PM +0800, Thomas Goirand wrote:
> Craig Sanders wrote:
> > i just posted the following few paragraphs to someone else in private
> > mail. maybe they'll help you to see the point:
> > it is incumbent on those who are proposing a change to demonstrate:
> > 1. that the change has significant benefits
> > 2. that the change does not cause problems
> > 3. that the benefits greatly outweigh the problems caused
> > and,
> > 4. that there is no viable alternative to the proposed change
> You are repeating again, so it forces us to repeat also. I think you had
actually, it wasn't a repeat. it was the first time i'd posted that. i
posted it because it seems that appropriate caution is an alien concept
to the loony change-mongers here.
> 1. The significant benefits are: faster, lighter, and more cross
> comparabilities with the Debian embedded systems. Another one is a
they may be benefits, but they're not *significant* benefits. they're
irrelevant to >99% of debian users.
> better compatibility with BSD systems that wont have bash by default
it's debatable whether that's a benefit at all.
BSD systems have their own non-GNU versions of standard utilities, so sh
scripts from linux often wont work on *bsd anyway. and vice-versa.
> (you need to set it up manually or depend on it). This last one is,
nobody sane would replace, e.g., root's shell with bash on a solaris or *bsd
or other non-bash-by-default *nix - because there's no way of knowing what
cron jobs and other stuff will break.
instead, sane people who want bash on those systems install it in /usr/local
and run "exec bash" after they su to root.
similarly, nobody sane would want to replace bash as the default sh with
dash because there's also no way of knowing what would break.
> IMHO, very important. Another one is that scripts with bashism will be
> detected immediately, and that's great, they will be modified quicker.
OTOH, another way of looking at it is that if nobody has detected
them it's because nobody cares - nobody except for a tiny handful of
people (mostly embedded systems developers and not-entirely-rational
uber-pedants) bothers to install dash and replace the /bin/sh symlink.
frankly, if they care that much, it's up to THEM to file the bug
reports, not force the burden onto the vast majority who simply don't
care about dash or POSIX compliance.
breaking other people's systems for an aesthetic goal just because
you're too lazy to bother checking the init.d scripts in packages and
file bug-reports yourself is, as i mentioned before, maliciously stupid.
bashisms in init.d & cron & other packaged #!/bin/sh scripts is a bug.
bash as the default /bin/sh is NOT a bug.
> 2. It doesn't cause any problem for scripts written with #!/bin/bash,
> only for those who were badly written with #!/bin/sh instead when
> expecting bash. These scripts HAVE to be modified, and it's not a very
> big deal anyway.
no, they DON'T have to be modified (at least, not locally-written ones.
package scripts should have the pedantically-correct #! line).
as i pointed out last time, debian's /bin/sh has always been bash, and
has always been documented as such. it is NOT broken to write a script
that uses the documented features.
> 3. See point 1, I think it's clear there are some very big benefits, and
> the only problem is badly written scripts that can be modified really
what's very clear is that the benefits are tiny, the problems are moderately
large, and that the scripts you claim to be "badly written" aren't.
> 4. The alternative is to setup bash, and restor the link as it was, or
> to fix the badly written scripts. Both solution are really easy...
only the proposed change has the potential to break existing systems
for no good reason.
in short, there's woefully insufficient justification for making this change.
> > in short, don't do unneccessary harm and don't violate the principle
> > of least surprise.
> People that DO read Debian news and things like that will know in
> advance, and have quite a big amount of time to fix.
again, a tiny minority of debian users.
> anyone to call the wrong shell, and it was never documented this way.
it was. i repeat: look at "man sh" on any default debian system.
> Also, if "man sh" brings the man page of bash, that doesn't mean
> anything but the fact that bash is currently used when calling sh (the
> sh man page is just a symlink to the one of bash...).
it's been that way for over a decade. since debian began. approx 14
years of debian telling users that sh is bash and documenting it as
such. now some morons want to change that without any good reason.
> I could find so many example of things that have been in a way for
> decades, and that one day, changed.
change has to be justifiable. see the four test points in my previous
message for the bare minimum justification for any change.
> P.S: Once again, people are NOT stupid because they have different point
> of view.
of course not. they are stupid because they have a stupid point of view.
difference has nothing to do with it.
> Saying so IS disrespectful,
putting false words in my mouth and claiming that is what i said is not only
disrespectful, it is dishonest.
craig sanders <firstname.lastname@example.org>
BOFH excuse #34: