80 lines
3.8 KiB
Markdown
80 lines
3.8 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/README.md),
|
|
[installation](source/docs/internal-storage.md), and
|
|
[everyday cartridge use](source/docs/cartridges.md). The copied standalone guides
|
|
retain their source-relative cross-references; the copies under `source/docs/`
|
|
provide the complete linked documentation.
|
|
|
|
## 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/docs/developer/reproducible-builds.md).
|
|
The private signing key is not included in this release or its input archive.
|