From b347da03aab0cca5c94bbf02a6df26021070f8b2 Mon Sep 17 00:00:00 2001 From: YellowJacketLinux Date: Wed, 16 Oct 2024 00:54:01 -0700 Subject: [PATCH] lua --- 12-lua.sh | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 ++++ 2 files changed, 106 insertions(+) create mode 100644 12-lua.sh diff --git a/12-lua.sh b/12-lua.sh new file mode 100644 index 0000000..7aebe15 --- /dev/null +++ b/12-lua.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +if [ "`whoami`" == "root" ]; then + echo "Danger, Will Robinson!" + echo "Do not execute me as r00t" + exit 1 +fi + +TARBALL="lua-5.4.7.tar.gz" +DNL="https://www.lua.org/ftp/lua-5.4.7.tar.gz" +SHA256="9fbf5e28ef86c69858f6d3d34eccc32e911c1a28b4120ff3e84aaa70cfbf1e30" +PATCH="lua-5.4.7-shared_library-1.patch" +PATCHDNL="https://www.linuxfromscratch.org/patches/blfs/svn/lua-5.4.7-shared_library-1.patch" +PATCHSHA256="44324a802822f0a35d095aaad2f5f58fa7b1821ae87ae44dbcfc8a23fcd2e67e" + +[ -d lua-5.4.7 ] && rm -rf lua-5.4.7 + +if [ ! -f ${TARBALL} ]; then + wget ${DNL} + if [ $? -ne 0 ]; then + echo "Could not retrieve ${DNL}" + echo "Sorry." + exit 1 + fi +fi +if [ ! -f ${PATCH} ]; then + wget ${PATCHDNL} + if [ $? -ne 0 ]; then + echo "Could not retrieve ${DNL}" + echo "Sorry." + exit 1 + fi +fi + +CHECK="`sha256sum ${TARBALL} |awk ' { print $1 } ' `" +if [ "${CHECK}" != "${SHA256}" ]; then + echo "${TARBALL} does not match expected SHA256. Sorry." + exit 1 +fi +CHECK="`sha256sum ${PATCH} |awk ' { print $1 } ' `" +if [ "${CHECK}" != "${PATCHSHA256}" ]; then + echo "${PATCH} does not match expected SHA256. Sorry." + exit 1 +fi + +tar -zxf ${TARBALL} && cd lua-5.4.7 + +cat > lua.pc << "EOF" +V=5.4 +R=5.4.7 + +prefix=/usr +INSTALL_BIN=${prefix}/bin +INSTALL_INC=${prefix}/include +INSTALL_LIB=${prefix}/lib +INSTALL_MAN=${prefix}/share/man/man1 +INSTALL_LMOD=${prefix}/share/lua/${V} +INSTALL_CMOD=${prefix}/lib/lua/${V} +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Lua +Description: An Extensible Extension Language +Version: ${R} +Requires: +Libs: -L${libdir} -llua -lm -ldl +Cflags: -I${includedir} +EOF + +patch -Np1 -i ../${PATCH} + +make linux +if [ $? -ne 0 ]; then + echo "Failed building lua. Sorry." + exit 1 +fi + +echo "running make test" +make test > lua.check.log 2>&1 + +cat > makeinstall.sh << "EOF" +#!/bin/bash + +make INSTALL_TOP=/usr \ + INSTALL_DATA="cp -d" \ + INSTALL_MAN=/usr/share/man/man1 \ + TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.7" \ + install + +mkdir -p /usr/share/doc/lua-5.4.7 +cp doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.7 +install -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc +EOF + +echo "Investigate lua-5.4.7/lua.check.log and if looks okay, as root:" +echo +echo " cd lua-5.4.7" +echo " bash makeinstall.sh" +echo diff --git a/README.md b/README.md index 494394f..dd77ae6 100644 --- a/README.md +++ b/README.md @@ -94,4 +94,10 @@ pcre2. * Script: [`11-libarchive.sh`](11-libarchive.sh) * Status: Script Works +Dependency Twelve: Lua +---------------------- +Justification: Needed to build RPM. No build dependencies outside of LFS. + +* Script: [`12-lua.sh`](12-lua.sh) +* Status: Script Untested