docs: update build instructions and foundation (#38)

Reviewed-on: #38
Reviewed-by: vlinkz <vlinkz@snowflakeos.org>
Co-authored-by: KFears <kfearsoff@gmail.com>
Co-committed-by: KFears <kfearsoff@gmail.com>
This commit is contained in:
KFears 2025-10-15 03:21:49 +00:00 • committed by vlinkz
parent cb654dbfd0
commit 76cd63f5fe
2 changed files with 16 additions and 28 deletions

View file

@ -35,19 +35,19 @@ in
To build a package, you can run the following command inside of the `tidepool` directory:
```console
nix-build -A packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.x86_64-linux.package
nix-build -A packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.package
```
If you have `nix-command` experimental feature enabled, you can v3 CLI instead:
```console
nix build -f . packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.x86_64-linux.package
nix build -f . packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.package
```
Using flakes, the difference is only in calling:
```console
nix build .#packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.x86_64-linux.package
nix build .#packages.foundation.bash.latest.packages.x86_64-linux.x86_64-linux.package
```
This interface is verbose, but stable. We are still working out the details for
@ -56,44 +56,44 @@ a friendlier interface!
The full command syntax looks like this:
```console
nix-build -A packages.${package-set}.${package}.${version}.packages.${build}.${host}.${target}.package
nix-build -A packages.${package-set}.${package}.${version}.packages.${build}.${host}.package
```
Tidepool packages can have multiple versions available. Tidepool also provides aliases
for convenience, currently "stable" and "latest". Aliases go directly after `${package}`:
```console
nix-build -A packages.${package-set}.${package}.${alias}.packages.${build}.${host}.${target}.package
nix-build -A packages.${package-set}.${package}.${alias}.packages.${build}.${host}.package
```
The actual available versions live one level deeper, under `versions` namespace:
```console
nix-build -A packages.${package-set}.${package}.versions.${version}.packages.${build}.${host}.${target}.package
nix-build -A packages.${package-set}.${package}.versions.${version}.packages.${build}.${host}.package
```
Here are a few practical examples for Tidepool. We can use a specific Bash version:
```console
nix-build -A packages.foundation.bash.versions."5.2.15-stage1".packages.x86_64-linux.x86_64-linux.x86_64-linux.package
nix-build -A packages.foundation.bash.versions."5.2.15-stage1".packages.x86_64-linux.x86_64-linux.package
```
Get Bash cross-compiled from `i686-linux` to `x86_64-linux`:
```console
nix build .#packages.foundation.bash.latest.packages.i686-linux.x86_64-linux.x86_64-linux.package
nix build .#packages.foundation.bash.latest.packages.i686-linux.x86_64-linux.package
```
Or a native `aarch64-linux` Bash:
```console
nix build .#packages.foundation.bash.latest.packages.aarch64-linux.aarch64-linux.aarch64-linux.package
nix build .#packages.foundation.bash.latest.packages.aarch64-linux.aarch64-linux.package
```
Running this command will:
- Bootstrap `i686-linux` `gcc` as a dependency of `x86_64-linux` `gcc`
- Incrementally bootstrap the actual `x86_64-linux` `gcc`
- Bootstrap `i686-linux` `gcc` using Foundation
- Incrementally bootstrap `x86_64-linux` `gcc`
- Incrementally bootstrap `aarch64-linux` `gcc` from `x86_64-linux` `gcc`
- Build the native `aarch64-linux` `gcc`
- Build the native `aarch64-linux` `bash`