IRC channel logs
2024-05-22.log
back to list of logs
<Googulator>oh, and somehow it would only happen in chroot mode, not with kernel bootstrap <Googulator>which means, if a build script overrides it, that override persists until either another script overrides src_get, or we move to a new bash process (by switching to a new kernel or a new build of bash) <Googulator>the only scripts that actually override src_get are kexec-linux, and musl-1.2.4 pass1 <Googulator>so from kexec-linux to musl pass2, src_get is effectively disabled <Googulator>then musl pass2 (identical to pass1 except for the patches used) resets src_get to a functional version, so when we get to bash-5.2.15 (the first package to be downloaded over the network), we can src_get again <Googulator>(and then we switch bash, so the override is cleared) <Googulator>but to make the pass2 musl dynamic, I changed the symlink to point to pass3 instead, which doesn't override src_get, so kexec-linux's override stayed in effect for bash-5.2.15 in chroot mode <stikonas>but at some point there was an issue with some traps... <Googulator>outside chroot, the override is cleared by an intervening kexec step, so it didn't happen in qemu or bare metal mode <Googulator>but the funny thing is, the entire src_get override in musl-1.2.4 pass1 is obsolete, since the preservation of source tarballs needed between Linux build and network buildup is now handled elsewhere <Googulator>except, deleting it would have triggered this bug without me monkeying around with the pass2 symlink <pabs3>Googulator: IIRC Arch merges bin/ sbin/ and Fedora/Debian are thinking about it too <pabs3>I expect like usrmerge, it will become the standard for distros <pabs3>yeah, there were some discussions in the last few months <Googulator>(although I tried to regenerate build systems, I can't vouch for pregens in this - in particular, I'm pretty sure Guix's make process at some point downloaded / will download a binary bootstrap-guile...) <Googulator>and of course, it's still building as we speak, so no guarantee it will even finish :) <stikonas>Googulator: yeah, it will be using all the Guix bootstrap seeds <stikonas>so bootstrap guile, bash, xz and a few others if I remember correctly <stikonas>if you want to bootstrap those properly it is a much harder process <Googulator>yeah - that's gonna be another task to replace those with new ones <stikonas>I think you need to replace them with your binaries. (that will cause all guix output hashes to be different) and then you ask guix to builds those guix bootstrap binaries <stikonas>not as easy as Gentoo to bootstrap without binaries... <Googulator>the eventual goal with this is a reproducible Guix install ISO image not derived from any outside binary (except for builder-hex0-x86-stage-1 of course) <Googulator>I wonder if the "graft" feature can help us here <Googulator>if I understand it correctly, it basically allows a package to be replaced with a newer version without changing the hash of dependent packages <stikonas>hmm, perhaps you can graft bootstrap-seeds then <stikonas>but I'm not familiar with grafting there <stikonas>well, I meant those seeds from bootstrap.scm... <stikonas>but yeah, hashes in guix work very differently from the ones in live-bootstrap <stikonas>in live-bootstrap it's hash of output binaries <Googulator>bootstrap-seeds is just the stage0 seed, "blessed as source" <Googulator>it seems the other binaries aren't considered packages by Guix <stikonas>yeah, so you won't be able to graft them <Googulator>(unfortunately not much info provided on how they were built...) <Googulator>Got as far as actually building and installing Guix itself, but then "guix build"s would all fail due to bwrap's "fake root" user - retrying on bare metal with real user management :) <stikonas>Googulator: there is a package bootstrap-binaries <stikonas>but you might need to use specific guix commit to build it <Googulator>it's part of the old bootstrap chain, before full source <Googulator>I mean, the actual binaries used were apparently built in 2013 <Googulator>and then uploaded to their present location in 2015 <Googulator>for now, I'd like to see a successful "guix build" or "guix install" regardless of bootstrap binaries involved, before moving further