diff options
author | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-22 23:11:08 +0000 |
---|---|---|
committer | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-22 23:11:08 +0000 |
commit | 28e610dbf11eaf4f401b1522b80fa34feb46fa8c (patch) | |
tree | 3a9321f0597da372b19e45e00229c278c03ee305 /chapter08 | |
parent | bfab1b2d251f5101902524a551c61e5286432a84 (diff) |
Move tcl, expect, and dejagnu to Chapter 8
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11981 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter08')
-rw-r--r-- | chapter08/chapter08.xml | 5 | ||||
-rw-r--r-- | chapter08/dejagnu.xml | 95 | ||||
-rw-r--r-- | chapter08/expect.xml | 140 | ||||
-rw-r--r-- | chapter08/tcl.xml | 204 |
4 files changed, 444 insertions, 0 deletions
diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml index 2e2bc799e..cd8173536 100644 --- a/chapter08/chapter08.xml +++ b/chapter08/chapter08.xml @@ -14,6 +14,11 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pkgmgt.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-pages.xml"/> + + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tcl.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expect.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dejagnu.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iana-etc.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glibc.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="zlib.xml"/> diff --git a/chapter08/dejagnu.xml b/chapter08/dejagnu.xml new file mode 100644 index 000000000..da6a44aa9 --- /dev/null +++ b/chapter08/dejagnu.xml @@ -0,0 +1,95 @@ +<?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-dejagnu" role="wrap"> + <?dbhtml filename="dejagnu.html"?> + + <sect1info condition="script"> + <productname>dejagnu</productname> + <productnumber>&dejagnu-version;</productnumber> + <address>&dejagnu-url;</address> + </sect1info> + + <title>DejaGNU-&dejagnu-version;</title> + + <indexterm zone="ch-tools-dejagnu"> + <primary sortas="a-DejaGNU">DejaGNU</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The <application>DejaGnu</application> package contains a framework for running test + suites on GNU tools. It is written in <command>expect</command>, which itself + uses <application>Tcl</application> (Tool Command Language).</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&dejagnu-tmp-sbu;</seg> + <seg>&dejagnu-tmp-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of DejaGNU</title> + + <para>Prepare DejaGNU for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr +makeinfo --html --no-split -o doc/dejagnu.html doc/dejagnu.texi +makeinfo --plaintext -o doc/dejagnu.txt doc/dejagnu.texi</userinput></screen> + + <para>Build and install the package:</para> + +<screen><userinput remap="install">make install +install -v -dm755 /usr/share/doc/dejagnu-&dejagnu-version; +install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-&dejagnu-version;</userinput></screen> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">make check</userinput></screen> + + </sect2> + + + <sect2 id="contents-dejagnu" role="content"> + <title>Contents of DejaGNU</title> + + <segmentedlist> + <segtitle>Installed program</segtitle> + + <seglistitem> + <seg>runtest</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="runtest"> + <term><command>runtest</command></term> + <listitem> + <para>A wrapper script that locates the proper + <command>expect</command> shell and then runs DejaGNU</para> + <indexterm zone="ch-tools-dejagnu runtest"> + <primary sortas="b-runtest">runtest</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> diff --git a/chapter08/expect.xml b/chapter08/expect.xml new file mode 100644 index 000000000..da374bd9d --- /dev/null +++ b/chapter08/expect.xml @@ -0,0 +1,140 @@ +<?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-expect" role="wrap"> + <?dbhtml filename="expect.html"?> + + <sect1info condition="script"> + <productname>expect</productname> + <productnumber>&expect-version;</productnumber> + <address>&expect-url;</address> + </sect1info> + + <title>Expect-&expect-version;</title> + + <indexterm zone="ch-tools-expect"> + <primary sortas="a-Expect">Expect</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The <application>Expect</application> package contains tools for + automating, via scripted dialogues, interactive applications such as + <command>telnet</command>, <command>ftp</command>, + <command>passwd</command>, <command>fsck</command>, + <command>rlogin</command>, and <command>tip</command>. + <application>Expect</application> is also useful for testing these same + applications as well as easing all sorts of tasks that are prohibitively + difficult with anything else. The <application>DejaGnu</application> + framework is written in <application>Expect</application>.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&expect-tmp-sbu;</seg> + <seg>&expect-tmp-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Expect</title> + + <para>Prepare Expect for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr \ + --with-tcl=/usr/lib \ + --enable-shared \ + --mandir=/usr/share/man \ + --with-tclinclude=/usr/include</userinput></screen> + + <variablelist> + <title>The meaning of the configure options:</title> + + <varlistentry> + <term><parameter>--with-tcl=/usr/lib</parameter></term> + <listitem> + <para>This parameter is needed to tell + <command>configure</command> where the + <command>tclConfig.sh</command> script is located.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--with-tclinclude=/usr/include</parameter></term> + <listitem> + <para>This explicitly tells Expect where to find Tcl's internal + headers.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Build the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">make test</userinput></screen> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install +ln -svf expect&expect-version;/libexpect&expect-version;.so /usr/lib</userinput></screen> + + </sect2> + + <sect2 id="contents-expect" role="content"> + <title>Contents of Expect</title> + + <segmentedlist> + <segtitle>Installed program</segtitle> + <segtitle>Installed library</segtitle> + + <seglistitem> + <seg>expect</seg> + <seg>libexpect-&expect-lib-version;.so</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="expect"> + <term><command>expect</command></term> + <listitem> + <para>Communicates with other interactive programs according + to a script</para> + <indexterm zone="ch-tools-expect expect"> + <primary sortas="b-expect">expect</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libexpect"> + <term><filename class="libraryfile">libexpect-&expect-lib-version;.so</filename></term> + <listitem> + <para>Contains functions that allow Expect to be used as a Tcl + extension or to be used directly from C or C++ (without Tcl)</para> + <indexterm zone="ch-tools-expect libexpect"> + <primary sortas="c-libexpect-&expect-lib-version;">libexpect-&expect-lib-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> diff --git a/chapter08/tcl.xml b/chapter08/tcl.xml new file mode 100644 index 000000000..1df22b81c --- /dev/null +++ b/chapter08/tcl.xml @@ -0,0 +1,204 @@ +<?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; + <!ENTITY tdbc-ver "1.1.1"> + <!ENTITY itcl-ver "4.2.0"> +]> + +<sect1 id="ch-tools-tcl" role="wrap"> + <?dbhtml filename="tcl.html"?> + + <sect1info condition="script"> + <productname>tcl</productname> + <productnumber>&tcl-version;</productnumber> + <address>&tcl-url;</address> + </sect1info> + + <title>Tcl-&tcl-version;</title> + + <indexterm zone="ch-tools-tcl"> + <primary sortas="a-Tcl">Tcl</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The <application>Tcl</application> package contains the Tool Command Language, + a robust general-purpose scripting language. The <application>Expect</application> package + is written in the <application>Tcl</application> language.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&tcl-tmp-sbu;</seg> + <seg>&tcl-tmp-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Tcl</title> + + <para>This package and the next two (Expect and DejaGNU) are + installed to support running the test suites for GCC and binutils and other + packages. Installing three packages for testing purposes may seem + excessive, but it is very reassuring, if not essential, to know that the + most important tools are working properly. These packages are required + to run the test suites in this chapter.</para> + +<!-- <para>Note that the Tcl package used here is a minimal version needed + to run the LFS tests. For the full package, see the + <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para>--> + + <para>First, unpack the documentation by issuing the following command:</para> + +<screen><userinput remap="pre">tar -xf ../tcl8.6.10-html.tar.gz --strip-components=1</userinput></screen> + + <para>Prepare Tcl for compilation:</para> + +<screen><userinput remap="configure">SRCDIR=$(pwd) +cd unix +./configure --prefix=/usr \ + --mandir=/usr/share/man \ + $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</userinput></screen> + + <variablelist> + <title>The meaning of the configure options:</title> + + <varlistentry> + <term><parameter>$([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</parameter></term> + <listitem> + <para>The construct <parameter>$(<shell command>)</parameter> + is replaced by the output of the shell command. Here this output is + empty if running on a 32 bit machine, and is + <parameter>--enable-64bit</parameter> if running on a 64 bit machine. + </para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Build the package:</para> + +<screen><userinput remap="make">make + +sed -e "s|$SRCDIR/unix|/usr/lib|" \ + -e "s|$SRCDIR|/usr/include|" \ + -i tclConfig.sh + +sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \ + -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \ + -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh + +sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \ + -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \ + -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \ + -i pkgs/itcl&itcl-ver;/itclConfig.sh + +unset SRCDIR</userinput></screen> + + <para>The various <quote>sed</quote> instructions after the + <quote>make</quote> command removes references to the build directory from + the configuration files and replaces them with the install directory. + This is not mandatory for the remainder of LFS, but may be needed in case a + package built later uses Tcl.</para> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">make test</userinput></screen> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install</userinput></screen> + + <para>Make the installed library writable so debugging symbols can + be removed later:</para> + +<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen> + + <para>Install Tcl's headers. The next package, Expect, requires them.</para> + +<screen><userinput remap="install">make install-private-headers</userinput></screen> + + <para>Now make a necessary symbolic link:</para> + +<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen> + + </sect2> + + <sect2 id="contents-tcl" role="content"> + <title>Contents of Tcl</title> + + <segmentedlist> + <segtitle>Installed programs</segtitle> + <segtitle>Installed library</segtitle> + + <seglistitem> + <seg> + tclsh (link to tclsh&tcl-major-version;) and + tclsh&tcl-major-version; + </seg> + <seg> + libtcl&tcl-major-version;.so and + libtclstub&tcl-major-version;.a + </seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="tclsh&tcl-major-version;"> + <term><command>tclsh&tcl-major-version;</command></term> + <listitem> + <para>The Tcl command shell</para> + <indexterm zone="ch-tools-tcl tclsh&tcl-major-version;"> + <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="tclsh"> + <term><command>tclsh</command></term> + <listitem> + <para>A link to tclsh&tcl-major-version;</para> + <indexterm zone="ch-tools-tcl tclsh"> + <primary sortas="b-tclsh">tclsh</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libtcl&tcl-major-version;.so"> + <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term> + <listitem> + <para>The Tcl library</para> + <indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so"> + <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libtclstub&tcl-major-version;.a"> + <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term> + <listitem> + <para>The Tcl Stub library</para> + <indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a"> + <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> |