fix(flatpak): drop the Windows client from the workspace for the offline build
ci / rust (push) Successful in 1m45s
android / android (push) Successful in 2m2s
decky / build-publish (push) Successful in 11s
apple / swift (push) Successful in 54s
ci / web (push) Successful in 29s
ci / docs-site (push) Successful in 31s
deb / build-publish (push) Successful in 2m40s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 5s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 5s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 3s
ci / bench (push) Successful in 4m33s
flatpak / build-publish (push) Successful in 4m2s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m13s
docker / deploy-docs (push) Successful in 17s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 7m46s

The lock prune (a5b99b2) stopped flatpak-builder full-cloning windows-rs
(disk-fill), but exposed the next layer: `cargo --offline --locked -p
punktfunk-client-linux` resolves the WHOLE workspace, so it still tried
to load the now-un-vendored windows-rs source for the
punktfunk-client-windows member (its windows-rs git deps are
cfg(windows)-gated, but cargo resolves all targets regardless) and
failed: "can't checkout ... you are in the offline mode".

Drop the Windows client from the workspace members inside the sandbox
build (sed on the copied Cargo.toml — the flatpak never compiles it) and
remove --locked (the lock no longer matches the reduced member set;
--offline still pins every crate to the vendored cargo-sources.json, so
the build stays reproducible). android stays — it has no git deps.

Verified locally: removing the member, `cargo build -p
punktfunk-client-linux --offline` Finishes with zero windows-rs
involvement; manifest YAML still valid.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 08:12:21 +00:00
parent d5757980f8
commit 25c8dd58c7
+12 -1
View File
@@ -135,7 +135,18 @@ modules:
CARGO_HOME: /run/build/punktfunk-client/cargo CARGO_HOME: /run/build/punktfunk-client/cargo
CARGO_NET_OFFLINE: 'true' CARGO_NET_OFFLINE: 'true'
build-commands: build-commands:
- cargo --offline build --release --locked -p punktfunk-client-linux # Drop the Windows client from the workspace before building. It pins windows-rs as a
# git dependency (cfg(windows)-gated, but cargo resolves it for the whole workspace
# regardless of target), and that git source is deliberately NOT vendored into
# cargo-sources.json — see packaging/flatpak/prune-windows-lock.py, which strips it so
# flatpak-builder doesn't full-clone the multi-GB windows-rs repo. Without removing the
# member, `cargo --offline` would try to load the un-vendored windows-rs source and fail
# ("can't checkout ... you are in the offline mode"). The flatpak never compiles the
# Windows client; this edits only the sandbox copy of Cargo.toml. (No --locked: the lock
# no longer matches the reduced member set; --offline still pins every crate to the
# vendored cargo-sources.json, so the build stays reproducible.)
- sed -i '\#"crates/punktfunk-client-windows",#d' Cargo.toml
- cargo --offline build --release -p punktfunk-client-linux
- install -Dm0755 target/release/punktfunk-client ${FLATPAK_DEST}/bin/punktfunk-client - install -Dm0755 target/release/punktfunk-client ${FLATPAK_DEST}/bin/punktfunk-client
# Desktop entry (renamed to the app id; Exec is the in-sandbox binary). # Desktop entry (renamed to the app id; Exec is the in-sandbox binary).
- install -Dm0644 packaging/flatpak/io.unom.Punktfunk.desktop - install -Dm0644 packaging/flatpak/io.unom.Punktfunk.desktop