aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/bash.xml
blob: 195577380a73d9fb91f367e591b1a5691a034034 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-bash" role="wrap">
  <?dbhtml filename="bash.html"?>

  <sect1info condition="script">
    <productname>bash</productname>
    <productnumber>&bash-version;</productnumber>
    <address>&bash-url;</address>
  </sect1info>

  <title>Bash-&bash-version;</title>

  <indexterm zone="ch-tools-bash">
    <primary sortas="a-Bash">Bash</primary>
    <secondary>tools</secondary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
    href="../chapter06/bash.xml"
    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&bash-ch5-sbu;</seg>
        <seg>&bash-ch5-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Bash</title>

    <para>Apply fixes for several bugs discovered since the initial release of
    Bash-&bash-version;:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen>

    <para>Prepare Bash for compilation:</para>

<screen><userinput remap="configure">./configure --prefix=/tools --without-bash-malloc \
   ac_cv_func_working_mktime=yes</userinput></screen>

    <variablelist>
      <title>The meaning of the configure options:</title>

      <varlistentry>
        <term><parameter>--without-bash-malloc</parameter></term>
        <listitem>
          <para>This option turns off the use of Bash's memory allocation
          (<function>malloc</function>) function which is known to cause
          segmentation faults. By turning this option off, Bash will use
          the <function>malloc</function> functions from Glibc which are
          more stable.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><parameter>ac_cv_func_working_mktime=yes</parameter></term>
        <listitem>
          <para>This parameter bypasses the search for mktime in configure
          and uses the version in glibc. The is necessary due to a change in
          gcc that has not been incorporated into this package yet.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>Compile the package:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Compilation is now complete. As discussed earlier, running the test
    suite is not mandatory for the temporary tools here in this chapter. To run
    the Bash test suite anyway, issue the following command:</para>


<screen><userinput remap="test">make tests</userinput></screen>

    <para>Install the package:</para>

<screen><userinput remap="install">make install</userinput></screen>

    <para>Make a link for the programs that use <command>sh</command> for
    a shell:</para>

<screen><userinput remap="install">ln -vs bash /tools/bin/sh</userinput></screen>

  </sect2>

  <sect2 role="content">
    <title/>

    <para>Details on this package are located in
    <xref linkend="contents-bash" role="."/></para>

  </sect2>

</sect1>