package rosa import ( "hakurei.app/fhs" "hakurei.app/internal/pkg" ) func (t Toolchain) newStage0(s *S) (pkg.Artifact, string) { return s.New(t, "rosa-stage0", 0, s.AppendPresets(t, nil, Bzip2, ), nil, nil, ` umask 377 tar \ -vjc \ -C /stage0 \ -f /work/stage0-`+s.triple()+`.tar.bz2 \ . `, pkg.Path(fhs.AbsRoot.Append("stage0"), false, s.AppendPresets(t, nil, LLVM, Mksh, toyboxEarly, )...)), Unversioned } func init() { native.MustRegister(&Artifact{ f: Toolchain.newStage0, Name: "rosa-stage0", Description: "Rosa OS stage0 toolchain tarball for bootstrap", }) } func init() { const version = "20260504" native.MustRegister(&Artifact{ f: func(_ Toolchain, s *S) (pkg.Artifact, string) { return newTar( "https://hakurei.app/seed/"+version+"/"+ "stage0-"+s.triple()+".tar.bz2", perArch[string]{ "amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk", "arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH", "riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL", }.unwrap(s), 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 }() native.Load(toolchainStage0, stage0Dist) }() return }