3.33. bash-5.1.8

#!/bin/sh
# Copyright © 1999-2022 Gerard Beekmans
# Copyright © 2017-2022 Random Crew
# Distributed under the terms of MIT License.

Configuration

src_config()
{
    ./configure \
        --prefix=${PREFIX} \
        --docdir=${PREFIX}/share/doc/${P} \
        --without-bash-malloc \
        --with-installed-readline
}

Compilation

src_compile()
{
    make ${MAKEOPTS}
}

Installation

src_install()
{
    make install ${MAKEOPTS} DESTDIR=${D}
    mkdir -p ${D}/bin
    ln -s bash ${D}/bin/sh
    ln -s ..${PREFIX}/bin/bash ${D}/bin/bash
}

Unit testing

src_check()
{
    chown -R tester .
    su -s ${PREFIX}/bin/expect tester << EOF
set timeout -1
spawn make tests
expect eof
lassign [wait] _ _ _ value
exit $value
EOF
}

Final notes

The string from original LFS is not executed in the build:

    exec /bin/bash --login +h

Instead we stop build session at this package and manually start new process for further packages. When new process starts, it relogins to chroot with desired effect. The option +h is set up in inner engine files for lfs buildage.

Build code

bash.build
pass1.sh

Other files

meta.txt
text

Links

url.lfs: https://linuxfromscratch.org/lfs/view/11.0/chapter08/bash.html
url.lfs.stage1: https://linuxfromscratch.org/lfs/view/11.0/chapter06/bash.html