Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2001 11:19:50 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Jens Schweikhardt <schweikh@schweikhardt.net>
Cc:        current@freebsd.org
Subject:   Re: bash in /usr/local/bin?
Message-ID:  <3B76C8C6.D7C0D639@mindspring.com>
References:  <3B74D180.D036D629@hway.net> <3B75D33D.68368F22@softweyr.com> <3B764D47.6060902@yahoo.com> <3B76555B.891321BF@mindspring.com> <20010812125329.A1111@schweikhardt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Jens Schweikhardt wrote:
> # Bash has a license which precludes its inclusion as part
> # of the base system.
> 
> [Not that I favor more shells on the root file system, but anyway:]
> What about gcc and grep? Does the license differ or are these not regarded
> being part of the base system?

We would get rid of them if we could.  We keep their source
code in a ghetto, since we can't.  Any company wanting to get
rid of all GPL'ed and other restrictively licensed code in a
FreeBSD based binary distribution can simply dike the ghetto
out of the build tree, and build a still usable system binary
from it, with no restrictively licensed code.

Changing grep and tar was an incredibly bad decision.  It has
the distinction that the old, free code is there in the Attic,
and can be recovered, if need be.

What's in the base system comes down to "What's BSD?  What's
not? What's UNIX?  What's not?".  A BSD system is a UNIX
system with BSD features... so it has the Bourne shell, and it
has a csh, and it has BSD make, etc..  It also has a C compiler.

The compromise for the inveterate bash user is to make it
available as a port or a package, not installed by default.


> If we ever put another shell besides /bin/sh on the root file
> system (and I doubt it very much) there's always zsh with as
> far as I can tell a two clause BSD license. With almost all
> bash features and then some :-)

The other consideration is image bloat.  Many of us were very
unhappy about the inclusion of perl in the base system; it
added bloat, and now people are writing perl scripts instead
of sh scripts, which is arguably very against the original
UNIX philosopy of having a small set of tiny, very specific
tools, which could be strung together to do any general job
that needed doing.

Likewise, bash encourages bad programming practices, which are
against the UNIX philosophy: there are people out there who
write shell scripts which will only run under bash: they do
not distinguish between standard Bourne shell features, and
bash extensions.  This results in code, particularly from the
Linux crowd, where bash _is_ /bin/sh, where the shell scripts
start with "#!/bin/sh", but, in fact, will not run on every
"/bin/sh" in existance.

It's hard to discourage that, when you implicitly condone it...
I can't imagine a bash user not wanting to:

	cd /bin
	mv sh sh.old
	ln bash sh

if they could... then, all of the sudden, we start growing a
bunch of bash-ism's in /etc/rc* ("works on my machine"), and
we are now dependent on restrictively licensed code in the
base system.  That benefits no one.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B76C8C6.D7C0D639>