Files
hakurei/internal/rosa/stage0.go
Ophestra e3520835bb
All checks were successful
Test / Create distribution (push) Successful in 2m53s
Test / Sandbox (push) Successful in 7m1s
Test / Hakurei (push) Successful in 8m58s
Test / ShareFS (push) Successful in 9m25s
Test / Sandbox (race detector) (push) Successful in 9m30s
Test / Hakurei (race detector) (push) Successful in 12m26s
Test / Flake checks (push) Successful in 2m36s
cmd/mbf: optionally register all targets
This enables non-native cures from the daemon.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-08 13:29:58 +09:00

61 lines
1.3 KiB
Go

package rosa
import (
"hakurei.app/fhs"
"hakurei.app/internal/pkg"
)
func (t Toolchain) newStage0() (pkg.Artifact, string) {
return t.New("rosa-stage0", 0, t.AppendPresets(nil,
Bzip2,
), nil, nil, `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+triplet()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.AppendPresets(nil,
LLVM,
Mksh,
toyboxEarly,
)...)), Unversioned
}
func init() {
artifactsM[Stage0] = Metadata{
f: Toolchain.newStage0,
Name: "rosa-stage0",
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
}
}
func init() {
const version = "20260504"
artifactsM[stage0Dist] = Metadata{
f: func(Toolchain) (pkg.Artifact, string) {
return newTar(
"https://hakurei.app/seed/"+version+"/"+
"stage0-"+triplet()+".tar.bz2",
perArch[string]{
"amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk",
"arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH",
}.unwrap(),
pkg.TarBzip2,
), version
},
Name: "stage0-dist",
Description: "Rosa OS stage0 bootstrap seed",
}
}
// HasStage0 returns whether a stage0 distribution is available.
func HasStage0() (ok bool) {
func() {
defer func() { ok = recover() == nil }()
toolchainStage0.Load(stage0Dist)
}()
return
}