The Expect package contains tools for automating, via scripted dialogues, interactive applications such as telnet, ftp, passwd, fsck, rlogin, and tip. Expect is also useful for testing these same applications as well as easing all sorts of tasks that are prohibitively difficult with anything else. The DejaGnu framework is written in Expect.
Expect needs PTYs to work. Verify that the PTYs are working properly inside the chroot environment by performing a simple test:
python3 -c 'from pty import spawn; spawn(["echo", "ok"])'
This command should output ok.
If, instead, the output includes OSError: out of pty
devices, then the environment is not set up for proper
PTY operation. You need to exit from the chroot environment, read
the section called “Preparing Virtual Kernel File Systems” again, and ensure the
devpts file system (and
other virtual kernel file systems) mounted correctly. Then reenter
the chroot environment following the section called “Entering the Chroot Environment”.
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.
Now, make some changes to allow the package with gcc-15.1 or later:
patch -Np1 -i ../expect-5.45.4-gcc15-1.patch
Prepare Expect for compilation:
./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
--disable-rpath \
--mandir=/usr/share/man \
--with-tclinclude=/usr/includeThe meaning of the configure options:
--with-tcl=/usr/libThis parameter is needed to tell configure where the tclConfig.sh script is located.
--with-tclinclude=/usr/includeThis explicitly tells Expect where to find Tcl's internal headers.
Build the package:
make
To test the results, issue:
make test
Install the package:
make install ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib