Requirement: ASR-535
Observed on a clean Ubuntu 24.04 x86_64 GCE verifier using the repository-pinned Isabelle2025-2 archive and bubblewrap 0.9.0. After bubblewrap network isolation was established, tools.isabelle_tool verify failed before theorem replay with: Fontconfig head is null, check your fonts or fonts configuration.
Root cause: the sandbox binds /etc/fonts and /usr/share/fonts but creates an otherwise empty /usr/share. Ubuntu fontconfig files under /etc/fonts/conf.d point into /usr/share/fontconfig, which is not in ISABELLE_SYSTEM_RUNTIME_PATHS. The declared allowlist is therefore incomplete and the canonical proof lane is host-image dependent.
Acceptance:
- Bind the minimum fixed fontconfig data path needed by the pinned prover, without binding host root, user home, or enabling network.
- Validate allowlist construction with focused line and branch coverage.
- Replay the pinned proof successfully on Ubuntu 24.04 x86_64 with bubblewrap network isolation.
- Preserve checksum verification, fixed argv/environment, bounded resources, and evidence digest behavior.
- Document the operational portability boundary and exact verification evidence.
This is core OpenRAE proof-gate reliability; it does not change theorem semantics or experiment code.
Requirement: ASR-535
Observed on a clean Ubuntu 24.04 x86_64 GCE verifier using the repository-pinned Isabelle2025-2 archive and bubblewrap 0.9.0. After bubblewrap network isolation was established, tools.isabelle_tool verify failed before theorem replay with: Fontconfig head is null, check your fonts or fonts configuration.
Root cause: the sandbox binds /etc/fonts and /usr/share/fonts but creates an otherwise empty /usr/share. Ubuntu fontconfig files under /etc/fonts/conf.d point into /usr/share/fontconfig, which is not in ISABELLE_SYSTEM_RUNTIME_PATHS. The declared allowlist is therefore incomplete and the canonical proof lane is host-image dependent.
Acceptance:
This is core OpenRAE proof-gate reliability; it does not change theorem semantics or experiment code.