* feat(flatpak): publish a signed self-hosted OSTree remote on releases (#785) release.yml gains publish-flatpak-remote: it imports the per-arch .flatpak bundles into an OSTree repo, signs commits and the summary with a provisioned GPG key, regenerates static deltas and the vocahq.flatpakrepo/index page, and pushes to VocaHQ/vocalinux-flatpak served by GitHub Pages — the Homebrew-tap analogue, so installs auto-update via flatpak update instead of per-release downloads. The job is secret-gated like publish-aur (FLATPAK_GPG_PRIVATE_KEY + FLATPAK_REPO_TOKEN) and skips itself while unconfigured. Prior repo objects are pulled back in from gh-pages so clients get incremental deltas. The manifest now declares branch: stable and the flatpakrepo declares DefaultBranch=stable + RuntimeRepo for the Flathub GNOME runtime. Docs: new docs/FLATPAK_REMOTE.md (one-time setup, rotation, verification); README, docs/INSTALL.md, packaging/flatpak/README.md and the release notes now lead with the remote and keep release bundles as the no-auto-update fallback. tests/test_release_integrity.py pins the job's shape. Closes #785 * fix(flatpak-remote): publish a .flatpakref and gate the remote to stable tags - needs build-and-release so the remote cannot lead the GitHub Release - stable tags only: prereleases must not reach `flatpak update` - probe gh-pages before the empty-repo fallback: a transient checkout failure no longer discards remote history - publish com.vocalinux.Vocalinux.flatpakref (RuntimeRepo lives there, not on .flatpakrepo) plus vocahq.gpg, so clean installs resolve the GNOME runtime and key rotation works via remote-modify --gpg-import - gate the release-notes remote instructions on the publish actually running; the bundle path stays primary otherwise - document rotation via remote-modify --gpg-import / remote-delete --force and the explicit Flathub setup step --------- Co-authored-by: Jatin K Malik <jatinkrmalik@gmail.com>
53 lines
1.6 KiB
HTML
53 lines
1.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>VocaHQ Flatpak remote</title>
|
|
<style>
|
|
body {
|
|
max-width: 42rem;
|
|
margin: 3rem auto;
|
|
padding: 0 1rem;
|
|
font-family: system-ui, sans-serif;
|
|
line-height: 1.6;
|
|
}
|
|
code,
|
|
pre {
|
|
background: #f2f2f2;
|
|
border-radius: 4px;
|
|
}
|
|
pre {
|
|
padding: 1rem;
|
|
overflow-x: auto;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>VocaHQ Flatpak remote</h1>
|
|
<p>
|
|
Self-hosted, signed OSTree repository for
|
|
<a href="https://vocalinux.com">Vocalinux</a> — published on every stable
|
|
tagged release, so installs auto-update via <code>flatpak update</code>.
|
|
</p>
|
|
<pre><code>flatpak install __FLATPAKREF_URL__</code></pre>
|
|
<p>
|
|
The <code>.flatpakref</code> adds the <code>vocahq</code> remote and
|
|
resolves the GNOME runtime through Flathub in one step. To wire it up by
|
|
hand instead:
|
|
</p>
|
|
<pre><code>flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
|
flatpak remote-add --if-not-exists vocahq __FLATPAKREPO_URL__
|
|
flatpak install vocahq com.vocalinux.Vocalinux</code></pre>
|
|
<p>
|
|
The GNOME runtime still comes from Flathub — the
|
|
<code>.flatpakref</code> declares <code>RuntimeRepo</code> so flatpak
|
|
finds it there. Vocalinux itself is not on Flathub.
|
|
</p>
|
|
<p>
|
|
<a href="https://github.com/VocaHQ/vocalinux">Source code</a> ·
|
|
<a href="__REMOTE_URL__">Repository index</a>
|
|
</p>
|
|
</body>
|
|
</html>
|