[Toybox] Notes and precautions for a half-toybox based LFS build

Oliver Webb aquahobbyist at proton.me
Mon Sep 23 14:30:30 PDT 2024


Over a couple days, I was able to build Linux From Scratch 12.2 with some
of the chapter 5 and 8 utilities substituted for toybox. The utilities I 
substituted were:

grep file tar patch sed gawk bc findutils diffutils vi kmod procps-ng

I did _not_ substitute coreutils or util-linux, the compression utilities,
bash, or inetutils/shadow (coreutils xz gzip bz2 bash inetutils shadow util-linux iproute)
because coreutils/util-linux is a giant hairball needing its own de-construction
separate from this test, the compression utils in toybox don't have compression
support, and the inetutils/shadow replacement is mostly in pending.

I didn't use a plain configuration, during the chapter 5 chroot build you need
to disable su, mkpasswd, and login since they use crypt() out of libcrypt.
However I did enable awk, bc, diff, modprobe, and vi out of pending
(to replace gawk/bc/diffutils/kmod/vim).

Besides the fact that most of the LFS packages build using toybox grep/diff/tar/patch/bc
/awk/find/etc..., The "make install" step for bzip2 and ncurses both destroy the toybox binary
(By overwriting what a symlink points to, and not the symlink itself). So it's a good idea
to backup the binary during the build process.

I wasn't able to build zstd (it's trying to call make with the CFLAGS for some reason I think?)
or udev from systemd (cmake (which LFS never said to build) isn't there). But I also don't have
a control test and I can't pinpoint these errors to anything in toybox specifically.

-   Oliver Webb <aquahobbyist at proton.me>

P.S. about removing texinfo: binutils requires it in it's build for some insane reason, but there's
probably some way to make it not do that.


More information about the Toybox mailing list