Love this! I am nowhere near ready to publish, but I am trying to do something like this myself, building some automation and additional features on top of LFS. I am unfortunately quite a bit more ambitious about it, though, so it's been a challenge. Supporting UEFI seemed non-negotiable to me, but wasn't hard. Supporting arbitrary bare metal hardware, though, has been quite hard. I can see why real distros take the kitchen sink approach of just including every possible kernel module, all firmware, and all microcode updates, even knowing most of it will never be used. Getting NVIDIA's CUDA toolkit extracted from their .deb files and installed via a more LFS-friendly means without actually using Debian tooling has also been a challenge.
My hope is to be able to provide scratch-built distros that each serve a specific purpose (i.e. hypervisor, desktop video editor, vm guest on Hyper-V and/or KVM, container orchestrator), with GPU and scientific computing being one of those purposes. The things you learn. It apparently takes ATLAS at least two full days to find the optimal kernels on Threadripper. De-vendoring mbedtls from Julia teaches you it won't compile with gcc 11.1.0 unless you completely turn off warnings as errors, not exactly confidence inspiring for a core crypto library and making me question Julia's decision to use it. Building Epiphany in 20 seconds and then watching Firefox take hours just to continually hang after launching thousands of nodejs processes that consume no resources and don't seem to do anything makes me question my decision to use Firefox at all. I understand now why LFS insists on only using the ESR versions.
I was surprised to learn that systemd will not obtain an address via DHCP without the presence /etc/machine-id which systemd-machine-id-setup creates for you (needs it for IAID+DUID).
Yes! The other thing that got me was, to build ghc for compiling Haskell, you need to already have an older ghc, common enough for bootstrapping installers, but the code for ghcup throws a filesystem error if you don't an '/etc/os-release' file. It can even be an empty file, because it will accept installing a generic version for an unknown Linux, but it unconditionally tries to read the file without first checking whether it's actually there.
6 comments
[ 2.7 ms ] story [ 27.3 ms ] threadLFS is something I recommend to everyone, an it's great to see fresh ideas built on it.
Hopefully my choice of VCS wont hinder the user, git mirror being the compromise.
My hope is to be able to provide scratch-built distros that each serve a specific purpose (i.e. hypervisor, desktop video editor, vm guest on Hyper-V and/or KVM, container orchestrator), with GPU and scientific computing being one of those purposes. The things you learn. It apparently takes ATLAS at least two full days to find the optimal kernels on Threadripper. De-vendoring mbedtls from Julia teaches you it won't compile with gcc 11.1.0 unless you completely turn off warnings as errors, not exactly confidence inspiring for a core crypto library and making me question Julia's decision to use it. Building Epiphany in 20 seconds and then watching Firefox take hours just to continually hang after launching thousands of nodejs processes that consume no resources and don't seem to do anything makes me question my decision to use Firefox at all. I understand now why LFS insists on only using the ESR versions.
I was surprised to learn that systemd will not obtain an address via DHCP without the presence /etc/machine-id which systemd-machine-id-setup creates for you (needs it for IAID+DUID).