Compare commits

...
Author SHA1 Message Date
enricobuehler 25b08916b6 fix(flatpak): the WSI layer module builds again — vkroots was declared twice
ci / web (pull_request) Successful in 57s
ci / docs-site (pull_request) Successful in 1m45s
ci / rust-arm64 (pull_request) Successful in 2m19s
ci / rust (pull_request) Successful in 6m22s
The flatpak has not built since 35ba64ca. Every push to main fails at "Build the
flatpak", before a single build command runs:

  cp: cannot overwrite non-directory
    '.../build/gamescope-wsi-layer-1/subprojects/vkroots/.git'
    with directory '.../git/https_github.com_Joshua-Ashton_vkroots.git'
  Error: module gamescope-wsi-layer: Child process exited with code 1

vkroots was declared twice. flatpak-builder clones git sources WITH SUBMODULES by
default, and `subprojects/vkroots` is a real gamescope submodule — `git ls-tree
8c676c39 subprojects/` shows it as mode 160000 at 5106d8a0, which is byte-for-byte
the commit the explicit source pinned. So the submodule checkout already produced
the right tree and left `subprojects/vkroots/.git` as a gitlink FILE; the second,
redundant source then tried to copy the bare mirror onto that path as a DIRECTORY,
and cp refused. Source extraction died there — `buildsystem: simple` and the
hand-applied glm/stb patch_directory copies were never reached, so neither is at
fault.

Removing the redundant source is therefore a no-op on the resulting tree: the
submodule supplies that exact rev. glm and stb are NOT submodules — `subprojects/
glm.wrap` and `stb.wrap` are plain blobs at that rev — so nothing else populates
them and their explicit sources have to stay. That asymmetry is the whole trap,
and it is now written down in the manifest next to the sources, along with the
disable-submodules escape hatch for anyone who later needs to pin a subproject
away from the gamescope rev.

Why this reached main: flatpak.yml has no `pull_request:` trigger — only `push` on
main with path filters, `tags: ['v*']`, and workflow_dispatch. PR #64's checks were
green because the flatpak was never built on the PR; run 15775 was the first time
this module had ever been built in CI. Adding a PR trigger (or a manifest lint) is
the durable follow-up, deliberately not bundled here.

This blocks the release, not just main. flatpak.yml runs on `tags: ['v*']`, and the
failing step gates the bundle export, the generic-registry publish, the OSTree push
to flatpak.unom.io and the release-asset attach — all of which stay skipped. A
v0.25.0 tag cut today would ship with NO Linux/Steam Deck flatpak at all, on the
release whose headline Linux change is Deck HDR working out of the box.

NOT VALIDATED LOCALLY: this cannot be built on macOS. The reasoning is confirmed
against the upstream tree (the ls-tree above) but the green run is still owed —
dispatch flatpak.yml on this branch before merging.
2026-08-06 00:49:25 +02:00
+13 -6
View File
@@ -251,12 +251,19 @@ modules:
url: https://github.com/ValveSoftware/gamescope.git
# KEEP IN SYNC with `_gsrev` in packaging/gamescope/PKGBUILD.
commit: 8c676c399c761e4540587f61004c957993d12fea
# Submodule + wrap pins as of that rev. `git ls-tree <rev> subprojects/` for the
# submodules; subprojects/*.wrap for the rest.
- type: git
url: https://github.com/Joshua-Ashton/vkroots.git
commit: 5106d8a0df95de66cc58dc1ea37e69c99afc9540
dest: subprojects/vkroots
# Wrap pins as of that rev (`subprojects/*.wrap`). These are meson WRAPS, not gamescope
# submodules, so nothing else populates them and they need explicit sources.
#
# vkroots is deliberately NOT listed here. It is a real gamescope SUBMODULE, and
# flatpak-builder clones git sources with submodules by default — so it is already
# checked out at exactly the rev above (`git ls-tree <rev> subprojects/vkroots`), which
# leaves `subprojects/vkroots/.git` as a gitlink FILE. Declaring it again with
# `dest: subprojects/vkroots` made the extractor copy the bare mirror onto that path and
# die before any build command ran:
# cp: cannot overwrite non-directory '.../subprojects/vkroots/.git' with directory
# Re-adding it re-breaks the whole flatpak. If the submodule ever needs to be pinned away
# from the gamescope rev, set `disable-submodules: true` on the source above and then
# declare ALL THREE subprojects explicitly — not one of them alone.
- type: git
url: https://github.com/g-truc/glm.git
commit: 0af55ccecd98d4e5a8d1fad7de25ba429d60e863