Skip to content

K2GO-394 fix(maps): drop the is_proot download delegate (unbreak the rootfs bake) - #561

Merged
luisguzman-adfa merged 2 commits into
mainfrom
fix/K2GO-394-maps-drop-is-proot-delegate
Sep 7, 2026
Merged

K2GO-394 fix(maps): drop the is_proot download delegate (unbreak the rootfs bake)#561
luisguzman-adfa merged 2 commits into
mainfrom
fix/K2GO-394-maps-drop-is-proot-delegate

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

What this changes

Removes the maps is_proot download-delegate patch
(0003-maps-download-is-proot-delegate.patch) and documents why the maps role is
intentionally left unpatched.

Why

The delegate patch broke the CI rootfs bake. It gated the maps role's
download_large_file.yml download when: not is_proot and asserted dash-node
pre-placement when: is_proot. But is_proot is True for the Android tiers the
bake builds (vars/local_vars_android_*.yml), and the bake has no dash-node --
so the downloads were skipped and the assert failed:

TASK [maps : Fail if dash-node did not place maps.black-component.js on proot]
fatal: assertion 'proot_basemap.stat.exists' failed

(basic / standard / full tiers failed; matomo, which installs no maps, passed --
confirming maps was the culprit.) The "aria2c error: failed to open log" just above
it is a red herring: the block's rescue tried to read a progress log the skipped
download never wrote. is_proot cannot tell a live device with dash-node from a CI
bake without it.

The delegate was never needed. The role's native creates: dest_path already skips
a file dash-node placed at the maps serve dir: on the device the app pre-downloads
the selected pmtiles through dash-node (resilient) and gates the runrole on that
download, so the role only skips already-present files; the bake, with no app and a
stable network, downloads everything in-proot as upstream intends.

Docs

Because the role now reads exactly as upstream ships it, the device-vs-upstream
divergence is invisible in the role, so it is recorded (not left as a surprise):

  • controller/docs/ADR-K2GO-394-maps-download-via-dashnode.md -- the design
    decision (dash-node download + app orchestration + native creates:, and why no
    role patch).
  • A "Notable non-patches" note in tools/upstream-patches/README.md -- where a
    maintainer looks and finds no maps patch.

Notes

Supersedes the is_proot delegate merged earlier (including its archive-scoping
follow-up) -- the whole patch is removed, not re-gated. The search tarball
(expand_archive) already stays in-proot: dash-node does not extract archives.

…ootfs bake)

The is_proot delegate patch (0003) gated every download_large_file.yml download
`when: not is_proot` and asserted the file was pre-placed by dash-node. But
is_proot is True for the CI rootfs bake too (local_vars_android_*.yml), where
dash-node does not exist -- so the maps role downloads were skipped and the assert
failed the bake (basic/standard/full tiers), e.g.:

  TASK [maps : Fail if dash-node did not place maps.black-component.js on proot]
  fatal: assertion 'proot_basemap.stat.exists' failed

The delegate was never needed. The role's native `creates: dest_path` already
skips a file dash-node placed at the maps serve dir (device-verified). On a live
install the app pre-downloads the base-map pmtiles through dash-node (resilient)
and gates the runrole on that download's success, so the runrole only skips
already-present files. The bake, with no app and a stable network, downloads
everything in-proot as before. Removing the patch restores the bake and keeps the
device path working through `creates:` alone.
…de download)

Add ADR-K2GO-394 and a "Notable non-patches" note in the upstream-patches README
so the deliberate absence of a maps download patch is discoverable, not mistaken
for an oversight.

On the K2Go device path dash-node pre-downloads the base-map pmtiles and the stock
maps role skips those downloads via `creates:`; the role reads exactly as upstream
ships it. An earlier is_proot gate + assert broke the CI rootfs bake -- is_proot is
True for the Android tiers there too, but no dash-node runs -- so the role stays
stock and the device-vs-upstream divergence is documented instead of patched.
@luisguzman-adfa
luisguzman-adfa merged commit 8b1f058 into main Sep 7, 2026
2 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the fix/K2GO-394-maps-drop-is-proot-delegate branch September 7, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant