Spectrum status update, April 2022
The big news this month is that Puck is now working with us as a Wayland developer[1]. We also welcomed a bunch of new people into the chat channel who were interested in building Spectrum to try it out for themselves, and contributing to it or related projects, which is absolutely fantastic. [1] https://spectrum-os.org/lists/archives/spectrum-discuss/20220416092718.isdz7... Here's what I did in April: Binary Cache ════════════ Using only the cache.nixos.org binary cache, building Spectrum and all its many dependencies could take more than 24 hours on commodity hardware, which was a big turn-off to the people who've been trying to build Spectrum for themselves recently. To mitigate this, this month I put together a binary cache solution for Spectrum[2], and wrote documentation explaining how to use it[3]. Thanks again to Daniel Kuehn (lejonet) for providing the storage hosting for the binary cache. [2] https://spectrum-os.org/lists/archives/spectrum-devel/20220414141547.rafkens... [3] https://spectrum-os.org/git/spectrum/tree/Documentation/binary-cache.adoc Hardware support ════════════════ This month, quite a few people were interested in testing Spectrum on their hardware. This surfaced quite a few issues that have now been resolved: • Avoid EFI chainloading in the combined image.[4] • Use a bigger kernel buffer for uevents.[5] As well as one issue still in flight: • Rebroadcast uevents not handled by mdevd.[6] And one issue still being investigated. Additionally, I started to look into what Aarch64 support in Spectrum would look like. I was surprised to discover that Nixpkgs' musl stdenv hadn't even bootstrapped on aarch64 for three years! So I commited some hacks to fix that[7], and put together a follow-up that will make it maintainable going forward[8]. [4] https://spectrum-os.org/git/spectrum/commit/?id=b1ff26eb27ea905357f8bf217d0f... [5] https://spectrum-os.org/git/spectrum/commit/?id=0b3b366653030de498e73e51b1c1... [6] https://spectrum-os.org/lists/archives/spectrum-devel/20220424080020.32216-1... [7] https://github.com/NixOS/nixpkgs/pull/169764 [8] https://github.com/NixOS/nixpkgs/pull/169793 Documentation ═════════════ I spent a lot of this month working on documentation. Having good documentation is going to be really important for bringing on new contributors. I expect to spend a bunch of time on this next month, too. • New documentation: a UUID reference[9], and information about the binary cache[3]. • A proper documentation site, based on Just the Docs[10]. Unfortunately not quite available online yet, but you can see it with nix-shell –run 'jekyll serve' in the Documentation directory. [9] https://spectrum-os.org/git/spectrum/tree/Documentation/uuid-reference.adoc [10] https://just-the-docs.github.io/just-the-docs/ Miscellaneous ═════════════ • I did a short development stream.[11] • Updated Nixpkgs, reducing our patch count by half. • Switched to s6-linux-init from a hand-rolled script, eliminating a longstanding race condition during boot. • Adopted systemd-boot, which will make Spectrum more dual-boot friendly.[12]. • Dropped s6-portable-utils dependency[13], and OVMF development dependency[14]. • Various cleanups to licensing metadata. • Fixed building Spectrum on Ubuntu[15]. • Minor cleanups to VM startup[16][17][18][19]. This is preparatory work in advance of new VM features. [11] https://diode.zone/w/p2Tythup7zJTSAgiGbJ331 [12] https://spectrum-os.org/git/spectrum/commit/?id=b72a136e9ae265f61f5c6dbbd373... [13] https://spectrum-os.org/git/spectrum/commit/?id=04060e0a59c072315b7b5106af27... [14] https://spectrum-os.org/git/spectrum/commit/?id=969842dd0b86922383b3b5e03065... [15] https://spectrum-os.org/git/spectrum/commit/?id=a567476380303fe0ccb0c136ad7e... [16] https://spectrum-os.org/git/spectrum/commit/?id=ab9d7bf6d7e7b4cdd77933d57992... [17] https://spectrum-os.org/git/spectrum/commit/?id=9226197f1e9b9f17caf501b2a80b... [18] https://spectrum-os.org/git/spectrum/commit/?id=0543017145207d9ea41b61407225... [19] https://spectrum-os.org/git/spectrum/commit/?h=32b701064a15f0045bce2d811a94a... Spectrum related upstream Nixpkgs commits ═════════════════════════════════════════ • s6-rc: 0.5.3.0 -> 0.5.3.1 (1ee8b37a851) s6: 2.11.0.1 -> 2.11.1.0 • (bd6d4a6e67f) s6-portable-utils: 2.2.3.4 -> 2.2.4.0 (a3924d70655) • utmps: 0.1.1.0 -> 0.1.2.0 (92b74337544) skalibs: 2.11.1.0 -> • 2.11.2.0 (5eafa6cc7a7) patchelf: clarify license (3a73bf2b6e3) • pkgsMusl.coreutils: fix build on aarch64 (661dfd83478) patchelf: use • 0.13.x on aarch64+musl (e22d0b49a95) patchelf_0_13: init at 0.13.1 • (3838a0a7e7e) cloud-hypervisor: 22.1 -> 23.0 (430c56976fe) busybox: • 1.34.1 -> 1.35.0 (7d83997eb49) crosvm: 99.14468.0.0-rc1 -> • 100.14526.0.0-rc1 (40f140ad872) crosvm.updateScript: generate • Cargo.lock (26d66fbfa9b) squashfs-tools-ng: 1.1.3 -> 1.1.4 • (fd3f39303b4) qemu: remove redundant copy of qemu-ga (665bb90fc3f) • rust: 1.59.0 -> 1.60.0 (6d49a350807) openssh: 8.9p1 -> 9.0p1 • (4cfdd982653) busybox: fix CVE-2022-28391 (ac60e92b15a) Pending Spectrum related Nixpkgs PRs ════════════════════════════════════ • release.nix: build Musl native bootstrap tools (#169793) Spectrum infra related upstream Nixpkgs commits ═══════════════════════════════════════════════ • nixos/mailman: ensure Postfix is started after Mailman (572131c6a94) • ipxe: 1.21.1 -> unstable-2022-04-06 (7d691eadc37) • nixos/postfix: pull setup into its own unit (fb2fa1b50fe) • nixos/mailman: remove obsolete setting (e7c301df52e) • nixos/mailman: improve empty webHosts error (f4a0bb8334d)
Whoops! Non-garbled version of the "Spectrum related upstream Nixpkgs commits" section: • s6-rc: 0.5.3.0 -> 0.5.3.1 (1ee8b37a851) • s6: 2.11.0.1 -> 2.11.1.0 (bd6d4a6e67f) • s6-portable-utils: 2.2.3.4 -> 2.2.4.0 (a3924d70655) • utmps: 0.1.1.0 -> 0.1.2.0 (92b74337544) • skalibs: 2.11.1.0 -> 2.11.2.0 (5eafa6cc7a7) • patchelf: clarify license (3a73bf2b6e3) • pkgsMusl.coreutils: fix build on aarch64 (661dfd83478) • patchelf: use 0.13.x on aarch64+musl (e22d0b49a95) • patchelf_0_13: init at 0.13.1 (3838a0a7e7e) • cloud-hypervisor: 22.1 -> 23.0 (430c56976fe) • busybox: 1.34.1 -> 1.35.0 (7d83997eb49) • crosvm: 99.14468.0.0-rc1 -> 100.14526.0.0-rc1 (40f140ad872) • crosvm.updateScript: generate Cargo.lock (26d66fbfa9b) • squashfs-tools-ng: 1.1.3 -> 1.1.4 (fd3f39303b4) • qemu: remove redundant copy of qemu-ga (665bb90fc3f) • rust: 1.59.0 -> 1.60.0 (6d49a350807) • openssh: 8.9p1 -> 9.0p1 (4cfdd982653) • busybox: fix CVE-2022-28391 (ac60e92b15a)
participants (1)
-
Alyssa Ross