The update bar is now a commit on quine-global-labs/plasma-desktop,
branch quine-v<Plasma version> (KDE's release plus our commits), and
kickoff-builder builds from that branch. patches/kickoff/ goes; its
standalone CMakeLists.txt moves to kickoff/. A missing branch for the
image's Plasma version fails the build with a pointer to the fork's
rebase workflow. Same plugin as before (built and compared on the
runner).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When a newer image is on the forge, Kickoff shows "A system update is
available" with Update Now (Aurora's System Update); once one is
downloaded, "Restart to finish updating" with Restart. Hidden otherwise.
- patches/kickoff/: Kickoff's QML plus UpdateBar.qml as its footer. The
kickoff-builder stage rebuilds just that plugin from the image's own
plasma-desktop version (KDE's source, via the forge's
mirror-kde-plasma-desktop) and the final stage swaps it in.
- quine-update-check (root; bootc needs it): bootc upgrade --check, then
writes /run/quine-linux/update-status.json for the bar. At boot, every
4 hours, and after uupd's nightly update.
Tested in a VM from a disk image of this tree: up to date (hidden),
available and staged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the forge's quine RPM group, where each repo's rpm.yml publishes
them. dnf checks the forge's signed repository metadata; Forgejo doesn't
sign the packages themselves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Our Aurora fork is its own repo now (quine-global-labs/aurora), built
and published by its workflow as
forge.quinefoundation.com/quine-global-labs/aurora:stable. Make that the
Containerfile's and Taskfile's default BASE_IMAGE, remove the build-base
task and the submodule, and say in the README how to build the fork
locally instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
stage-0/ is a submodule holding our fork of Aurora (upstream for now),
built with Aurora's own `just build` by the new `task build-base` into
localhost/aurora:stable. The Containerfile (stage 1) now builds FROM
${BASE_IMAGE}, which defaults to that image, instead of a pinned upstream
digest; the pin is now the submodule commit. build-image builds stage 0
first when needed, and BASE_IMAGE=ghcr.io/ublue-os/aurora:stable skips it
(the only option on macOS).
CI checks out submodules, fetches just, yq and cosign, and gets a longer
timeout for the Aurora build.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>