package rosa import ( "sync" "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", } } 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 = newTar( "https://hakurei.app/seed/20260429/"+ "stage0-"+triplet()+".tar.bz2", perArch[string]{ "amd64": "ldz-WkSx2wxUK4ndi-tlaaU8ykOowbpGRcBsciAcIDdnX6-QfzQg_se3lsZYuzuK", }.unwrap(), pkg.TarBzip2, ) }) return stage0 }