Skip to main content

max / alloy

3.0 KB · 77 lines History Blame Raw
1 # What fw12's ROLE needs, as opposed to which dials its mint sets.
2 #
3 # fw12 is fw13's portable mirror (2026-09-07). The recipes say what goes in and
4 # this says what has to come out, and the point of having both is that every
5 # dial was correct on fw13 on 2026-09-04 while the image still could not build
6 # a Tauri app or restore a prod dump, because nothing anywhere said those were
7 # things the machine has to be able to do.
8 #
9 # THIS FILE IS DELIBERATELY fw13's, MINUS NOTHING. That is the mirror stated as
10 # an assertion rather than as an intention: if the two recipes drift, the mint
11 # that lost a capability fails its preflight instead of booting and
12 # disappointing somebody a week later on a train. Where fw12 genuinely differs
13 # from fw13 it is identity and hardware, and neither is a capability, so
14 # neither belongs here.
15 #
16 # The one thing fw13 has that this does not assert is a role rather than a
17 # capability: fw13 is Sando's controller and the crates.io publish host because
18 # it is always on. fw12 can do both and is not asked to.
19 #
20 # Syntax: bin:<name>, pkgconfig:<module>, file:<glob>.
21
22 # --- the tree's own builds
23 bin:cargo
24 bin:rustc
25 bin:gcc # arrives with rust; a mint without it has no C toolchain
26 bin:git # the publish recipe runs `git describe --exact-match`
27
28 # --- an arbitrary checkout, which is what the `c` dial is for. Named because
29 # the compilers and the build systems are the whole of what that dial promises,
30 # and a promise nothing checks is one that quietly stops being true.
31 bin:g++
32 bin:make
33 bin:cmake
34 bin:meson
35
36 # --- Go, blessed 2026-09-07 for Make Creative software where it is warranted.
37 bin:go
38
39 # --- the frontends Sando's code_smoke gate compiles
40 bin:node
41 bin:npm
42
43 # --- a restored production dump, same as fw13. The extensions are not
44 # optional: a restore stops at the first CREATE EXTENSION it cannot satisfy.
45 bin:psql
46 bin:postgres
47 bin:initdb
48 file:*/pgcrypto.control
49 file:*/pg_trgm.control
50
51 # --- the four Tauri apps. webkit2gtk is the one that matters; the rest are
52 # what cargo-tauri and linuxdeploy reach for. openssl is here for a second
53 # reason worth naming: sccache links it, and on a fw12 without this dial
54 # `cargo install sccache` failed and took four other recorded tools with it.
55 pkgconfig:webkit2gtk-4.1
56 pkgconfig:gtk+-3.0
57 pkgconfig:libsoup-3.0
58 pkgconfig:librsvg-2.0
59 pkgconfig:openssl
60
61 # --- the fleet control plane. ops-exec spawns the binary by name, so a machine
62 # without it cannot collect a build from another host or hand a release over.
63 bin:rsync
64 bin:ssh
65
66 # --- release signing. dist/sign-artifacts.sh hard-fails without minisign, and
67 # the key material is a $HOME restore rather than image content, so the binary
68 # is the part an image can be asked for.
69 bin:minisign
70
71 # --- secrets. _private keeps its .env-shaped files under sops and its opaque
72 # blobs, minisign's own signing key included, as whole-file .age. Without the
73 # binary a machine holds ciphertext it cannot open, and nothing says so until
74 # somebody needs a key. The identity itself is copied by hand and stays out of
75 # the image.
76 bin:age
77