IRC channel logs

2026-06-16.log

back to list of logs

<stabbles>I have rephrased the readme of https://github.com/haampie/shpack, hopefully everybody is happy now. The project now gets to a feature-rich dynamically linked GCC 16 with glibc 2.43 in less than 30 minutes.
<stabbles>I have made it `bwrap`-only for convenience, I could probably make it depend less on that tool, but the fact that it has bind mounts and tmpfs is nice
<alganet>stabbles: awesome!
<alganet>I've been playing with shpack privately, mostly trying to replace dash for hs (my own m2-planet only posix-ish shell)
<alganet>One thing that became obvious is that early bootstrap (builder-hex0 based) cannot glob, and that's why most things have explicit file lists in that phase :/
<alganet>putting getdents on builder-hex0 is in theory feasible, I might try it
<alganet>still want to avoid pipes and other complications that would oversize the kernel too much though (hs emulates them instead)
<alganet>I'll come back to this in a few weeks with some news (or news of the failure in doing so)
<xentrac>I don't think any rephrasing was necessary, and I don't think it's okay to criticize new contributors for such things, particularly in such harsh terms
<alganet>stabbles: the separation between launcher and provisioner is a nice touch, you didn't mention it but I see it as a major win that enables reuse
<matrix_bridge><Jeremiah Orians> stabbles: I am happy that you are working on bootstrapping. It is good for us to have alternatives
<xentrac>I'm extremely impressed with under three minutes
<lanodan>shpack looks neat, will probably grab some stuff for https://hacktivis.me/git/bootstrap-initrd/ (my own experiments, so far seeded with musl+tcc from Alpine as a compromise, and only curl got autotools)
<stabbles>Thanks for the positive feedback :) feel free to use the ideas in other projects
<aggi>maybe, a little context
<aggi>few weeks ago i was looking for a FreeDOS bootstrap, and guess what some guy on github claims it's been done
<aggi>then, as usual, git-clone.... what am I seeing, a freedos-binary.img thrown at qemu, a small shell script to launch this
<aggi>and this has been called "bootstrap"
<aggi>i was skimming the latest README of shpack, and would consider it a bit misleading still (although that's nowhere near the blasphemy mentioned)
<aggi>other than the absent option for a full native stage0 bootstrap _without_ linux kernel (since mes-libc got removed and other limitations)
<aggi>too the argument for "modern systems" (very expensive ones for that matter) is a little vague
<aggi>in particular, some high-power ryzen can run x86_32 just fine, so that's no reason to exclude x86_32 from shpack
<aggi>and it's too this ARCH which is relevant to "diverse double compilation", to crosscheck hashes match for it
<aggi>furthermore, it's those "modern" systems in particular which are increasingly painful to cope with (UEFI, other firmwares PSP/IntelME)
<aggi>that's no criticism of stabbles and his great work on shpack/mes-replacement
<aggi>but, you see, IntelME, this thing was known to be a complete X86_32 subsystem (Intel Galileo plus Minix) soldered onto "modern" mainboards
<aggi>so, naturally, even with such modern systems, that's where bootstrapping naturally should begin, to make this Intel Galileo x86_32 bootstrappable first
<aggi>but nowadays we've not at least got access to this IntelME thing
<aggi>then, since the Ryzen thing got praised in the README, without going into detail further, the last half-way decent offering from AMD was their 15h bulldozer era systems with coreboot support (no need for this PSP hence which is a non-bootstrappable aarch32?/64?)
<stabbles>It'd be nice to drop the dependency on Linux, but personally I do not have clear use case for it. The target audience is HPC users who do not own hardware and do not have root privileges. So they have to trust the kernel, drivers, firmware, and sometimes communication libraries anyways. What it would buy them is bootstrapping a recent glibc with
<stabbles>certain performance improvements of libmvec if the system version is old. The next experiment I wanna do is drop bwrap/chroot/unshare/namespaces in favor of a Linux Landlock sandbox to just restrict filesystem and network access. That way you could bootstrap a recent C/C++ compiler toolchain/runtime while still using system binaries. That doesn't
<stabbles>mean I would rule out eventually looking into running it on bare metal, it's just not a priority.
<xentrac>the term "bootstrap" is sort of unfortunate in that it has a couple of meanings that are opposites, like "sanction" (which can mean "to approve" or "to punish") and "livid" (which can mean "red" or "white")
<matrix_bridge><Jeremiah Orians> Fair, but just like renaming free software to Libre Software; names have a way of sticking
<xentrac>yeah. I just mean that might explain why "a FreeDOS bootstrap" was the opposite of what aggi interpreted it to mean
<xentrac>it's probably not intentionally misleading, just easily confused terminology
<stabbles>For what it's worth, the website https://www.bootstrappable.org/projects.html uses similar terminology: GNU+Linux from scratch. I don't mind.
<xentrac>yes! I think you're fine and aggi should apologize