Skip to main content

max / alloy

2.7 KB · 67 lines History Blame Raw
1 # What fw13's ROLE needs, as opposed to which dials its mint sets.
2 #
3 # build/hosts/fw13.env says LANGS=rust,js DB=postgres16 GUI=tauri. That is the
4 # input. This file is the output: the capabilities that have to exist on the
5 # other side, checked by build/preflight.sh against what those dials install.
6 #
7 # The distinction is the whole point. Every dial was set correctly on 2026-09-04
8 # and the image still could not build a Tauri app or restore a prod dump, because
9 # nothing anywhere said those were things fw13 has to be able to do.
10 #
11 # Syntax: bin:<name>, pkgconfig:<module>, file:<glob>.
12
13 # Four roles ride on this machine (see fw13.env): Bento's x86_64 builder, Bento's
14 # controller for astra/mbp/windows-x86, the crates.io publish host, and Sando's
15 # controller with the PostgreSQL its gates restore into.
16
17 # --- the tree's own builds
18 bin:cargo
19 bin:rustc
20 bin:gcc # arrives with rust; a mint without it has no C toolchain
21 bin:git # the publish recipe runs `git describe --exact-match`
22
23 # --- Go, blessed 2026-09-07 for Make Creative software where it is warranted.
24 # Asserted before anything in the tree is Go, deliberately: a blessing that the
25 # build hosts cannot honour is one somebody discovers at the wrong moment.
26 bin:go
27
28 # --- Sando's code_smoke gate builds two TypeScript frontends
29 bin:node
30 bin:npm
31
32 # --- Sando's migration_check and cargo_test restore a prod dump over a socket.
33 # The extensions are not optional: a restore stops at the first CREATE EXTENSION
34 # it cannot satisfy. Measured against /srv/sando/backups on 2026-09-04 — the
35 # server dump declares pgcrypto and pg_trgm, the multithreaded one pg_trgm.
36 bin:psql
37 bin:postgres
38 bin:initdb
39 file:*/pgcrypto.control
40 file:*/pg_trgm.control
41
42 # --- the four Tauri apps. webkit2gtk is the one that matters; the rest are what
43 # cargo-tauri and linuxdeploy reach for. No Alloy image shipped any of them until
44 # the GUI dial existed.
45 pkgconfig:webkit2gtk-4.1
46 pkgconfig:gtk+-3.0
47 pkgconfig:libsoup-3.0
48 pkgconfig:librsvg-2.0
49 pkgconfig:openssl
50
51 # --- the fleet control plane. ops-exec spawns the binary by name, so a machine
52 # without it cannot collect a build from another host or hand a release over.
53 bin:rsync
54 bin:ssh
55
56 # --- release signing. Both Linux recipes call dist/sign-artifacts.sh, which
57 # hard-fails without minisign, and the key material is a $HOME restore rather
58 # than image content — so the binary is the part an image can be asked for.
59 bin:minisign
60
61 # --- secrets. _private keeps its .env-shaped files under sops and its opaque
62 # blobs, minisign's own signing key included, as whole-file .age. Without the
63 # binary a machine holds ciphertext it cannot open, and nothing says so until
64 # somebody needs a key. The identity itself is copied by hand and stays out of
65 # the image.
66 bin:age
67