Lotus 1-2-3 was a popular spreadsheet back in the 1980s and 1990s. This package is an unofficial port of it to Linux using the UNIX version as a base.
This package requires either a 32-bit system or a 64-bit system with 32-bit application support.
Required patch: https://glfs-book.github.io/lfs-qol/patches/lotus123/lotus123-1.0.0rc4-final-updates.patch
Required binutils version: https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.gz
First, apply a patch to bring the source up to the latest upstream commit:
patch -Np1 -i ../lotus123-1.0.0rc4-final-updates.patch
Then, in order to download the required disk images using Wget, execute the following commands:
for i in 1 2 3 4 5; do wget \ https://archive.org/download/123-unix/123UNIX$i.IMG; done
DO NOT use any other binutils versions than the one used in the book to compile this package. This is decades-old proprietary software, not ever meant to work on Linux, whose port to Linux was only possible because of technical issues with UNIXen of the day making it impossible to support third-party plugins without shipping object code. The format used for said object code is i386 COFF, which barely anyone uses these days. This version of binutils is the exact same one used in the upstream packaging scripts, and is known to have no critical issues regarding this format. If you use a different binutils version, you may very run into regressions which break the app in various ways. And if you do run into issues with this version of binutils, then you'll actually be able to report this upstream. If your binutils fails to build, DO NOT use a newer version. Report this to the LFS-QOL editors in order for this to be fixed for everyone without possibly opening up the door to critical regressions.
Now, compile the required parts of binutils with COFF support enabled:
tar -xvf ../binutils-2.38.tar.gz && cd binutils-2.38 && ./configure --enable-targets=i386-pc-elf32 \ --disable-gas \ --disable-libctf \ --disable-plugins \ --disable-gprof \ --enable-compressed-debug-sections=none && make all-ld MAKEINFO=true && cd .. && cp -v binutils-2.38/binutils/obj{copy,dump} . && cp -v binutils-2.38/ld/ld-new ld
In order to compile Lotus 1-2-3, execute the following commands:
./extract.sh && sed -i 's/\-ltinfo//g' Makefile && sed -i 's/\-ltinfo//g' keymap/Makefile && sed -i 's/\-ltinfo//g' ttydraw/Makefile && make
Now, as the root
user:
make prefix=/usr install
sed -i 's/\-ltinfo//g' ...
:
This command avoids linking against an Ncurses library that wasn't built in LFS.