source: postlfs/shells/zsh.xml@ e89b2a0

gimp3 trunk xry111/spidermonkey128
Last change on this file since e89b2a0 was ea36f0f, checked in by Xi Ruoyao <xry111@…>, 3 months ago

zsh: Adapt for GCC 14

  • Property mode set to 100644
File size: 11.0 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY zsh-download-http "https://www.zsh.org/pub/zsh-&zsh-version;.tar.xz">
8 <!ENTITY zsh-download-ftp " ">
9 <!ENTITY zsh-md5sum "182e37ca3fe3fa6a44f69ad462c5c30e">
10 <!ENTITY zsh-size "3.2 MB">
11 <!ENTITY zsh-buildsize "48 MB (includes documentation and tests)">
12 <!ENTITY zsh-time "1.6 SBU (Using parallelism=4; includes documentation and tests)">
13]>
14
15<sect1 id="zsh" xreflabel="zsh-&zsh-version;">
16 <?dbhtml filename="zsh.html"?>
17
18
19 <title>zsh-&zsh-version;</title>
20
21 <indexterm zone="zsh">
22 <primary sortas="a-zsh">zsh</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to zsh</title>
27
28 <para>
29 The <application>zsh</application> package contains a command
30 interpreter (shell) usable as an interactive login shell and as
31 a shell script command processor. Of the standard shells,
32 <application>zsh</application> most closely resembles
33 <application>ksh</application> but includes many enhancements.
34 </para>
35
36 &lfs121_checked;
37
38 <bridgehead renderas="sect3">Package Information</bridgehead>
39 <itemizedlist spacing="compact">
40 <listitem>
41 <para>
42 Download (HTTP): <ulink url="&zsh-download-http;"/>
43 </para>
44 </listitem>
45 <listitem>
46 <para>
47 Download (FTP): <ulink url="&zsh-download-ftp;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download MD5 sum: &zsh-md5sum;
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download size: &zsh-size;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Estimated disk space required: &zsh-buildsize;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated build time: &zsh-time;
68 </para>
69 </listitem>
70 </itemizedlist>
71
72 <note>
73 <para>
74 When there is a new <application>zsh</application> release, the old
75 files shown above are moved to a new server directory:
76 <ulink url="https://www.zsh.org/pub/old/"/>.
77 </para>
78 </note>
79
80 <bridgehead renderas="sect3">zsh Dependencies</bridgehead>
81
82 <bridgehead renderas="sect4">Optional</bridgehead>
83 <para role="optional">
84 <!-- <xref linkend="pcre2"/>, The next zsh release will support it -->
85 <xref linkend="valgrind"/> and
86 <ulink url='https://fbb-git.gitlab.io/yodl/'>yodl</ulink>
87 </para>
88
89 </sect2>
90
91 <sect2 role="installation">
92 <title>Installation of zsh</title>
93
94 <para>
95 Adapt the documentation build system for texinfo-7.0 or later:
96 </para>
97
98<screen><userinput>sed -e 's/set_from_init_file/texinfo_&amp;/' \
99 -i Doc/Makefile.in</userinput></screen>
100
101 <!-- https://github.com/zsh-users/zsh/commit/4c89849c9817
102 https://github.com/zsh-users/zsh/commit/ab4d62eb975a -->
103 <para>
104 Some programs shipped in the building system for detecting system
105 features use pre-C99 syntax rejected by GCC-14.1 or later. Fix them
106 up or Zsh would be wrongly configured and fail to build:
107 </para>
108
109<screen><userinput>sed -i -e 's/^main/int &amp;/' -e 's/exit(/return(/' aczsh.m4 configure.ac &amp;&amp;
110sed -i 's/test = /&amp;(char**)/' configure.ac &amp;&amp;
111autoconf</userinput></screen>
112
113 <para>
114 The documentation files contain references to zsh configuration
115 files in <filename class='directory'>/etc</filename>, but we'll
116 use <filename class='directory'>/etc/zsh</filename> to hold these
117 configuration files instead. The building system will fix up those
118 references if the <application>yodl</application> package is
119 available, but it's out of the scope of BLFS. So we need to fix up
120 the references manually:
121 </para>
122
123<screen><userinput>sed 's|/etc/z|/etc/zsh/z|g' -i Doc/*.*</userinput></screen>
124
125<!-- <note>
126 <para>
127 Using a script to build with "su -c script" may produce a funny
128 configure error message: "no controlling tty". If this happens, add
129 the switch -\-with-tcsetpgrp to configure.
130 </para>
131 </note>
132-->
133 <para>
134 Install <application>zsh</application> by running the following
135 commands:
136 </para>
137
138<screen><userinput>./configure --prefix=/usr \
139 --sysconfdir=/etc/zsh \
140 --enable-etcdir=/etc/zsh \
141 --enable-cap \
142 --enable-gdbm &amp;&amp;
143make &amp;&amp;
144
145makeinfo Doc/zsh.texi --html -o Doc/html &amp;&amp;
146makeinfo Doc/zsh.texi --plaintext -o zsh.txt &amp;&amp;
147makeinfo Doc/zsh.texi --html --no-split --no-headers -o zsh.html</userinput></screen>
148
149 <para>
150 If you have <xref linkend="texlive"/>
151 installed, you can build PDF format of the documentation by issuing
152 the following command:
153 </para>
154
155<screen remap="doc"><userinput>texi2pdf Doc/zsh.texi -o Doc/zsh.pdf</userinput></screen>
156
157 <para>
158 To test the results, issue: <command>make check</command>.
159 </para>
160
161 <para>
162 Now, as the <systemitem class="username">root</systemitem> user:
163 </para>
164
165<screen role="root"><userinput>make install &amp;&amp;
166make infodir=/usr/share/info install.info &amp;&amp;
167make htmldir=/usr/share/doc/zsh-&zsh-version;/html install.html &amp;&amp;
168install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-&zsh-version;</userinput></screen>
169
170 <para>
171 If you built the PDF format of the documentation, install
172 it by issuing the following command as the
173 <systemitem class="username">root</systemitem> user:
174 </para>
175
176<screen role="root"
177 remap="doc"><userinput>install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-&zsh-version;</userinput></screen>
178
179 </sect2>
180
181 <sect2 role="commands">
182 <title>Command Explanations</title>
183
184 <para>
185 <parameter>--sysconfdir=/etc/zsh</parameter> and
186 <parameter>--enable-etcdir=/etc/zsh</parameter>: These parameters are
187 used so that all the <application>zsh</application> configuration files
188 are consolidated into the <filename class='directory'>/etc/zsh</filename>
189 directory. Omit these parameters if you wish to retain historical
190 compatibility by having all the files located in the
191 <filename class='directory'>/etc</filename> directory.
192 </para>
193
194 <para>
195 <parameter>--enable-cap</parameter>: This option enables
196 POSIX capabilities.
197 </para>
198
199 <para>
200 <parameter>--enable-gdbm</parameter>: This option enables the
201 use of the <application>GDBM</application> library.
202 </para>
203<!-- the next zsh release will support it
204 <para>
205 <option>- -enable-pcre</option>: This option allows zsh to use
206 the <application>PCRE2</application> regular expression library in shell
207 builtins.
208 </para>
209-->
210 </sect2>
211
212 <sect2 role="configuration">
213 <title>Configuring zsh</title>
214
215 <sect3 id="zsh-config">
216 <title>Config Files</title>
217
218 <para>
219 There are a whole host of configuration files for
220 <application>zsh</application> including
221 <filename>/etc/zsh/zshenv</filename>,
222 <filename>/etc/zsh/zprofile</filename>,
223 <filename>/etc/zsh/zshrc</filename>,
224 <filename>/etc/zsh/zlogin</filename> and
225 <filename>/etc/zsh/zlogout</filename>.
226 You can find more information on these in the
227 <ulink role='man' url='&man;zsh.1'>zsh(1)</ulink> and related
228 manual pages.
229 </para>
230
231 <para>
232 The first time zsh is executed, you will be prompted by messages asking
233 several questions. The answers will be used to create a
234 <filename>~/.zshrc</filename> file. If you wish to run these questions
235 again, run <command>zsh
236 /usr/share/zsh/&zsh-version;/functions/zsh-newuser-install -f</command>.
237 </para>
238
239 <para>
240 There are several built-in advanced prompts. In the
241 <command>zsh</command> shell, start advanced prompt support with
242 <command>autoload -U promptinit</command>, then
243 <command>promptinit</command>. Available prompt names are listed with
244 <command>prompt -l</command>. Select a particular one with
245 <command>prompt <literal>&lt;prompt-name&gt;</literal></command>.
246 Display all available
247 prompts with <command>prompt -p</command>. Except for the list and
248 display commands above, you can insert the other ones in
249 <filename>~/.zshrc</filename> to be automatically executed at
250 shell start, with the prompt you chose.
251 </para>
252
253 <indexterm zone="zsh zsh-config">
254 <primary sortas="e-etc-zsh-zshenv">/etc/zsh/zshenv</primary>
255 </indexterm>
256
257 <indexterm zone="zsh zsh-config">
258 <primary sortas="e-etc-zsh-zprofile">/etc/zsh/zprofile</primary>
259 </indexterm>
260
261 <indexterm zone="zsh zsh-config">
262 <primary sortas="e-etc-zsh-zshrc">/etc/zsh/zshrc</primary>
263 </indexterm>
264
265 <indexterm zone="zsh zsh-config">
266 <primary sortas="e-etc-zsh-zlogin">/etc/zsh/zlogin</primary>
267 </indexterm>
268
269 <indexterm zone="zsh zsh-config">
270 <primary sortas="e-etc-zsh-zlogout">/etc/zsh/zlogout</primary>
271 </indexterm>
272
273 </sect3>
274
275 <sect3>
276 <title>Configuration Information</title>
277
278 <para>
279 Update <filename>/etc/shells</filename> to include the
280 <application>zsh</application> shell program names (as the
281 <systemitem class="username">root</systemitem> user):
282 </para>
283
284<screen role="root"><userinput>cat &gt;&gt; /etc/shells &lt;&lt; "EOF"
285<literal>/bin/zsh</literal>
286EOF</userinput></screen>
287
288 </sect3>
289
290 </sect2>
291
292 <sect2 role="content">
293 <title>Contents</title>
294
295 <segmentedlist>
296 <segtitle>Installed Programs</segtitle>
297 <segtitle>Installed Libraries</segtitle>
298 <segtitle>Installed Directories</segtitle>
299
300 <seglistitem>
301 <seg>zsh and zsh-&zsh-version; (hardlinked to each other)</seg>
302 <seg>Numerous plugin helper modules under
303 /usr/lib/zsh/&zsh-version;/</seg>
304 <seg>/usr/{lib,share}/zsh and /usr/share/doc/zsh-&zsh-version;</seg>
305 </seglistitem>
306 </segmentedlist>
307
308 <variablelist>
309 <bridgehead renderas="sect3">Short Description</bridgehead>
310 <?dbfo list-presentation="list"?>
311 <?dbhtml list-presentation="table"?>
312
313 <varlistentry id="zsh-prog">
314 <term><command>zsh</command></term>
315 <listitem>
316 <para>
317 is a shell which has command-line editing, built-in spelling
318 correction, programmable command completion, shell functions (with
319 autoloading), a history mechanism, and a host of other features
320 </para>
321 <indexterm zone="zsh zsh-prog">
322 <primary sortas="b-zsh">zsh</primary>
323 </indexterm>
324 </listitem>
325 </varlistentry>
326
327 </variablelist>
328
329 </sect2>
330
331</sect1>
Note: See TracBrowser for help on using the repository browser.