[192] in athena10
Re: System Dotfiles (was Re: /svn/athena r22913
daemon@ATHENA.MIT.EDU (Greg Hudson)
Fri Apr 25 11:05:50 2008
From: Greg Hudson <ghudson@MIT.EDU>
To: Jonathan Reed <jdreed@mit.edu>
Cc: athena10@mit.edu
In-Reply-To: <FA6DED27-B20C-479B-94E1-8CCD51AFF1D1@mit.edu>
Content-Type: text/plain
Date: Fri, 25 Apr 2008 11:05:03 -0400
Message-Id: <1209135903.5864.174.camel@error-messages.mit.edu>
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
On Fri, 2008-04-25 at 10:00 -0400, Jonathan Reed wrote:
> Well, assuming I remember correctly, there's no .bash.environment or
> something similar.
There is a .bash_environment. For terminal logins it does exactly
what .environment does for tcsh users.
For graphical logins, the standard xsession is always executed under
tcsh. The user's .cshrc is executed, and thus .cshrc.mine
and .environment if the user has standard dotfiles. For each spawned
terminal, .bashrc is executed along with .bash_environment. Instead of
a single global environment setup, you get one setup per terminal,
unless you do your environment setup with a tcsh script.
There are certainly plenty of scenarios where people's bash dotfiles
might break when we fix this situation, though not because of
shell-dependent syntax. People might be doing important setup
in .environment which will no longer take place, or they might be
somehow relying on .bash_environment getting executed in each terminal.
The .startup files are a separate issue. Currently .startup.tty is
executed by your chosen shell (but it's the same filename regardless of
shell, which is not the case for any other dotfile) and .startup.X is
always processed with tcsh. The latter situation obviously has to
change. Any change we make also has the potential to break people's
bash dotfiles.
I had been assuming that most bash users had their own .xsession scripts
to correct for our lossage, but this turns out to be wrong.
Using /afs/athena.mit.edu/user, I did a scan for bash users and found
342 of them. Of these, only 26 have .xsession files (plus possibly two
more who have unlistable homedirs).
I don't want to get too paralyzed by the possibility of breaking
people's bash dotfiles. It's a small user population, it's people
who've chosen to do something kind of adventurous with their dotfiles,
and we can find out who they are and notify them. Most of them will
probably be happier to have a less broken system to work in, assuming
they do graphical Athena logins at all.
My current thinking is:
* Don't touch the tcsh dotfiles any more than we already have. (In
fact, we probably want to go back to setting the prompt in cshrc in
Athena 10.)
* Fork off a bash version of the standard xsession. This is the
safest way to avoid breaking tcsh dotfiles. Having two versions of the
xsession script will be annoying, but we don't really make changes to it
very often.
* .startup.X will be executed under bash for bash users. We continue
to live with the fact that .startup.X and .startup.tty have overlapping
names for tcsh and bash users.
* We'll deploy this in Athena 9.4 early this summer.
(Of the current bash users, 40 have .startup.X files. Some of those
have their own .xsession files, though it appears to be less than half.)