* Re: simple documentation bug
[not found] ` <1FC8A0BAFBBD9749BB1F06010D23C8A5335F6662@sg000035.corproot.net>
@ 2008-10-30 12:04 ` Peter Stephenson
2010-06-16 14:09 ` Peter Stephenson
1 sibling, 0 replies; 5+ messages in thread
From: Peter Stephenson @ 2008-10-30 12:04 UTC (permalink / raw)
To: Norman.Azadian, Zsh Hackers' List
On Thu, 30 Oct 2008 12:18:48 +0100
<Norman.Azadian@swisscom.com> wrote:
> According to zsh(1):
>
> "Commands are first read from /etc/zshenv; this cannot be overridden."
>
> We're running Ubuntu (Heron, I believe) with zsh 4.3.4, and /etc/zshenv
> is never read. Instead, it reads from /etc/zsh/zshenv.
Bug reports go to zsh-workers@sunsite.dk.
This is a long-standing issue, but it turns out it's not hard to fix if you
have Yodl to rerun. We actually distribute documentation preformatted, and
there it's a pig to fix, since it needs all the various formats to
be replaced in situ.
The following adds notes that should help package maintainers, at least.
Index: INSTALL
===================================================================
RCS file: /cvsroot/zsh/zsh/INSTALL,v
retrieving revision 1.36
diff -u -r1.36 INSTALL
--- INSTALL 1 Jun 2008 17:58:42 -0000 1.36
+++ INSTALL 30 Oct 2008 12:03:52 -0000
@@ -407,6 +407,13 @@
--disable-SCRIPTNAME option to "configure". The --disable-etcdir option
disables all startup/shutdown files which are not explicitly enabled.
+The precompiled documentation comes with startup files listed
+as being in the /etc directory. If yodl is available, running
+"touch version.yo" and "make" in the Doc directory should produce
+correctly substituted documentation. (This has to be run by hand
+to avoid introducing a dependency on yodl on systems where the precompiled
+documentation is sufficient.)
+
Shell functions
---------------
Index: Doc/Makefile.in
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Makefile.in,v
retrieving revision 1.42
diff -u -r1.42 Makefile.in
--- Doc/Makefile.in 26 Apr 2008 19:48:26 -0000 1.42
+++ Doc/Makefile.in 30 Oct 2008 12:03:52 -0000
@@ -210,11 +210,19 @@
zshzle.1: Zsh/zle.yo
+# This should depend on config.status to get the /etc files right
+# but that would introduce a dependency on Yodl in shipped versions
+# of the shell that we want to avoid.
version.yo: $(sdir_top)/Config/version.mk
( \
echo 'IFDEF(INCWSLEVEL)(INCWSLEVEL())(STARTDEF())'; \
echo 'def(version)(0)('$(VERSION)')'; \
echo 'def(date)(0)('$(VERSION_DATE)')'; \
+ echo 'def(zshenv)(0)(@zshenv@)'; \
+ echo 'def(zprofile)(0)(@zprofile@)'; \
+ echo 'def(zshrc)(0)(@zshrc@)'; \
+ echo 'def(zlogin)(0)(@zlogin@)'; \
+ echo 'def(zlogout)(0)(@zlogout@)'; \
echo 'IFDEF(DECWSLEVEL)(DECWSLEVEL())(ENDDEF())#' | tr '#' '\\'; \
) > $(sdir)/version.yo
Index: Doc/Zsh/filelist.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/filelist.yo,v
retrieving revision 1.2
diff -u -r1.2 filelist.yo
--- Doc/Zsh/filelist.yo 1 Apr 2000 20:43:44 -0000 1.2
+++ Doc/Zsh/filelist.yo 30 Oct 2008 12:03:52 -0000
@@ -7,9 +7,9 @@
list(tt($ZDOTDIR/.zlogin))
list(tt($ZDOTDIR/.zlogout))
list(tt(${TMPPREFIX}*) (default is /tmp/zsh*))
-list(tt(/etc/zshenv))
-list(tt(/etc/zprofile))
-list(tt(/etc/zshrc))
-list(tt(/etc/zlogin))
-list(tt(/etc/zlogout) (installation-specific - tt(/etc) is the default))
+list(tt(zshenv()))
+list(tt(zprofile()))
+list(tt(zshrc()))
+list(tt(zlogin()))
+list(tt(zlogout()) (installation-specific - tt(/etc) is the default))
endlist()
Index: Doc/Zsh/files.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/files.yo,v
retrieving revision 1.5
diff -u -r1.5 files.yo
--- Doc/Zsh/files.yo 20 Mar 2006 11:06:25 -0000 1.5
+++ Doc/Zsh/files.yo 30 Oct 2008 12:03:52 -0000
@@ -11,10 +11,11 @@
pindex(NO_GLOBAL_RCS, use of)
vindex(ZDOTDIR, use of)
cindex(zshenv)
-Commands are first read from tt(/etc/zshenv); this cannot be overridden.
+Commands are first read from tt(zshenv()); this cannot be overridden.
Subsequent behaviour is modified by the tt(RCS) and
tt(GLOBAL_RCS) options; the former affects all startup files, while the
-second only affects those in the tt(/etc) directory. If one of the options
+second only affects global startup files (those shown here with an
+path starting with a tt(/)). If one of the options
is unset at any point, any subsequent startup file+LPAR()s+RPAR()
of the corresponding
type will not be read. It is also possible for a file in tt($ZDOTDIR) to
@@ -25,17 +26,17 @@
pindex(LOGIN, use of)
cindex(zprofile)
If the shell is a login shell, commands
-are read from tt(/etc/zprofile) and then tt($ZDOTDIR/.zprofile).
+are read from tt(zprofile()) and then tt($ZDOTDIR/.zprofile).
cindex(zshrc)
Then, if the shell is interactive,
-commands are read from tt(/etc/zshrc) and then tt($ZDOTDIR/.zshrc).
+commands are read from tt(zshrc()) and then tt($ZDOTDIR/.zshrc).
cindex(zlogin)
-Finally, if the shell is a login shell, tt(/etc/zlogin) and
+Finally, if the shell is a login shell, tt(zlogin()) and
tt($ZDOTDIR/.zlogin) are read.
cindex(zlogout)
When a login shell exits, the files tt($ZDOTDIR/.zlogout) and then
-tt(/etc/zlogout) are read. This happens with either an explicit exit
+tt(zlogout()) are read. This happens with either an explicit exit
via the tt(exit) or tt(logout) commands, or an implicit exit by reading
end-of-file from the terminal. However, if the shell terminates due
to tt(exec)'ing another process, the logout files are not read.
@@ -46,10 +47,10 @@
vindex(HOME, use of)
If tt(ZDOTDIR) is unset, tt(HOME) is used instead.
-Those files listed above as being in tt(/etc) may be in another
+Files listed above as being in tt(/etc) may be in another
directory, depending on the installation.
-As tt(/etc/zshenv) is run for all instances of zsh, it is important that
+As tt(zshenv()) is run for all instances of zsh, it is important that
it be kept as small as possible. In particular, it is a good idea to
put code that does not need to be run for every single shell behind
a test of the form `tt(if [[ -o rcs ]]; then ...)' so that it will not
Index: Doc/Zsh/options.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/options.yo,v
retrieving revision 1.67
diff -u -r1.67 options.yo
--- Doc/Zsh/options.yo 26 Oct 2008 17:57:13 -0000 1.67
+++ Doc/Zsh/options.yo 30 Oct 2008 12:03:52 -0000
@@ -730,19 +730,19 @@
cindex(startup files, global, inhibiting)
cindex(files, global startup, inhibiting)
item(tt(GLOBAL_RCS) (tt(-d)) <D>)(
-If this option is unset, the startup files tt(/etc/zprofile),
-tt(/etc/zshrc), tt(/etc/zlogin) and tt(/etc/zlogout) will not be run. It
+If this option is unset, the startup files tt(zprofile()),
+tt(zshrc()), tt(zlogin()) and tt(zlogout()) will not be run. It
can be disabled and re-enabled at any time, including inside local startup
files (tt(.zshrc), etc.).
)
pindex(RCS)
cindex(startup files, sourcing)
item(tt(RCS) (tt(PLUS()f)) <D>)(
-After tt(/etc/zshenv) is sourced on startup, source the
-tt(.zshenv), tt(/etc/zprofile), tt(.zprofile),
-tt(/etc/zshrc), tt(.zshrc), tt(/etc/zlogin), tt(.zlogin), and tt(.zlogout)
+After tt(zshenv()) is sourced on startup, source the
+tt(.zshenv), tt(zprofile()), tt(.zprofile),
+tt(zshrc()), tt(.zshrc), tt(zlogin()), tt(.zlogin), and tt(.zlogout)
files, as described in noderef(Files).
-If this option is unset, the tt(/etc/zshenv) file is still sourced, but any
+If this option is unset, the tt(zshenv()) file is still sourced, but any
of the others will not be; it can be set at any time to prevent the
remaining startup files after the currently executing one from
being sourced.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: simple documentation bug
[not found] ` <1FC8A0BAFBBD9749BB1F06010D23C8A5335F6662@sg000035.corproot.net>
2008-10-30 12:04 ` simple documentation bug Peter Stephenson
@ 2010-06-16 14:09 ` Peter Stephenson
1 sibling, 0 replies; 5+ messages in thread
From: Peter Stephenson @ 2010-06-16 14:09 UTC (permalink / raw)
To: Norman.Azadian, Zsh Hackers' List
Bug reports should go to zsh-workers@zsh.org, not to me personally.
On Thu, 30 Oct 2008 12:18:48 +0100
<Norman.Azadian@swisscom.com> wrote:
> According to zsh(1):
>
> "Commands are first read from /etc/zshenv; this cannot be
> overridden."
>
> We're running Ubuntu (Heron, I believe) with zsh 4.3.4,
> and /etc/zshenv is never read. Instead, it reads
> from /etc/zsh/zshenv.
There's code in the shell distribution to fix this, though I don't know if
it goes back to 4.3.4 which is now some years old.
--
Peter Stephenson <pws@csr.com> Software Engineer
Tel: +44 (0)1223 692070 Cambridge Silicon Radio Limited
Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, UK
Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
^ permalink raw reply [flat|nested] 5+ messages in thread