Skip to content

Move the feeder stack to the /opt FHS layout; pin webconfig v0.5.0 - #231

Merged
d4rken merged 5 commits into
mainfrom
dev
Jul 3, 2026
Merged

Move the feeder stack to the /opt FHS layout; pin webconfig v0.5.0#231
d4rken merged 5 commits into
mainfrom
dev

Conversation

@d4rken

@d4rken d4rken commented Jul 3, 2026

Copy link
Copy Markdown
Member

The feeder stack now installs under the /opt/airplanes FHS layout, delivered by the runtime overlay — feed scripts, the readsb/dump978 decoders, tar1090/graphs1090, and the on-device webconfig ship as overlay-managed files rather than being written across the root filesystem. A baked image-install marker lets the feed scripts detect overlay-image feeders, and the boot smoke test now catches broken Wi-Fi/SSH helper CLIs before an image ships.

Bundles webconfig v0.5.0 and pins the feed client and decoder sources to their current versions.

d4rken added 5 commits June 30, 2026 20:05
…ut (#225)

Move the on-device feeder install to a Filesystem Hierarchy Standard
layout. All first-party payload now lives under `/opt/airplanes`: the
versioned runtime overlay at `/opt/airplanes/current`, image-baked
helpers (the recovery shim, the orchestrator trampoline, the /run-resize
helper, the release-signing public key) at `/opt/airplanes/libexec`, and
per-service state nested under `/var/lib/airplanes/…` and
`/run/airplanes/…`.

The install no longer writes into `/usr/bin` or
`/usr/local/{lib,share}`. What remains in `/usr/local/bin` is a small
set of guarded CLI launchers (`apl-feed`, `apl-wifi`, `apl-ssh`,
`apl-aggregator`) plus `readsb`/`dump978-fa` operator shims; third-party
tar1090/graphs1090 read-only data keeps its conventional `share`
location. Decoders, wrappers, render-status, and the web-config payload
are reached through `/opt/airplanes/current` rather than through
symlinks squatting OS-owned trees.

The release gates enforce this going forward: the manifest validator
fails the build if any managed path lands back in `/usr/bin` or
`/usr/local/{lib,share}/airplanes`, and the executable-bit gate now
fails loudly instead of silently passing if the overlay prefix ever
drifts out of sync with the manifest.

This is a breaking change to the on-device layout — a feeder is
reflashed rather than updated in place.
Advances `runtime-overlay/config-stable` to the FHS builds so the stable
channel matches the `/opt/airplanes` layout the overlay produces: the
webconfig pin moves to the `v0.4.0` release and the feed pin to feed's
FHS commit. Both carry the FHS layout, so the stable overlay no longer
mixes FHS and pre-FHS payloads.

The advanced feed pin also ships the `airplanes-stats` units, which the
overlay globs into the payload but the manifest never linked or enabled
— so this adds their `managed_paths` symlinks and the timer to the
enable list. That makes the stats push actually run (on both channels)
and satisfies the unit-symmetry test.

Closes #226.
…228)

New feeder images never wrote the `/etc/airplanes/image-install` marker
that the feed daemons check, so an image feeder was misdetected as a
plain feed install: `IMAGE_INSTALL` stayed `0` and the baked-decoder
tuning it gates was silently skipped. Stage 06 now bakes the marker
alongside `release-channel` as a permanent `/etc` file — not
overlay-delivered payload — so the flag survives overlay updates,
rollbacks, and removal. The overlay smoke test asserts it.
The apl-wifi and apl-ssh helpers recently shipped with a stale library
path that broke every Wi-Fi and SSH operation plus backup export on
flashed devices, and no CI job noticed: the helpers' own unit suites
override the library-dir env seam, and boot-smoke never invoked them.
Add a boot-smoke probe that runs `apl-wifi list --json` and `apl-ssh
status --json` on the booted image and requires exit 0 with parseable
JSON on stdout — the exact failure mode was a sourcing error on stderr
with empty stdout. Also corrects the validator path in CLAUDE.md.
Bumps the stable-channel webconfig pin to v0.5.0, which fixes the
Wi-Fi/SSH helper library path (v0.4.0's helpers looked them up at the
pre-FHS location, breaking the Wi-Fi panel, SSH toggle, and backup
export on a stable build) and carries the Flightradar24 health/apply
fixes and the save-confirmation UI. Also advances the feed pin to the
current dev head so the stable overlay payload matches what the dev
channel ships.

Addresses #226.
@d4rken d4rken added the enhancement New feature or request label Jul 3, 2026
@d4rken
d4rken merged commit 28cb711 into main Jul 3, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant