mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-07-30 19:46:17 +00:00
New self-contained desktopApp/packaging/flatpak/flathub/ directory whose contents are copied verbatim into the flathub per-app repo at submission time (Flathub has no separate accounts — submission is a GitHub PR): - manifest builds from the published GH Release tarball (pinned to v1.12.6 url + sha256 from the release asset digest) instead of the local type:dir tree CI uses — Flathub build servers must fetch all sources themselves - x-checker-data (json type, is-main-source) on the archive source so flatpak-external-data-checker auto-PRs url/sha256 bumps and metainfo <release> entries on every new GitHub Release - own metainfo copy carrying the permanent <releases> history Flathub requires (the CI variant keeps injecting its entry at build time); screenshots remain the documented submission blocker - flathub.json restricting builds to x86_64 (no aarch64 tarball exists and jpackage cannot cross-compile one) Verified locally: built the flathub manifest end-to-end from the real v1.12.6 tarball (sha256 enforced by flatpak-builder), installed it, and booted the actual app inside the sandbox under Xvfb — UI rendered and the embedded Tor daemon spawned. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYfNxhPZC3WRrn82Dm2Cb4
99 lines
4.0 KiB
YAML
99 lines
4.0 KiB
YAML
# Flathub submission manifest for Amethyst Desktop.
|
|
#
|
|
# Unlike ../com.vitorpamplona.amethyst.Desktop.yml (which packages the locally
|
|
# built tree for release CI), this variant builds from the published GitHub
|
|
# Release tarball — Flathub's build servers must be able to fetch every source
|
|
# themselves. This directory is copy-ready: everything in it (manifest,
|
|
# metainfo, desktop entry, icon, flathub.json) is exactly what gets committed
|
|
# to the flathub per-app repo at submission time.
|
|
#
|
|
# Update flow after each Amethyst release: bump url + sha256 on the archive
|
|
# source and append a <release> entry to the metainfo. The x-checker-data
|
|
# block below lets Flathub's flatpak-external-data-checker bot do both
|
|
# automatically once the app is published.
|
|
|
|
app-id: com.vitorpamplona.amethyst.Desktop
|
|
runtime: org.freedesktop.Platform
|
|
runtime-version: '24.08'
|
|
sdk: org.freedesktop.Sdk
|
|
command: amethyst-desktop
|
|
|
|
add-extensions:
|
|
org.freedesktop.Platform.ffmpeg-full:
|
|
directory: lib/ffmpeg
|
|
version: '24.08'
|
|
add-ld-path: .
|
|
autodownload: true
|
|
autodelete: false
|
|
|
|
cleanup-commands:
|
|
- mkdir -p /app/lib/ffmpeg
|
|
|
|
finish-args:
|
|
- --share=network
|
|
- --share=ipc
|
|
# Compose Desktop renders through AWT/skiko, which is X11-only on Linux
|
|
# (runs under XWayland on Wayland sessions). fallback-x11 + wayland would
|
|
# leave the app without a usable display socket on Wayland sessions, so
|
|
# grant x11 unconditionally.
|
|
- --socket=x11
|
|
- --socket=pulseaudio
|
|
- --device=dri
|
|
- --filesystem=xdg-download
|
|
- --filesystem=xdg-pictures
|
|
- --talk-name=org.freedesktop.Notifications
|
|
- --talk-name=org.freedesktop.secrets
|
|
# GStreamer plugin/cache paths (org.freedesktop.Platform exposes them by default).
|
|
- --env=GST_PLUGIN_SYSTEM_PATH=/usr/lib/x86_64-linux-gnu/gstreamer-1.0
|
|
|
|
# No openjdk module / sdk-extension: the jpackage tree in the release tarball
|
|
# already bundles its own trimmed JRE under Amethyst/lib/runtime/.
|
|
modules:
|
|
- name: amethyst-desktop
|
|
buildsystem: simple
|
|
build-commands:
|
|
# Drop the jpackage-emitted self-contained tree into /app/lib/Amethyst.
|
|
# Wrapper at /app/bin/amethyst-desktop forwards args.
|
|
- mkdir -p /app/lib/Amethyst
|
|
- cp -r ./Amethyst/* /app/lib/Amethyst/
|
|
- install -Dm755 amethyst-desktop.sh /app/bin/amethyst-desktop
|
|
- install -Dm644 com.vitorpamplona.amethyst.Desktop.metainfo.xml -t /app/share/metainfo/
|
|
- install -Dm644 com.vitorpamplona.amethyst.Desktop.desktop -t /app/share/applications/
|
|
- install -Dm644 icons/512/com.vitorpamplona.amethyst.Desktop.png -t /app/share/icons/hicolor/512x512/apps/
|
|
sources:
|
|
# jpackage self-contained tree published by release CI. The tarball
|
|
# carries a single Amethyst/ top-level dir — keep it (strip-components
|
|
# defaults to 1, which would flatten it away).
|
|
- type: archive
|
|
url: https://github.com/vitorpamplona/amethyst/releases/download/v1.12.6/amethyst-desktop-1.12.6-linux-x64.tar.gz
|
|
sha256: 42250027857b37f184ebca52bf6124ff6524be4bc15fedf819e4acaca8bc9538
|
|
strip-components: 0
|
|
# flatpak-external-data-checker: watches GitHub Releases and opens
|
|
# update PRs against the flathub repo (bumps url/sha256 above and,
|
|
# via is-main-source, appends the <release> entry to the metainfo).
|
|
x-checker-data:
|
|
type: json
|
|
is-main-source: true
|
|
url: https://api.github.com/repos/vitorpamplona/amethyst/releases/latest
|
|
version-query: .tag_name | sub("^v"; "")
|
|
timestamp-query: .published_at
|
|
url-query: '"https://github.com/vitorpamplona/amethyst/releases/download/"
|
|
+ .tag_name + "/amethyst-desktop-" + (.tag_name | sub("^v"; ""))
|
|
+ "-linux-x64.tar.gz"'
|
|
|
|
- type: script
|
|
dest-filename: amethyst-desktop.sh
|
|
commands:
|
|
- "#!/bin/sh"
|
|
- exec /app/lib/Amethyst/bin/Amethyst "$@"
|
|
|
|
- type: file
|
|
path: com.vitorpamplona.amethyst.Desktop.metainfo.xml
|
|
|
|
- type: file
|
|
path: com.vitorpamplona.amethyst.Desktop.desktop
|
|
|
|
- type: dir
|
|
path: icons
|
|
dest: icons
|