Build and publish container / build (pull_request) Successful in 4m30s
The two tools disagree about where the root is. rsync copies artist folders into <device>/Music, while the database builder must run one level up, where .rockbox lives, and must record /Music/... paths despite reading the bytes from the mirror. device_prefix is what reconciles them, and until now that was only argued rather than demonstrated. Unprivileged user namespaces make a real bind mount possible, so the test can create an actual mount point and exercise the derivation instead of asserting the shape of the script. A stub builder records its working directory and what it could see. The test asserts the .tcd file arrives beside .rockbox rather than inside Music, that the build ran in the scratch root and not on the card, and that it could walk into the mirror through the symlink -- which is the mechanism that produces device paths from mirror bytes. It skips where user namespaces are unavailable, which includes the CI container.