Files
fds-os/tools/release-readme.md
T
2026-09-24 13:54:28 +08:00

80 lines
3.9 KiB
Markdown

# FDS/OS 0.1.0 local release
This directory contains versioned images, exact build inputs and a signed
manifest. Physical Pi, NVMe, monitor and power validation is **deferred**. This
release has not been installed or published automatically.
## Verify the files first
Use an already trusted build of `fds-release` and a public key obtained through
an independently trusted channel. The bundled `signer.pub` alone does not
establish the publisher's identity. From the parent of this release directory:
```sh
/path/to/trusted/fds-release verify fds-os-0.1.0 --key /path/to/trusted/signer.pub
```
Substitute the actual directory name. Success reports `VERIFIED FDS/OS 0.1.0`
and checks every file listed in `manifest.json`. See `RELEASE-VERIFICATION.md`
for the signature format and how to build the verifier from trusted source.
## Choose the images
| File | Destination/purpose |
| --- | --- |
| `fds-internal-0.1.0.img` | Complete internal NVMe disk: BOOT, independent RECOVERY and machine settings |
| `fds-system-cli-0.1.0.img` | Removable SYSTEM cartridge with the ordinary FDS console and base Dasung controller |
| `fds-system-development-0.1.0.img` | Alternative SYSTEM with native compilers, debugging tools and display diagnostics |
| `fds-boot-0.1.0.img`, `fds-recovery-0.1.0.img` | Component partition payloads; normally use the complete internal disk above |
| `fds-initramfs-0.1.0.cpio*`, kernel and device-tree files | Boot components already included in the internal disk |
| `eeprom-production-*` | Reviewed EEPROM preparation/rollback files; the defaults are not a backup of your Pi |
| `fds-*.xbps` | FDS base packages used to build the images; the running SYSTEM remains immutable |
Use one internal disk and one of the two SYSTEM alternatives. Installation
erases the selected target disks. Follow `INSTALLATION.md` for target identity,
readback and first-boot steps, and `EEPROM.md` for the separately reviewed EEPROM
procedure. The initial bay map is empty until actual wiring is calibrated.
## Read the complete guides
After verifying the release, extract the source archive into a new directory
inside this release directory:
```sh
mkdir source
tar --extract --zstd --same-permissions --no-same-owner \
--file fds-source-0.1.0.tar.zst --directory source
```
Start with [the project overview](source/fds-os.wiki/Overview.md),
[installation](source/fds-os.wiki/Internal-Storage.md), and
[everyday cartridge use](source/fds-os.wiki/Cartridges.md). The complete manual is included under `source/fds-os.wiki/`. Page links use
Gitea wiki names: for offline reading, open the corresponding `.md` file in
that directory. The standalone guides are copies from the same wiki snapshot.
## Rebuild from the preserved inputs
`reproducibility.json` records the comparison of the two independent builds.
`build-inputs.json` lists the exact snapshot contents, and `packages-*.json`
records each profile's package versions and hashes. The complete input archive
includes the compiler/toolchain, package files and pinned Void source bundle;
the smaller source archive alone does not provide those dependencies.
On the documented Arch build host, from this release directory:
```sh
mkdir inputs
tar --extract --zstd --same-permissions --no-same-owner \
--file fds-build-inputs-0.1.0.tar.zst --directory inputs
python3 inputs/project/tools/frozen-inputs verify "$PWD/inputs"
python3 inputs/project/tools/frozen-inputs restore "$PWD/inputs" "$PWD/rebuild"
rebuild/tools/in-frozen-build make all >rebuild.log 2>&1
```
Use new directories and paths without whitespace. The restored build has its
recorded modes preserved by `--same-permissions`; `--no-same-owner` keeps the
files owned by the ordinary build user. Its compiler and package environment use
their own caches and have no network access. Host prerequisites and additional comparison
instructions are in [Offline rebuilds](source/fds-os.wiki/Developer-Reproducible-Builds.md).
The private signing key is not included in this release or its input archive.