Deploy recipe loses its D-Bus dance, install.sh its macOS skip, README and site their macOS caveat; packaging, architecture and testing records follow; U0e As built filled in (D-63). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
2.4 KiB
Packaging and updates: the trial (P11a step 1)
Status 2026-10-29: the trial has not been run. It needs clean Linux,
macOS and Windows machines for the six formats (.deb, .rpm, AUR,
AppImage, .dmg, NSIS .exe), and the one machine that built step 0 is a
Linux desktop with neither a macOS nor a Windows target, no container
runtime and none of the packager tools installed. The tools are pinned in
mise.toml now (cargo-packager 0.11.8, cargo-packager-updater 0.2.3,
cargo-generate-rpm 0.21.1), so the trial is mise install and the VMs.
Nothing below is a result; it is what is known before the trial, and the
table is filled by the person who runs it.
| format | built by | installs as | updated by | signed by |
|---|---|---|---|---|
.deb |
cargo packager |
(trial) | apt repository (step 3) | (trial) |
.rpm |
cargo-generate-rpm |
(trial) | dnf repository (step 3) | (trial) |
AUR PKGBUILD |
hand-written | (trial) | the package manager | n/a |
| AppImage | cargo packager |
(trial) | cargo-packager-updater |
(trial) |
.dmg |
cargo packager |
(trial) | cargo-packager-updater |
Developer ID (step 5) |
NSIS .exe |
cargo packager |
(trial) | cargo-packager-updater |
Windows identity (step 5) |
What step 0 found about the platforms (read before the macOS and Windows rows)
The agent path was Linux-only because of the keyring; D-63 removed the
keyring on every OS (tokens are 0600 files under the data root, unit U0e),
so nothing about tokens is OS-specific now. The Windows host is a port,
not a cfg gap. Today Unix-only, found by grep (2026-10-29):
ledger-host:bridge,host,start,openerand others are#[cfg(unix)]modules;host.rs/start.rsusesetsid,umask,close_range,geteuid, Unix sockets andlibcunguarded;commands.rscallsisatty/tcgetpgrp.ledger-mcp: the owner-only socket check reads peer credentials (SO_PEERCRED,getpeereid);admin/locallisten on Unix sockets. Windows needs named pipes with a peer SID check (plan 3.9).ledger-store:ops.rstakesflocklocks;root.rshas no owner-only DACL (set_modeis a no-op off Unix) and the data root falls back to%USERPROFILE%, not the known-folder%LOCALAPPDATA%;refuse.rs(seccomp) andrenameat2are Linux-only (macOS needs its own equivalents orcfgfences).- The
portablejob runs Windows as allowed-to-fail until that port lands.