On 28-01-2006 12:05:30 +0300, Peter Volkov (pva) wrote:
> On Срд, 2006-01-25 at 20:57 +0100, Grobian wrote:
> > Are there any objections to removing csh from the tree?  If there are no
> > problems with csh removal before Feb 1st 2006, then I will starting from
> > that date work on getting csh removed by masking it, blocking tcsh and
> > csh, and request for updates of the packages that depend on csh.
> 
> Thinking a little bit on subject I'd say I object. There is a big
> difference in size between csh and tcsh:
>   -rwxr-xr-x  1 root root 130148 Янв 28 08:11 /bin/csh
>   -rwxr-xr-x  1 root root 299136 Янв 28 08:13 /bin/tcsh
> So tcsh is *2.3 times bigger* then csh. Of course, that's not a big pain
> for current desktop or server systems. But gentoo is used for different
> purposes... Also personally I like small system and I'm not using csh
> for anything except for installing packages. So I do not need anything
> except basic csh functionality. Thus for me it's better to leave csh and
> remove tcsh (I know this is bad solution ;) ).

Well, tcsh is still small comparing to bash:
-rwxr-xr-x  1 root root 739936 Jul  7  2005 /bin/bash
or to put it in perspective:
% la -h /bin/bash /bin/tcsh
-rwxr-xr-x  1 root root 723K Jul  7  2005 /bin/bash
-rwxr-xr-x  1 root root 304K Dec 30 10:48 /bin/tcsh

And for the full picture:
% ls -la /bin/{sh,csh,bash,tcsh}
-r-xr-xr-x   1 root     bin       516392 Jan  6  2000 /bin/bash
-r-xr-xr-x   2 root     bin       159196 Nov 22  2002 /bin/csh
-r-xr-xr-x   4 root     root       95316 Nov  6  2002 /bin/sh
-r-xr-xr-x   1 root     bin       331332 Mar 15  2001 /bin/tcsh

In fact, I'd like to have only sh, because I never use bash.  However,
sh is quite picky and has some annoyances, that many people don't even
know of because they call bash sh.
I think that for csh and tcsh hold the same.  If people refer to csh,
they usually just mean tcsh.  (like vi means vim for most people ;) )

> > Problem here is that creating a conditional symlink for csh -> tcsh is a
> > bit dirty, and leaves the user with a system that has no csh in case the
> > csh is unmerged after tcsh was installed.
> 
> To solve symlink problem I can suggest the following.
> 1. As it should be done now, tcsh should create symlink csh -> tcsh if
> csh does not exist (in src_install()).
> 
> 2. csh ebuild should create csh -> tcsh symlink if tcsh exist during
> unmerge. This is possible with pkg_postrm:
> pkg_postrm () {
>     [ -e /bin/tcsh ] && ln -s /bin/tcsh /bin/csh
> }
> 
> 3. tcsh should remove csh -> tcsh symlink on unmerge. 
> pkg_postrm () {
>     [ -e /bin/tcsh ] && ln -s /bin/tcsh /bin/csh
> }
> 
> Not a very clean solution, but works.

It can work like this, but I'm not in favour of it.  Maybe someone with
some more experience with this kind of issues has come advice/comments
here.

> BTW. Why tcsh is a blocker for csh?

If tcsh just installs the symlink, it needs to block on csh, otherwise
collision-protect people will get an error during the merge phase.

Finally, csh and tcsh will always have to block each other, not because
of the symlink, but because they read the same config files, and I guess
that csh doesn't fully understand the tcsh config files.  Would be luck
if it would.  I just checked it, and no it doesn't.
We would for sure not be the only ones only to ship tcsh.

Thanks for your comments, though.


-- 
Fabian Groffen
-- 
gentoo-dev@gentoo.org mailing list

Reply via email to