linux: validate Flatpak metadata #229

Open
linux wants to merge 3 commits from linux/flatpak-metadata-validation into main
Member

Summary

  • add a standalone Flatpak metadata validator for AppStream, desktop-entry, and application-ID consistency
  • run metadata validation before every flatpak-builder invocation through Scripts/build-flatpak.sh
  • add OARS 1.1 and build 177 release metadata, classify the app as GTK, install scalable/symbolic SVG icons, and provide AppStream's librsvg loader
  • document the local validation command

Anchored in KSE-0078 and KSE-0087.

Validation

  • bash -n Scripts/validate-flatpak-metadata.sh Scripts/build-flatpak.sh
  • shellcheck Scripts/validate-flatpak-metadata.sh Scripts/build-flatpak.sh
  • nix develop --accept-flake-config .#flatpak-ci --command ./Scripts/validate-flatpak-metadata.sh
  • direct missing-tool behavior: warning and exit 0 outside CI; hard failure under CI=true
  • Forge Build: Linux succeeded: action run 19754
  • jq -e '."app-id" == "store.key.application"' Linux/App/store.key.application.json

Before: AppStream reported content-rating-missing and releases-info-missing; desktop validation emitted the GTK category hint. After: those findings are gone and the validator exits 0 with no warnings or hints.

Redmine: https://todo.key.store/issues/19

## Summary - add a standalone Flatpak metadata validator for AppStream, desktop-entry, and application-ID consistency - run metadata validation before every `flatpak-builder` invocation through `Scripts/build-flatpak.sh` - add OARS 1.1 and build 177 release metadata, classify the app as GTK, install scalable/symbolic SVG icons, and provide AppStream's librsvg loader - document the local validation command Anchored in KSE-0078 and KSE-0087. ## Validation - `bash -n Scripts/validate-flatpak-metadata.sh Scripts/build-flatpak.sh` - `shellcheck Scripts/validate-flatpak-metadata.sh Scripts/build-flatpak.sh` - `nix develop --accept-flake-config .#flatpak-ci --command ./Scripts/validate-flatpak-metadata.sh` - direct missing-tool behavior: warning and exit 0 outside CI; hard failure under `CI=true` - Forge `Build: Linux` succeeded: action run 19754 - `jq -e '."app-id" == "store.key.application"' Linux/App/store.key.application.json` Before: AppStream reported `content-rating-missing` and `releases-info-missing`; desktop validation emitted the GTK category hint. After: those findings are gone and the validator exits 0 with no warnings or hints. Redmine: https://todo.key.store/issues/19
linux: validate Flatpak metadata (KSE-0087)
Some checks failed
Build: Linux / Build (Linux x86_64) (pull_request) Failing after 2m57s
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been skipped
d3ad9d0747
linux force-pushed linux/flatpak-metadata-validation from d3ad9d0747
Some checks failed
Build: Linux / Build (Linux x86_64) (pull_request) Failing after 2m57s
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been skipped
to 9799c0b243
Some checks failed
Build: Apple / Check (SwiftLint) (pull_request) Has been cancelled
Build: Apple / Build (macOS) (pull_request) Has been cancelled
Build: Apple / Build (iOS) (pull_request) Has been cancelled
Build: Apple / Build (visionOS) (pull_request) Has been cancelled
Build: Linux / Build (Linux x86_64) (pull_request) Has been cancelled
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been cancelled
Build: KaiOS / Build (KaiOS) (pull_request) Has been cancelled
Build: Web / Build (Web) (pull_request) Has been cancelled
2026-09-06 20:57:39 +00:00
Compare
flatpak: document the SVG compose loader
Some checks failed
Build: Web / Build (Web) (pull_request) Successful in 40s
Build: KaiOS / Build (KaiOS) (pull_request) Failing after 2m17s
Build: Linux / Build (Linux x86_64) (pull_request) Successful in 3m54s
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been skipped
Build: Apple / Check (SwiftLint) (pull_request) Failing after 4m52s
Build: Apple / Build (macOS) (pull_request) Has been skipped
Build: Apple / Build (iOS) (pull_request) Has been skipped
Build: Apple / Build (visionOS) (pull_request) Has been skipped
5c087dcf6c
linux: gate Flatpak build on AppStream/desktop-file validation (Redmine #19)
Some checks failed
Build: sqlite3mc / sqlite3mc smoke (macOS) (pull_request) Has been skipped
Build: Apple / Check (SwiftLint) (pull_request) Failing after 18s
Build: Apple / Build (visionOS) (pull_request) Has been skipped
Build: Apple / Build (macOS) (pull_request) Has been skipped
Build: Apple / Build (iOS) (pull_request) Has been skipped
Build: sqlite3mc / sqlite3mc smoke (Linux x86_64) (pull_request) Successful in 47s
Build: KaiOS / Build (KaiOS) (pull_request) Failing after 1m11s
Build: Web / Build (Web) (pull_request) Successful in 2m57s
Build: Linux / Build (Linux x86_64) (pull_request) Successful in 4m3s
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been skipped
9ab6991684
Add Scripts/validate-flatpak-metadata.sh, which checks app-id
consistency across the manifest, metainfo <id>/<launchable> and desktop
Icon=, then runs appstreamcli validate --no-net and
desktop-file-validate. Wire it as a hard fail-fast gate into
Scripts/build-flatpak-ci.sh (via the .#flatpak-ci devshell, which already
provides both validators) and as a validate-when-available step in
Scripts/build-flatpak.sh. Also add the missing OARS 1.1 content rating to
the metainfo, clearing the appstream content-rating-missing report.
founder approved these changes 2026-09-13 12:10:40 +00:00
founder left a comment

Founder sign-off, recorded by Codex at Conrad’s explicit request on 2026-09-13: this first-work-wave change is approved. Resolve any conflicts and satisfy the required checks before merging. This records the founder’s approval; it does not assert that failing checks have passed.

Founder sign-off, recorded by Codex at Conrad’s explicit request on 2026-09-13: this first-work-wave change is approved. Resolve any conflicts and satisfy the required checks before merging. This records the founder’s approval; it does not assert that failing checks have passed.
Some checks failed
Build: sqlite3mc / sqlite3mc smoke (macOS) (pull_request) Has been skipped
Build: Apple / Check (SwiftLint) (pull_request) Failing after 18s
Build: Apple / Build (visionOS) (pull_request) Has been skipped
Build: Apple / Build (macOS) (pull_request) Has been skipped
Build: Apple / Build (iOS) (pull_request) Has been skipped
Build: sqlite3mc / sqlite3mc smoke (Linux x86_64) (pull_request) Successful in 47s
Build: KaiOS / Build (KaiOS) (pull_request) Failing after 1m11s
Build: Web / Build (Web) (pull_request) Successful in 2m57s
Build: Linux / Build (Linux x86_64) (pull_request) Successful in 4m3s
Build: Linux / Build (keystore-forge x86_64) (pull_request) Has been skipped
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin linux/flatpak-metadata-validation:linux/flatpak-metadata-validation
git switch linux/flatpak-metadata-validation
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
key-store/key.store!229
No description provided.