mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-18 21:17:38 +00:00
165 lines
5.6 KiB
XML
165 lines
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!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-system-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-system-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>Expect needs PTYs to work. Verify that the PTYs are working
|
|
properly inside the chroot environment by performing a simple
|
|
test:</para>
|
|
|
|
<screen><userinput remap="test">python3 -c 'from pty import spawn; spawn(["echo", "ok"])'</userinput></screen>
|
|
|
|
<para>This command should output <computeroutput>ok</computeroutput>.
|
|
If, instead, the output includes <computeroutput>OSError: out of pty
|
|
devices</computeroutput>, then the environment is not set up for proper
|
|
PTY operation. You need to exit from the chroot environment, read
|
|
<xref linkend='ch-tools-kernfs'/> again, and ensure the
|
|
<systemitem class="filesystem">devpts</systemitem> file system (and
|
|
other virtual kernel file systems) mounted correctly. Then reenter
|
|
the chroot environment following <xref linkend='ch-tools-chroot'/>.
|
|
This issue needs to be resolved before continuing, or the test suites
|
|
requiring Expect (for example the test suites of Bash, Binutils, GCC,
|
|
GDBM, and of course Expect itself) will fail catastrophically, and other
|
|
subtle breakages may also happen.</para>
|
|
|
|
<para>Now, make some changes to allow the package with gcc-14.1 or later:</para>
|
|
|
|
<screen><userinput remap="pre">patch -Np1 -i ../expect-&expect-version;-gcc14-1.patch</userinput></screen>
|
|
|
|
<para>Prepare Expect for compilation:</para>
|
|
|
|
<screen><userinput remap="configure">./configure --prefix=/usr \
|
|
--with-tcl=/usr/lib \
|
|
--enable-shared \
|
|
--disable-rpath \
|
|
--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-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-system-expect expect">
|
|
<primary sortas="b-expect">expect</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry id="libexpect">
|
|
<term><filename class="libraryfile">libexpect-&expect-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-system-expect libexpect">
|
|
<primary sortas="c-libexpect-&expect-version;">libexpect-&expect-version;</primary>
|
|
</indexterm>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|