zsh-users
 help / color / mirror / code / Atom feed
* Broken /etc/zshrc ?
@ 2001-08-19 15:51 Vincent Lefevre
  2001-08-19 16:55 ` Borsenkow Andrej
  2001-08-19 18:06 ` Bart Schaefer
  0 siblings, 2 replies; 5+ messages in thread
From: Vincent Lefevre @ 2001-08-19 15:51 UTC (permalink / raw)
  To: zsh-users

The /etc/zshrc (system zshrc file) contains the following line:

source /etc/profile

But /etc/profile sets the path (I think this is OK). Thus, if a
user sets his path in his .zshenv, then this path is lost because
/etc/zshrc is sourced after the user's .zshenv file.

I don't know if the /etc/zshrc was provided when compiling and
installing zsh or provided by my Linux distribution (SuSE 7.2).
Isn't this /etc/zshrc file broken? Shouldn't the /etc/profile
be sourced in the /etc/zshenv (which doesn't exist here)?

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> - 100%
validated HTML - Acorn Risc PC, Yellow Pig 17, Championnat International des
Jeux Mathématiques et Logiques, TETRHEX, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Broken /etc/zshrc ?
  2001-08-19 15:51 Broken /etc/zshrc ? Vincent Lefevre
@ 2001-08-19 16:55 ` Borsenkow Andrej
  2001-08-19 18:06 ` Bart Schaefer
  1 sibling, 0 replies; 5+ messages in thread
From: Borsenkow Andrej @ 2001-08-19 16:55 UTC (permalink / raw)
  To: Vincent Lefevre; +Cc: zsh-users

Vincent Lefevre wrote:
> The /etc/zshrc (system zshrc file) contains the following line:
> 
> source /etc/profile
> 
> But /etc/profile sets the path (I think this is OK). Thus, if a
> user sets his path in his .zshenv, then this path is lost because
> /etc/zshrc is sourced after the user's .zshenv file.
> 
> I don't know if the /etc/zshrc was provided when compiling and
> installing zsh or provided by my Linux distribution (SuSE 7.2).

zsh does not install any startup files

> Isn't this /etc/zshrc file broken? Shouldn't the /etc/profile
> be sourced in the /etc/zshenv (which doesn't exist here)?
>

/etc/profile should be sourced in /etc/zprofile if at all. 
Irrespectively, unconditional setting of PATH is always bad - PATH may 
be already preset to some reasonable value.

-andrej


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Broken /etc/zshrc ?
  2001-08-19 15:51 Broken /etc/zshrc ? Vincent Lefevre
  2001-08-19 16:55 ` Borsenkow Andrej
@ 2001-08-19 18:06 ` Bart Schaefer
  2001-08-19 19:12   ` Vincent Lefevre
  1 sibling, 1 reply; 5+ messages in thread
From: Bart Schaefer @ 2001-08-19 18:06 UTC (permalink / raw)
  To: Vincent Lefevre, zsh-users

On Aug 19,  5:51pm, Vincent Lefevre wrote:
}
} The /etc/zshrc (system zshrc file) contains the following line:
} 
} source /etc/profile
} 
} Isn't this /etc/zshrc file broken? Shouldn't the /etc/profile
} be sourced in the /etc/zshenv (which doesn't exist here)?

I would think /etc/profile should be sourced in /etc/zprofile, if at all.

/etc/zshenv is sourced by *every* zsh, even non-interactive scripts that
are started with "zsh -f".  /etc/profile is intended to be sourced by
login shells.  /etc/zshrc is sourced by login shells, but also by other
interactive shells.  I'm not sure why so many linux distributors thought
that /etc/profile needed to be read from /etc/zshrc, but it seems to be
a common problem.

RedHat has finally got this bit right as of the 3.0.7 RPM, but that one
still has other cruft in /etc/zshrc.  (I haven't looked at the RPMs for
RawHide.)  I know the Mandrake folks put quite a bit of thought & effort
into setting up the /etc/z* files because of issues setting up the local
language environment.

} But /etc/profile sets the path (I think this is OK). Thus, if a
} user sets his path in his .zshenv, then this path is lost because
} /etc/zshrc is sourced after the user's .zshenv file.

This would still be true with /etc/zprofile, unfortunately.

You could put "source ~/.zshenv" in ~/.zshrc ... or you could put
"readonly path" in ~/.zshenv, I suppose.  Or in 4.0.x ~/.zshenv could
start with

    setopt no_global_rcs
    [[ -o login && -r /etc/zprofile ]] && source /etc/zprofile
    [[ -o interactive && -r /etc/zshrc ]] && source /etc/zshrc
    [[ -o login && -r /etc/zlogin ]] && source /etc/zlogin

to cause all the /etc/z* files to be loaded before any of your own.  In
that case ~/.zlogout should end with

    [[ -r /etc/zlogout ]] && source /etc/zlogout

However, if zsh was compiled with a global RCs location other than /etc,
the above could get you into trouble.

} I don't know if the /etc/zshrc was provided when compiling and
} installing zsh or provided by my Linux distribution (SuSE 7.2).

It wasn't provided when compiling and installing zsh.  We generally
recommend that (with exceptions like Mandrake's language environment)
the /etc/z* files not be used at all.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Broken /etc/zshrc ?
  2001-08-19 18:06 ` Bart Schaefer
@ 2001-08-19 19:12   ` Vincent Lefevre
  2001-08-19 23:45     ` Bart Schaefer
  0 siblings, 1 reply; 5+ messages in thread
From: Vincent Lefevre @ 2001-08-19 19:12 UTC (permalink / raw)
  To: zsh-users

On Sun, Aug 19, 2001 at 18:06:06 +0000, Bart Schaefer wrote:
> I would think /etc/profile should be sourced in /etc/zprofile, if at all.

Thanks, I've sent a mail to SuSE support about that.

> /etc/zshenv is sourced by *every* zsh, even non-interactive scripts that
> are started with "zsh -f".  /etc/profile is intended to be sourced by
> login shells.  /etc/zshrc is sourced by login shells, but also by other
> interactive shells.  I'm not sure why so many linux distributors thought
> that /etc/profile needed to be read from /etc/zshrc, but it seems to be
> a common problem.

Yes, I have a 6.x RedHat at my lab and there is the same problem.

> } But /etc/profile sets the path (I think this is OK). Thus, if a
> } user sets his path in his .zshenv, then this path is lost because
> } /etc/zshrc is sourced after the user's .zshenv file.
> 
> This would still be true with /etc/zprofile, unfortunately.

So, is sourcing the /etc/profile a good idea? Shouldn't it be sourced
only if the shell is a login shell?

> You could put "source ~/.zshenv" in ~/.zshrc ...

I don't like that very much.

> or you could put "readonly path" in ~/.zshenv,

The path is modified, but there are other problems (e.g. ls colors).

> I suppose. Or in 4.0.x ~/.zshenv could start with
> 
>     setopt no_global_rcs

This is what I currently do.

>     [[ -o login && -r /etc/zprofile ]] && source /etc/zprofile
>     [[ -o interactive && -r /etc/zshrc ]] && source /etc/zshrc
>     [[ -o login && -r /etc/zlogin ]] && source /etc/zlogin

OK, if I need to read these files, I'll do this.

-- 
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> - 100%
validated HTML - Acorn Risc PC, Yellow Pig 17, Championnat International des
Jeux Mathématiques et Logiques, TETRHEX, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Broken /etc/zshrc ?
  2001-08-19 19:12   ` Vincent Lefevre
@ 2001-08-19 23:45     ` Bart Schaefer
  0 siblings, 0 replies; 5+ messages in thread
From: Bart Schaefer @ 2001-08-19 23:45 UTC (permalink / raw)
  To: Vincent Lefevre, zsh-users

On Aug 19,  9:12pm, Vincent Lefevre wrote:
}
} So, is sourcing the /etc/profile a good idea? Shouldn't it be sourced
} only if the shell is a login shell?

If it were sourced from /etc/zprofile, then it would be sourced only if
the shell were a login shell, because that's the rule for /etc/zprofile.

} >     [[ -o login && -r /etc/zprofile ]] && source /etc/zprofile
} >     [[ -o interactive && -r /etc/zshrc ]] && source /etc/zshrc
} >     [[ -o login && -r /etc/zlogin ]] && source /etc/zlogin
} 
} OK, if I need to read these files, I'll do this.

You may not need to read those files.  It depends on what the sysadmin
has put in them.  E.g., as I mentioned before, on Mandrake your local
language environment won't be set up correctly if you don't read them.
I don't know about SuSE.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-08-19 23:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-19 15:51 Broken /etc/zshrc ? Vincent Lefevre
2001-08-19 16:55 ` Borsenkow Andrej
2001-08-19 18:06 ` Bart Schaefer
2001-08-19 19:12   ` Vincent Lefevre
2001-08-19 23:45     ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).