All checks were successful
Test / Create distribution (push) Successful in 1m16s
Test / Sandbox (push) Successful in 3m12s
Test / Hakurei (push) Successful in 4m35s
Test / ShareFS (push) Successful in 4m38s
Test / Sandbox (race detector) (push) Successful in 5m52s
Test / Hakurei (race detector) (push) Successful in 7m9s
Test / Flake checks (push) Successful in 1m31s
This is cleaner syntax in some specific cases. Signed-off-by: Ophestra <cat@gensokyo.uk>
76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package rosa
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
func (t Toolchain) newStage0() (pkg.Artifact, string) {
|
|
musl, compilerRT, runtimes, clang := t.NewLLVM()
|
|
return t.New("rosa-stage0", 0, []pkg.Artifact{
|
|
musl,
|
|
compilerRT,
|
|
runtimes,
|
|
clang,
|
|
|
|
t.Load(Zlib),
|
|
t.Load(Bzip2),
|
|
|
|
t.Load(Patch),
|
|
t.Load(Make),
|
|
t.Load(CMake),
|
|
t.Load(Ninja),
|
|
|
|
t.Load(Libffi),
|
|
t.Load(Python),
|
|
t.Load(Perl),
|
|
t.Load(Diffutils),
|
|
t.Load(Bash),
|
|
t.Load(Gawk),
|
|
t.Load(Coreutils),
|
|
t.Load(Findutils),
|
|
|
|
t.Load(KernelHeaders),
|
|
}, nil, nil, `
|
|
umask 377
|
|
tar \
|
|
-vjc \
|
|
-C / \
|
|
-f /work/stage0-`+triplet()+`.tar.bz2 \
|
|
system bin usr/bin/env
|
|
`), Unversioned
|
|
}
|
|
func init() {
|
|
artifactsM[Stage0] = Metadata{
|
|
f: Toolchain.newStage0,
|
|
|
|
Name: "rosa-stage0",
|
|
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
|
|
}
|
|
}
|
|
|
|
var (
|
|
// stage0 stores the tarball unpack artifact.
|
|
stage0 pkg.Artifact
|
|
// stage0Once is for lazy initialisation of stage0.
|
|
stage0Once sync.Once
|
|
)
|
|
|
|
// NewStage0 returns a stage0 distribution created from curing [Stage0].
|
|
func NewStage0() pkg.Artifact {
|
|
stage0Once.Do(func() {
|
|
stage0 = pkg.NewHTTPGetTar(
|
|
nil, "https://hakurei.app/seed/20260210/"+
|
|
"stage0-"+triplet()+".tar.bz2",
|
|
mustDecode(perArch[string]{
|
|
"amd64": "tqM1Li15BJ-uFG8zU-XjgFxoN_kuzh1VxrSDVUVa0vGmo-NeWapSftH739sY8EAg",
|
|
"arm64": "CJj3ZSnRyLmFHlWIQtTPQD9oikOZY4cD_mI3v_-LIYc2hhg-cq_CZFBLzQBAkFIn",
|
|
"riscv64": "FcszJjcVWdKAnn-bt8qmUn5GUUTjv_xQjXOWkUpOplRkG3Ckob3StUoAi5KQ5-QF",
|
|
}.unwrap()),
|
|
pkg.TarBzip2,
|
|
)
|
|
})
|
|
return stage0
|
|
}
|