source: BOOK/final-system/common/perl.xml@ bc88d7a

clfs-1.2 clfs-2.1 clfs-3.0.0-systemd clfs-3.0.0-sysvinit systemd sysvinit
Last change on this file since bc88d7a was 7c6284f, checked in by Ken Moffat <zarniwhoop@…>, 16 years ago

Fix known perl vulnerabilities.

  • Property mode set to 100644
File size: 16.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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
8<sect1 id="ch-system-perl" role="wrap">
9 <?dbhtml filename="perl.html"?>
10
11 <title>Perl-&perl-version;</title>
12
13 <indexterm zone="ch-system-perl">
14 <primary sortas="a-Perl">Perl</primary>
15 </indexterm>
16
17 <sect2 role="package">
18 <title/>
19
20 <para>The Perl package contains the Practical Extraction and Report
21 Language.</para>
22
23 </sect2>
24
25 <sect2 role="installation">
26 <title>Installation of Perl</title>
27
28 <para os="p1">The following patch causes makedepend.sh to also remove
29 <literal>&lt;command-line&gt;</literal> as well as
30 <literal>&lt;command line&gt;</literal>:</para>
31
32<screen os="p2"><userinput>patch -Np1 -i ../&perl-gcc42_fix-patch;</userinput></screen>
33
34 <para os="p3">The following patch prevents perl from including asm/page.h
35 which will no longer be available in headers provided by kernel 2.6.25 and
36 forward:</para>
37
38<screen os="p4"><userinput>patch -Np1 -i ../&perl-no_page_h-patch;</userinput></screen>
39
40 <para os="p5">The following patch fixes known vulnerabilities in perl:</para>
41
42<screen os="p6"><userinput>patch -Np1 -i ../&perl-security-patch;</userinput></screen>
43
44 <para os="s1">The following sed causes <filename>DynaLoader.a</filename>
45 to be built with -fPIC so it can be linked into a shared library
46 later:</para>
47
48<screen os="s2"><userinput>sed -i -e "s@pldlflags=''@pldlflags=\"\$cccdlflags\"@g" \
49 -e "s@static_target='static'@static_target='static_pic'@g" Makefile.SH</userinput></screen>
50
51 <note os="a00">
52 <para>If you are following the boot method you will need to enable the
53 loopback device as well as set a hostname for some of the tests:</para>
54
55 <screen><userinput>ip link set lo up
56hostname clfs</userinput></screen>
57 </note>
58
59 <para os="a01">Before starting to configure, create a basic
60 <filename>/etc/hosts</filename> file which will be referenced by one
61 of Perl's configuration files as well as used by the testsuite:</para>
62
63<screen os="a02"><userinput>echo "127.0.0.1 localhost $(hostname)" &gt; /etc/hosts</userinput></screen>
64
65 <para os="a">To have full control over the way Perl is set up, you can
66 run the interactive <command>Configure</command> script and hand-pick
67 the way this package is built. If you prefer instead to use the defaults
68 that Perl auto-detects, prepare Perl for compilation with:</para>
69
70<screen os="b"><userinput>CC=gcc ./configure.gnu --prefix=/usr \
71 -Dman1dir=/usr/share/man/man1 \
72 -Dman3dir=/usr/share/man/man3 \
73 -Dpager="/bin/less -isR" \
74 -Dusethreads</userinput></screen>
75
76 <variablelist os="c">
77 <title>The meaning of the configure option:</title>
78
79 <varlistentry os="c1">
80 <term><parameter>-Dpager="/bin/less -isR"</parameter></term>
81 <listitem>
82 <para>This corrects an error in the way that <command>perldoc</command>
83 invokes the <command>less</command> program.</para>
84 </listitem>
85 </varlistentry>
86 <varlistentry os="c2">
87 <term><parameter>-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3</parameter></term>
88 <listitem>
89 <para>Since Groff is not installed yet,
90 <command>configure.gnu</command> thinks that we do not want
91 man pages for Perl. Issuing these parameters overrides this decision.</para>
92 </listitem>
93 </varlistentry>
94 <varlistentry os="c3">
95 <term><parameter>-Dusethreads</parameter></term>
96 <listitem>
97 <para>This tells Perl to use threads.</para>
98 </listitem>
99 </varlistentry>
100 </variablelist>
101
102 <para os="d">Compile the package:</para>
103
104<screen os="e"><userinput>make</userinput></screen>
105
106 <para os="h">To test the results, issue:
107 <userinput>make test</userinput>.</para>
108
109 <para os="j">Install the package:</para>
110
111<screen os="k"><userinput>make install</userinput></screen>
112
113 </sect2>
114
115 <sect2 id="contents-perl" role="content">
116 <title>Contents of Perl</title>
117
118 <segmentedlist>
119 <segtitle>Installed programs</segtitle>
120 <segtitle>Installed libraries</segtitle>
121
122 <seglistitem>
123 <seg>a2p, c2ph, cpan, dprofpp, enc2xs, find2perl, h2ph, h2xs, instmodsh, libnetcfg,
124 perl, perl&perl-version; (link to perl), perlbug, perlcc, perldoc,
125 perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man, pod2text,
126 pod2usage, podchecker, podselect, prove, psed (link to s2p), pstruct (link
127 to c2ph), s2p, splain, and xsubpp</seg>
128 <seg>Several hundred which cannot all be listed here</seg>
129 </seglistitem>
130 </segmentedlist>
131
132 <variablelist>
133 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
134 <?dbfo list-presentation="list"?>
135 <?dbhtml list-presentation="table"?>
136
137 <varlistentry id="a2p">
138 <term><command>a2p</command></term>
139 <listitem>
140 <para>Translates awk to Perl</para>
141 <indexterm zone="ch-system-perl a2p">
142 <primary sortas="b-a2p">a2p</primary>
143 </indexterm>
144 </listitem>
145 </varlistentry>
146
147 <varlistentry id="c2ph">
148 <term><command>c2ph</command></term>
149 <listitem>
150 <para>Dumps C structures as generated from
151 <command>cc -g -S</command></para>
152 <indexterm zone="ch-system-perl c2ph">
153 <primary sortas="b-c2ph">c2ph</primary>
154 </indexterm>
155 </listitem>
156 </varlistentry>
157
158 <varlistentry id="cpan">
159 <term><command>cpan</command></term>
160 <listitem>
161 <para>Shell script that provides a command interface to CPAN.pm</para>
162 <indexterm zone="ch-system-perl cpan">
163 <primary sortas="b-cpan">cpan</primary>
164 </indexterm>
165 </listitem>
166 </varlistentry>
167
168 <varlistentry id="dprofpp">
169 <term><command>dprofpp</command></term>
170 <listitem>
171 <para>Displays Perl profile data</para>
172 <indexterm zone="ch-system-perl dprofpp">
173 <primary sortas="b-dprofpp">dprofpp</primary>
174 </indexterm>
175 </listitem>
176 </varlistentry>
177
178 <varlistentry id="enc2xs">
179 <term><command>enc2xs</command></term>
180 <listitem>
181 <para>Builds a Perl extension for the Encode module from either
182 Unicode Character Mappings or Tcl Encoding Files</para>
183 <indexterm zone="ch-system-perl enc2xs">
184 <primary sortas="b-enc2xs">enc2xs</primary>
185 </indexterm>
186 </listitem>
187 </varlistentry>
188
189 <varlistentry id="find2perl">
190 <term><command>find2perl</command></term>
191 <listitem>
192 <para>Translates <command>find</command> commands to Perl</para>
193 <indexterm zone="ch-system-perl find2perl">
194 <primary sortas="b-find2perl">find2perl</primary>
195 </indexterm>
196 </listitem>
197 </varlistentry>
198
199 <varlistentry id="h2ph">
200 <term><command>h2ph</command></term>
201 <listitem>
202 <para>Converts <filename class="extension">.h</filename> C header
203 files to <filename class="extension">.ph</filename> Perl header
204 files</para>
205 <indexterm zone="ch-system-perl h2ph">
206 <primary sortas="b-h2ph">h2ph</primary>
207 </indexterm>
208 </listitem>
209 </varlistentry>
210
211 <varlistentry id="h2xs">
212 <term><command>h2xs</command></term>
213 <listitem>
214 <para>Converts <filename class="extension">.h</filename> C header
215 files to Perl extensions</para>
216 <indexterm zone="ch-system-perl h2xs">
217 <primary sortas="b-h2xs">h2xs</primary>
218 </indexterm>
219 </listitem>
220 </varlistentry>
221
222 <varlistentry id="libnetcfg">
223 <term><command>libnetcfg</command></term>
224 <listitem>
225 <para>Can be used to configure the
226 <filename class="libraryfile">libnet</filename></para>
227 <indexterm zone="ch-system-perl libnetcfg">
228 <primary sortas="b-libnetcfg">libnetcfg</primary>
229 </indexterm>
230 </listitem>
231 </varlistentry>
232
233 <varlistentry id="instmodsh">
234 <term><command>instmodsh</command></term>
235 <listitem>
236 <para>A shell script for examining installed Perl modules,
237 and can even create a tarball from an installed module</para>
238 <indexterm zone="ch-system-perl instmodsh">
239 <primary sortas="b-instmodsh">instmodsh</primary>
240 </indexterm>
241 </listitem>
242 </varlistentry>
243
244 <varlistentry id="perl">
245 <term><command>perl</command></term>
246 <listitem>
247 <para>Combines some of the best features of C, <command>sed</command>,
248 <command>awk</command> and <command>sh</command> into a single
249 swiss-army-knife language</para>
250 <indexterm zone="ch-system-perl perl">
251 <primary sortas="b-perl">perl</primary>
252 </indexterm>
253 </listitem>
254 </varlistentry>
255
256 <varlistentry id="perl-version">
257 <term><command>perl&perl-version;</command></term>
258 <listitem>
259 <para>A hard link to <command>perl</command></para>
260 <indexterm zone="ch-system-perl perl-version">
261 <primary sortas="b-perl&perl-version;">perl&perl-version;</primary>
262 </indexterm>
263 </listitem>
264 </varlistentry>
265
266 <varlistentry id="perlbug">
267 <term><command>perlbug</command></term>
268 <listitem>
269 <para>Used to generate bug reports about Perl, or the modules that come
270 with it, and mail them</para>
271 <indexterm zone="ch-system-perl perlbug">
272 <primary sortas="b-perlbug">perlbug</primary>
273 </indexterm>
274 </listitem>
275 </varlistentry>
276
277 <varlistentry id="perlcc">
278 <term><command>perlcc</command></term>
279 <listitem>
280 <para>Generates executables from Perl programs</para>
281 <indexterm zone="ch-system-perl perlcc">
282 <primary sortas="b-perlcc">perlcc</primary>
283 </indexterm>
284 </listitem>
285 </varlistentry>
286
287 <varlistentry id="perldoc">
288 <term><command>perldoc</command></term>
289 <listitem>
290 <para>Displays a piece of documentation in pod format that is embedded
291 in the Perl installation tree or in a Perl script</para>
292 <indexterm zone="ch-system-perl perldoc">
293 <primary sortas="b-perldoc">perldoc</primary>
294 </indexterm>
295 </listitem>
296 </varlistentry>
297
298 <varlistentry id="perlivp">
299 <term><command>perlivp</command></term>
300 <listitem>
301 <para>The Perl Installation Verification Procedure; it can be used to
302 verify that Perl and its libraries have been installed
303 correctly</para>
304 <indexterm zone="ch-system-perl perlivp">
305 <primary sortas="b-perlivp">perlivp</primary>
306 </indexterm>
307 </listitem>
308 </varlistentry>
309
310 <varlistentry id="piconv">
311 <term><command>piconv</command></term>
312 <listitem>
313 <para>A Perl version of the character encoding converter
314 <command>iconv</command></para>
315 <indexterm zone="ch-system-perl piconv">
316 <primary sortas="b-piconv">piconv</primary>
317 </indexterm>
318 </listitem>
319 </varlistentry>
320
321 <varlistentry id="pl2pm">
322 <term><command>pl2pm</command></term>
323 <listitem>
324 <para>A rough tool for converting Perl4
325 <filename class="extension">.pl</filename> files to Perl5
326 <filename class="extension">.pm</filename> modules</para>
327 <indexterm zone="ch-system-perl pl2pm">
328 <primary sortas="b-pl2pm">pl2pm</primary>
329 </indexterm>
330 </listitem>
331 </varlistentry>
332
333 <varlistentry id="pod2html">
334 <term><command>pod2html</command></term>
335 <listitem>
336 <para>Converts files from pod format to HTML format</para>
337 <indexterm zone="ch-system-perl pod2html">
338 <primary sortas="b-pod2html">pod2html</primary>
339 </indexterm>
340 </listitem>
341 </varlistentry>
342
343 <varlistentry id="pod2latex">
344 <term><command>pod2latex</command></term>
345 <listitem>
346 <para>Converts files from pod format to LaTeX format</para>
347 <indexterm zone="ch-system-perl pod2latex">
348 <primary sortas="b-pod2latex">pod2latex</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="pod2man">
354 <term><command>pod2man</command></term>
355 <listitem>
356 <para>Converts pod data to formatted *roff input</para>
357 <indexterm zone="ch-system-perl pod2man">
358 <primary sortas="b-pod2man">pod2man</primary>
359 </indexterm>
360 </listitem>
361 </varlistentry>
362
363 <varlistentry id="pod2text">
364 <term><command>pod2text</command></term>
365 <listitem>
366 <para>Converts pod data to formatted ASCII text</para>
367 <indexterm zone="ch-system-perl pod2text">
368 <primary sortas="b-pod2text">pod2text</primary>
369 </indexterm>
370 </listitem>
371 </varlistentry>
372
373 <varlistentry id="pod2usage">
374 <term><command>pod2usage</command></term>
375 <listitem>
376 <para>Prints usage messages from embedded pod docs in files</para>
377 <indexterm zone="ch-system-perl pod2usage">
378 <primary sortas="b-pod2usage">pod2usage</primary>
379 </indexterm>
380 </listitem>
381 </varlistentry>
382
383 <varlistentry id="podchecker">
384 <term><command>podchecker</command></term>
385 <listitem>
386 <para>Checks the syntax of pod format documentation files</para>
387 <indexterm zone="ch-system-perl podchecker">
388 <primary sortas="b-podchecker">podchecker</primary>
389 </indexterm>
390 </listitem>
391 </varlistentry>
392
393 <varlistentry id="podselect">
394 <term><command>podselect</command></term>
395 <listitem>
396 <para>Displays selected sections of pod documentation</para>
397 <indexterm zone="ch-system-perl podselect">
398 <primary sortas="b-podselect">podselect</primary>
399 </indexterm>
400 </listitem>
401 </varlistentry>
402
403 <varlistentry id="prove">
404 <term><command>prove</command></term>
405 <listitem>
406 <para>A command-line tool for running tests against Test::Harness</para>
407 <indexterm zone="ch-system-perl prove">
408 <primary sortas="b-prove">prove</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="psed">
414 <term><command>psed</command></term>
415 <listitem>
416 <para>A Perl version of the stream editor <command>sed</command></para>
417 <indexterm zone="ch-system-perl psed">
418 <primary sortas="b-psed">psed</primary>
419 </indexterm>
420 </listitem>
421 </varlistentry>
422
423 <varlistentry id="pstruct">
424 <term><command>pstruct</command></term>
425 <listitem>
426 <para>Dumps C structures as generated from <command>cc -g -S</command>
427 stabs</para>
428 <indexterm zone="ch-system-perl pstruct">
429 <primary sortas="b-pstruct">pstruct</primary>
430 </indexterm>
431 </listitem>
432 </varlistentry>
433
434 <varlistentry id="s2p">
435 <term><command>s2p</command></term>
436 <listitem>
437 <para>Translates <command>sed</command> to Perl</para>
438 <indexterm zone="ch-system-perl s2p">
439 <primary sortas="b-s2p">s2p</primary>
440 </indexterm>
441 </listitem>
442 </varlistentry>
443
444 <varlistentry id="splain">
445 <term><command>splain</command></term>
446 <listitem>
447 <para>Is used to force verbose warning diagnostics in Perl</para>
448 <indexterm zone="ch-system-perl splain">
449 <primary sortas="b-splain">splain</primary>
450 </indexterm>
451 </listitem>
452 </varlistentry>
453
454 <varlistentry id="xsubpp">
455 <term><command>xsubpp</command></term>
456 <listitem>
457 <para>Converts Perl XS code into C code</para>
458 <indexterm zone="ch-system-perl xsubpp">
459 <primary sortas="b-xsubpp">xsubpp</primary>
460 </indexterm>
461 </listitem>
462 </varlistentry>
463
464 </variablelist>
465
466 </sect2>
467
468</sect1>
Note: See TracBrowser for help on using the repository browser.