You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
audit: fix sysdata path, verify layer digests, drop legacy alias
Three issues surfaced while auditing the new container layout:
1. setup_fake_sysdata() and fake_proc_bindings() still wrote to and
bound from installed-rootfs/<name>/. login binds rootfs/sys/.empty
from the new path, so the empty file was missing inside the
container. Both helpers now take the rootfs path directly and
keep stub files co-located with the container.
2. _download_blob() did not verify layer integrity, contrary to the
architecture spec. It now streams each blob through hashlib.sha256
and rejects mismatched digests before promoting the temp file
into the cache. Only sha256 is accepted.
3. INSTALLED_ROOTFS_DIR was kept as a back-compat alias of the legacy
path. Its only remaining users (arch.py fallback, sysdata.py)
have moved to CONTAINERS_DIR, so the alias and the unused private
name re-exports in helpers/rootfs.py are removed.
CLAUDE.md updated to describe the new sysdata layout and the layer
integrity check, and to reflect detect_installed_arch() resolving
bare names against CONTAINERS_DIR.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0 commit comments