internal/rosa: do not register stage0
All checks were successful
Test / Create distribution (push) Successful in 1m5s
Test / Sandbox (push) Successful in 2m54s
Test / ShareFS (push) Successful in 3m42s
Test / Hakurei (push) Successful in 3m56s
Test / Sandbox (race detector) (push) Successful in 5m23s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m21s

Nothing can depend on this, so remove it from the namespace.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-21 22:19:10 +09:00
parent 0914569e62
commit 0615899e56
5 changed files with 49 additions and 70 deletions

View File

@@ -42,8 +42,8 @@ func init() {
mksquashfs /mnt/system /work/system.img
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
_musl,
Mksh,
Toybox,
_mksh,
_toybox,
H("kmod"),
H("kernel"),

View File

@@ -213,15 +213,12 @@ const (
)
var (
// The Mksh shell is added by [Toolchain.New] and used by almost all packages.
Mksh = H("mksh")
// Toybox is standard utilities added by [Toolchain.New].
Toybox = H("toybox")
// LLVM is the standard toolchain added by [Toolchain.New].
LLVM = H("llvm")
_stage0Dist = H("stage0-dist")
_mksh = H("mksh")
_toybox = H("toybox")
_toyboxEarly = H("toybox-early")
_llvm = H("llvm")
_patch = H("patch")
)
// New returns a [pkg.Artifact] based on a [Toolchain] via s.
@@ -282,12 +279,12 @@ mkdir -vp /work/system/bin
name += "-std"
}
toybox := Toybox
toybox := _toybox
if flag&TEarly != 0 {
toybox = _toyboxEarly
}
base := LLVM
base := _llvm
if flag&TNoToolchain != 0 {
base = _musl
}
@@ -296,7 +293,7 @@ mkdir -vp /work/system/bin
cureEtc{newIANAEtc()},
},
base,
Mksh,
_mksh,
toybox,
))
env = fixupEnviron(env, []string{
@@ -326,8 +323,32 @@ mkdir -vp /work/system/bin
)
}
// patch is used by [Toolchain.NewPatchedSource].
var patch = H("patch")
// NewStage0 returns a [pkg.Artifact] curing to a stage0 distribution.
func (t Toolchain) NewStage0() pkg.Artifact {
return t.New("stage0", 0, t.Append(nil,
H("bzip2"),
), nil, nil, `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+t.triple()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil,
_llvm,
_mksh,
_toyboxEarly,
)...))
}
// HasStageEarly returns whether a stage0 distribution is available.
func (s *S) HasStageEarly() (ok bool) {
func() {
defer func() { ok = recover() == nil }()
s.New(stageEarly).MustLoad(_stage0Dist)
}()
return
}
// NewPatchedSource returns [pkg.Artifact] of source with patches applied. If
// passthrough is true, source is returned as is for zero length patches.
@@ -365,7 +386,7 @@ cat /usr/src/` + name + `-patches/* | \
aname += "-patched"
}
return t.New(aname, 0, t.Append(nil,
patch,
_patch,
), nil, nil, script, paths...)
}

View File

@@ -77,7 +77,7 @@ func TestCureAll(t *testing.T) {
cache := getCache(t)
t.Parallel()
for _, p := range rosa.Native().Collect() {
for _, p := range rosa.Native().CollectAll() {
_, a := rosa.Native().Std().MustLoad(p)
t.Run(p.String(), func(t *testing.T) {
t.Parallel()
@@ -94,8 +94,9 @@ func TestCureAll(t *testing.T) {
func BenchmarkStage3(b *testing.B) {
t := rosa.Native().Clone().Std()
llvm := rosa.H("llvm")
for b.Loop() {
t.MustLoad(rosa.LLVM)
t.MustLoad(llvm)
b.StopTimer()
t.DropCaches("", 0)

View File

@@ -1,43 +0,0 @@
package rosa
import (
"hakurei.app/fhs"
"hakurei.app/internal/pkg"
)
// Stage0 is the handle of the stage0 distribution tarball built on the
// toolchain of stage [Std].
var Stage0 = H("rosa-stage0")
func init() {
meta := Metadata{
Name: "rosa-stage0",
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
Version: Unversioned,
}
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &meta, t.New("rosa-stage0", 0, t.Append(nil,
H("bzip2"),
), nil, nil, `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+t.triple()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil,
LLVM,
Mksh,
_toyboxEarly,
)...))
})
}
// HasStage0 returns whether a stage0 distribution is available.
func (s *S) HasStage0() (ok bool) {
func() {
defer func() { ok = recover() == nil }()
s.New(stageEarly).MustLoad(_stage0Dist)
}()
return
}