Hi. Spectrum looks very interesting! I look forward to more progress. I just added it to https://github.com/dckc/awesome-ocap#os I tried kicking the tires... I set up the binary cache, cloned 2026-03-18 17:11 93839a1 , and then tried `nix-shell --run 'make run'`. My fans spun for a little while building rust crates, and then I got: Build completed. ------ Filesystem UUID: d14e3b49-df7d-487c-9d85-8f6f70b51af0 Filesystem total blocks: 2076633 (of 4096-byte blocks) Filesystem total inodes: 86328 Filesystem total metadata blocks: 19765 Filesystem total deduplicated bytes (of source files): 0 mkdir -p build veritysetup format \ --root-hash-file build/rootfs.verity.roothash \ -- build/rootfs build/rootfs.verity.superblock VERITY header information for build/rootfs.verity.superblock. UUID: 8d368df1-69bb-4f4b-9633-9e1555d3d492 Hash type: 1 Data blocks: 2076633 Data block size: 4096 [bytes] Hash blocks: 16352 Hash block size: 4096 [bytes] Hash algorithm: sha256 Salt: 64d5042171257c589206d50ed727edaeba98da7f7be5dfb3d38b5cf8a5c04288 Root hash: 7919b30b902cda65737af583b1b9c6defeff3a60ba668cc1012300dfd9fa9ef9 Hash device size: 66981888 [bytes] echo >> build/rootfs.verity.roothash touch -- build/verity-timestamp ../../scripts/make-gpt.sh build/live.img.tmp \ build/rootfs.verity.superblock:verity:$(../../scripts/format-uuid.sh "$(dd if=build/rootfs.verity.roothash bs=32 skip=1 count=1 status=none)"):Spectrum_'0.0.0.verity' \ build/rootfs:root:$(../../scripts/format-uuid.sh "$(head -c 32 build/rootfs.verity.roothash)"):Spectrum_'0.0.0' ../../scripts/make-gpt.sh: 9: set: Illegal option -o pipefail make: *** [Makefile:116: build/live.img] Error 2 I'm using nix on Ubuntu 24.04.4 LTS, not NixOS. As to what version of nixpkgs I might have installed or something, I still get dizzy every time I try to find out. -- Dan Connolly https://www.madmode.com
On Mon, Mar 30, 2026 at 7:44 PM Dan Connolly <dckc@madmode.com> wrote:
../../scripts/make-gpt.sh build/live.img.tmp \ build/rootfs.verity.superblock:verity:$(../../scripts/format-uuid.sh "$(dd if=build/rootfs.verity.roothash bs=32 skip=1 count=1 status=none)"):Spectrum_'0.0.0.verity' \ build/rootfs:root:$(../../scripts/format-uuid.sh "$(head -c 32 build/rootfs.verity.roothash)"):Spectrum_'0.0.0' ../../scripts/make-gpt.sh: 9: set: Illegal option -o pipefail
A small fix (attached) worked for me. Then I got a permission error, so I had to do: sudo usermod -aG kvm $USER newgrp kvm -- Dan Connolly https://www.madmode.com
Dan Connolly <dckc@madmode.com> writes:
On Mon, Mar 30, 2026 at 7:44 PM Dan Connolly <dckc@madmode.com> wrote:
../../scripts/make-gpt.sh build/live.img.tmp \ build/rootfs.verity.superblock:verity:$(../../scripts/format-uuid.sh "$(dd if=build/rootfs.verity.roothash bs=32 skip=1 count=1 status=none)"):Spectrum_'0.0.0.verity' \ build/rootfs:root:$(../../scripts/format-uuid.sh "$(head -c 32 build/rootfs.verity.roothash)"):Spectrum_'0.0.0' ../../scripts/make-gpt.sh: 9: set: Illegal option -o pipefail
A small fix (attached) worked for me.
Hi Dan, thanks for the patch and sorry for the late response. This is actually not a bashism — POSIX adopted it in POSIX.1-2024, and Ubuntu's version of dash supports it since Ubuntu 25.04 from what I can tell, which means the most recent Ubuntu LTS, 26.04, should have it too. I appreciate that 26.04 only came out a few days ago (weeks after you wrote your message), but now that it has, my instinct is that it's probably not worth supporting older LTSes. Every variance like this needs to be cleaned up at some point in the future, and the older a distro is the more likely it is that it's not going to work anyway due to old kernel bugs or dropped support from VMMs. I might be a bit too aggressive in my stance here though — what do you think?
Then I got a permission error, so I had to do:
sudo usermod -aG kvm $USER newgrp kvm
Interesting! Not much we can do about that in Spectrum, but I wonder why Ubuntu chooses to vary from the systemd default, which lets any user use KVM.
From 082882cc981566891ec17ccedd291b930502c91e Mon Sep 17 00:00:00 2001 From: Dan Connolly <dckc@madmode.com> Date: Mon, 30 Mar 2026 22:11:39 -0500 Subject: [PATCH] fix: don't rely on bash-isms in /bin/sh scripts
--- scripts/genfiles.sh | 3 ++- scripts/make-gpt.sh | 3 ++-
FWIW there are also some pipefail uses in Makefiles that would need to be taken care of. I can do this separately if you prefer if I end up applying this.
On Wed, Apr 29, 2026 at 8:57 AM Alyssa Ross <hi@alyssa.is> wrote:
I appreciate that 26.04 only came out a few days ago (weeks after you wrote your message), but now that it has, my instinct is that it's probably not worth supporting older LTSes. ... — what do you think?
The future is unevenly distributed. :) Supporting 2 generations of LTS is typical in my experience. Personally, it'll probably be 6 to 18 months before I upgrade to 26.04. I only upgraded to 24.04 in 2025-12. Another angle: I just checked https://www.shellcheck.net/ It still says: set -euo pipefail ^-- SC3040 (warning): In POSIX sh, set option pipefail is undefined. It seems cost-effective to move a little slower here. -- Dan Connolly https://www.madmode.com
participants (2)
-
Alyssa Ross -
Dan Connolly