FDS/OS 1.0 fixes

This commit is contained in:
2026-09-23 03:12:45 +08:00
parent 8a4788fca8
commit 6bfcce8070
23 changed files with 403 additions and 40 deletions
+16 -6
View File
@@ -112,7 +112,7 @@ equivalent of:
```sh
export PATH="$PWD/.host/xbps/usr/bin:$PATH"
export XBPS_ARCH=x86_64
cd vendor/void-packages
cd .host/void-packages
./xbps-src -A x86_64 binary-bootstrap
```
@@ -131,7 +131,7 @@ To reproduce the two builds individually from the repository root:
```
The latter command sets the local XBPS PATH, checks the Void pin, and executes
this command within the submodule:
this command within the writable build checkout:
```sh
./xbps-src -a aarch64 pkg hello
@@ -186,9 +186,11 @@ tests accumulate. [Cleanup](cleanup.md) explains the retained current images,
release/input archives and caches. Full image builds and VM suites need tens of
GiB per working tree, beyond the initial M0 smoke test's requirements.
- `vendor/void-packages/`: clean, pinned upstream submodule; no generated overlays.
- `.host/void-packages/`: independent local build checkout at the same pin.
- `.host/xbps/`: project-local host tools, not installed into `/usr`.
- `vendor/void-packages/masterdir-x86_64/`: glibc build container.
- `vendor/void-packages/hostdir/`: download caches, cross packages, and build output.
- `.host/void-packages/masterdir-x86_64/`: glibc build container.
- `.host/void-packages/hostdir/`: download caches, cross packages, and build output.
- `out/packages/`: exported aarch64 test package and its repository index.
- `out/manifests/void-build-packages.txt`: packages remaining installed after the
build. Cross toolchains and temporary dependencies removed by xbps-src remain
@@ -197,12 +199,20 @@ GiB per working tree, beyond the initial M0 smoke test's requirements.
- `out/manifests/artifacts.sha256`: validation artifact digests.
- `out/logs/`: actual command logs, including logs from failed attempts.
Place FDS package overlays at `packages/fds-*/template`. `tools/prepare-void`
copies only directories containing a template and refuses to replace tracked
Place FDS package overlays at `packages/fds-*/template`. `tools/prepare-void-workspace`
clones the pinned upstream locally without shared Git objects or network access.
`tools/prepare-void` copies directories containing a template into that writable checkout and refuses to replace tracked
upstream packages. These copies are visible inside the build container. Base,
base-files, init, CLI, kernel and Dasung overlays are active; future directories
without templates remain inactive.
Bootstrap migrates matching old generated copies, configuration, `hostdir` and
`masterdir-*` out of the submodule using renames, preserving cached downloads
and container files. Unknown files, staged edits, changed copies or destination
conflicts stop migration for explicit reconciliation. Python 3 is used for
checked migration and locking; it is already a documented FDS host prerequisite.
The workstation builder also rejects submodules as writable build targets.
If an overlay changes and preparation reports a stale copy, inspect and preserve
any unique edits before moving the specific generated copy out of `srcpkgs/` and
retrying. Modified upstream tracked files cause immediate failure. Conflicting