# repo-pre-2 Maintenance Baseline ## Snapshot Identity `repo-pre-2` was created from the tracked `repo-pre-1` tree without copying working-tree-only files or build artifacts. ```text planning baseline commit: ed47f1b5583a229e372f488b9492d1f6234aae98 snapshot creation parent: 109fe74d3fcef107db5869be1d030f4f12d1cfa6 snapshot creation commit: 73fa57924b549387400eeeb85354bbbbe770a962 repo-pre-1 source tree: 6a5a1a49d4a4e08f6ef1155de240500e63a15365 repo-pre-2 snapshot tree: 6a5a1a49d4a4e08f6ef1155de240500e63a15365 Linux comparison tree: b79b9a8b62f633e887a8b99075ff9412fabd7f83 ``` The matching source and snapshot tree IDs establish byte-for-byte content, file-mode, and path equivalence at snapshot creation. `repo-pre-1` and `src-linux` are read-only references for pre2 work. ## Phase Scope Pre2 phase 1 is L0 mechanical maintenance alignment. It permits only the separately reviewed changes listed below: 1. Remove stale Linux-only declaration fragments from `src/xattr.h` while preserving every active FreeBSD interface. 2. Remove six specified, unreferenced private constants from `src/erofs_defs.h`. 3. Rename the private checksum helper in `src/super.c` without changing its signature, body, call position, or behavior. Each source change must remain an independent commit. This phase does not add features, fix behavior, move responsibilities between files, reorder data structures, alter ABI, or broadly reformat code. ## Required FreeBSD Differences Linux and FreeBSD EROFS remain independent implementations. The following platform boundaries are intentional and must not be replaced merely to make the source look more similar: - FreeBSD VFS, vnode, mount, namecache, pager, and NFS export interfaces. - FreeBSD buffer/cache, GEOM provider, device I/O, locking, and allocation APIs. - FreeBSD xattr, ACL, errno, kernel-module, and `bsd.kmod.mk` conventions. - FreeBSD build gates, including the current amd64 restriction and optional `ZSTDIO` integration. Linux naming and layout should be followed only when doing so preserves these native contracts and makes cross-repository review easier. ## Excluded Work This phase does not address vnode ownership after `insmntque()` failure, large-run allocation and `uiomove()` limits, compact pblk validation, 48-bit boundaries, decompressor descriptors, backend ABI, typed errno, xattr parsing, ACL behavior, file splitting, build-system alignment, CI, or test tooling. ## Validation Status Only static snapshot and Git allowlist checks were performed for the initialization commits. No build, QEMU run, test script, smoke test, mount, or runtime feature check was performed. All runtime capabilities therefore remain `NOT RUN` for repo-pre-2 until a later, explicitly authorized validation phase.