IRC channel logs

2023-12-03.log

back to list of logs

<Googulator>Of all the various things we build in linux / sysc before we build openssl, are all of those actually prerequisites of openssl?
<Googulator>I was thinking of putting openssl and all of its requirements into srcfs (bringing them over into the Linux environment via initramfs), and *mandating* (not merely allowing) https for all subsequent downloads
<Googulator>This way, we remove the NIC & its firmware from the list of things that could potentially backdoor the process
<Googulator>this would solve our HTTP download woes, and provide additional security - at the cost of a larger srcfs
<Googulator>if the NIC only ever sees ciphertext, it can't inject a backdoor unless it breaks the cipher
<Googulator>fossy: found another issue - in the "bc" build, ./fix-libmath-h fails with "UNKNOWN ARGUMENT" -> Error 1
<Googulator>"UNKNOWN ARGUMENT" in all caps is a kaem error - but we should be way past using kaem at this point
<Googulator>fix-libmath-h is missing a shebang, and for whatever reason, make decides to fall back to using kaem here
<Googulator>I suggest a patch to bc which adds the missing shebang, but it's worth investigating why make chooses kaem in kernel-bootstrap, but bash otherwise
<Googulator>fossy: also, is pass2.sh ever used in bash-2.05b? In the manifest (and also in the pre-refactor sysa files), I only ever see pass1.kaem being called
<Googulator>the next bash built after that is 5.2.15, which is the final one
<GoogulatorMobile>fossy: found it - $SHELL is not set in env, and kaem is hardcoded to set itself as $SHELL if it's not explicitly set
<GoogulatorMobile>You'll need to either add an "export SHELL=/usr/bin/bash" to update_env.sh, or drop the hardcoded default from kaem (why is it even needed?)
<fossy>GoogulatorMobile: yeah, I found that locally as well, i've got that fixed now, thanks :)
<fossy>pass2.sh may not be used? i think it might be an older relic
<GoogulatorMobile>fossy: do you also have a fix for "cp: cannot stat /init.3: No such file or directory" already?
<GoogulatorMobile>It hits right after Linux is built
<Googulator>ok, turns out, for some reason, no init.3 is ever generated
<Googulator>or rather, it's generated, and then lost to the builder-hex0 -> fiwix kexec
<Googulator>not included in fiwix-file-list.txt
<fossy>Googulator: i just pushed my most recent changes to the simplify branch. that is also fixed there
<Googulator> https://github.com/fosslinux/live-bootstrap/blob/simplify/rootfs.py#L39 looks like this is the next issue to tackle
<Googulator>"hdb1" won't exist in linux
<Googulator>is this a leftover from disk-in-Fiwix?
<Googulator>I'm gonna attempt with this changed to "sda"
<Googulator>(I already have a fix in place for creating sda1)
<Googulator>initrd_size: 0
<Googulator>ouch!
<hl>got spare 37C3/CCC tickets if anyone wants them
<fossy>Googulator: yes, that does not currently work, i am working on that right now
<fossy>don't worry too much about that right now, it is incomplete
<Googulator>managed to bypass that - now Linux kernel boots, but dies due to no initramfs and no rootfs
<Googulator>also, why the switch to ext3 file system?
<fossy> https://github.com/fosslinux/live-bootstrap/pull/334/files#diff-e3cf7b4ae6ba10383ad9b192d90d49c82c4435b0b5740bf213691c699f277200R45-R52
<fossy>explains that
<fossy>if that doesn't quite answer it feel free to ask
<matrix_bridge><Andrius Štikonas> Googulator: bash pass2 was an attempt to get interactive bash earlier
<matrix_bridge><Andrius Štikonas> rickmasters had some issues with it on fiwix
<matrix_bridge><Andrius Štikonas> So it got disabled for now
<Googulator>fossy: but that's for the "external" disk, which is (AFAIK) currently unused
<Googulator>there's no reason to force the root disk to be ext3 too
<Googulator>even if we start using external
<Googulator> https://github.com/cosinusoidally/tcc_bootstrap_alt/commit/b90763c40626b50d83cd6c2c5d2f1eb1fcb681d4 nice progress!
<Googulator>.26 is the one we currently build with mes, right?
<Googulator>(tcc 0.9.26)
<Googulator>in fact, even better: https://github.com/cosinusoidally/tcc_bootstrap_alt/blob/dev/tcc_27/run_27.kaem
<Googulator>Can tcc 0.9.27 build meslibc?
<Googulator>alternatively, do we need meslibc at all, or can we just go straight to musl 1.1.24 here?
<Googulator>fossy: I think I found why initramfs generation is failing
<Googulator>gen_init_cpio is expecting a very different file list format than what we give it
<Googulator>it seems disabling interrupts had a pleasant side effect in qemu: during srcfs read, the lines printed out are no longer missing their last character & newline
<Googulator>so qemu wasn't as unaffected by the interrupt problem as I thought, it just manifested in a more cosmetic way
<Googulator>as soon as interrupts are reenabled for userspace, the missing character error comes back
<Googulator>since nothing in builder-hex0's "userspace" will ever interact with hardware other than the CPU or the RAM, except via 16-bit BIOS routines, and "int 80h" does work even if interrupts are otherwise disabled, I think it's best to just keep interrupts disabled for the entirety of builder-hex0's execution (with the exception of 16-bit routines where
<Googulator>BIOS is able to handle interrupts)
<Googulator>then, kexec-fiwix can perform a "sti" in its trampoline right before jumping to Fiwix proper
<Googulator>it can do that because in builder-hex0, everything runs in ring 0 (hence "userspace" in scare quotes)
<Googulator>and from that point on, we don't ever need to rely on BIOS for anything, because Fiwix is a true kernel with its own drivers
<Googulator>alternatively, we could implement interrupt proxying, which would also simplify things like disk or console access - we could just "int 13h" or "int 10h" straight from protected mode
<Googulator>unfortunately x86 has no instruction like "int al", but it can still be done using self-modifying code