IRC channel logs
2024-05-26.log
back to list of logs
<Googulator>Very promising update - Guix running inside livebootstrap is building a kernel! <fossy>Googulator: i've polished up configurator PR a bit, whenever you have a chance a re-review would be appreciated <fossy>if it detects that it's not running under Fiwix or Linux it assumes that it is in a kernel bootstrap and pushes configuration forward to once Fiwix is running <fossy>configurator also is no-op if you use rootfs.py <fossy>I have also learned today that submodules can reference commits in PRs??? <nimaje>well, a PR is just some branch and submodules point to some commit in some git repo <fossy>yeah - it makes complete sense - just not something i realised was possible <fossy>i've checked out pr branches plenty of times (refs/pr/X/head) just silly me never made the connectiont hat i could do that wiht a submodule <Googulator>janneke: if this succeeds, then we've just removed the Linux kernel from Guix's bootstrap seed :) <Googulator>for now, I am still using the 6 bootstrap binaries bash, mkdir, tar, xz, bootstrap-guile and hex0-seed - next step is eliminating those <Googulator>janneke: do you know if the hashes of the bootstrap binaries are included in hashes of subsequent packages? <Googulator>e.g. will replacing tar with a version built in live-bootstrap cause all packages to change hash? <Googulator>(if I understand it correctly, Guix's package hashes form a Merkle tree, unlike live-bootstraps, which are only hashes of the build output) <janneke>yes, any build input change causes a rebuild <janneke>that's quite essential for reproducibility/bootstrappability <janneke>and it would be nice to be able to replace an input that has the same output hash <Googulator>unfortunately tar, xz, bash & mkdir aren't packages, so they can't be grafted (bootstrap-guile might be graftable) <Googulator>eliminating the stage0 seeds is probably the easiest, as in a Guix bootstrap, AFAIK we have everything available right from the beginning that we would need for hex0 -> binary conversion <mihi>fossy, you can also reference commits in your submodules that (currently) only exist in your own local repository. You should take care not to push the submodule references before you pushed the main commit to the named repo (or created a PR for it in case of GitHub) <Googulator>janneke: do you know a way to tell Guix to use a directory other than /tmp for building? <Googulator>right now, I'm forced to unmount /tmp, as otherwise it would fill up in one of the build steps, but unmounting /tmp isn't exactly healthy <janneke>Googulator: no, guix always uses /tmp <janneke>...but what's in a name, you can alway (bind) mount/ anything on /tmp? <Googulator>Don't many things assume /tmp is volatile and can be written to without using space on / ? <nimaje>pretty sure posix only gurantees files staying in /tmp until the file descriptor is closed <mihi>Googulator, I've set up many systems where both /tmp and /var/tmp are part of the root partition (e.g. Debian Installer does this when you choose a single partition layout), and never noticed negative consequences. When you expect not to use up real disk space, you should use /dev/shm. <matrix_bridge><cosinusoidally> Different distros do different things. Debian/Ubuntu tend to have /tmp backed by disk, but delete everything on reboot. Slackware does the same, but does not clear /tmp on reboot. iirc older versions of centos used to be disk backed. Not sure if it's the default but on Centos 7 I've seen /tmp be a tmpfs (I remember getting called out at work because someone filled up tmp with a log file, I was... <matrix_bridge>... surprised to see they had also filled half the RAM until I realised tmp was now a tmpfs) <Googulator>Another hurdle down: cmdtest's Git source in Guix points to a server that's long ago gone, so it falls back to downloading an lzipped copy from the Software Heritage archive, which can then be decompressed using lzlib. <Googulator>Guix lists lzlib as a dependency, but it never mentions that lzlib by default only builds a static library, while Guix requires a shared version! An explicit --enable-shared later, Guix is building again, with cmdtest sources successfully obtained from SH. <civodul>Googulator: that’s for guile-lzlib, right? we should clarify the need for ‘--enable-shared’ <Googulator>Guile-lzlib won't find lzlib unless it's built with --enable-shared <Googulator>If the host system uses musl, then --disable-ldconfig also needs to be passed