diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-02-10 19:21:37 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-02-10 19:28:47 +0900 |
| commit | 3dbd67d1138e46d15df408d1404c946163e15ef1 (patch) | |
| tree | 1b29612f98b79a1bc994323d1f15b2e32da93491 | |
| parent | f511f0a9e9446f5af64c4ef02fa7658e7eb1ab68 (diff) | |
internal/rosa: consistent stage0 paths
This makes using the gentoo stage3 as our stage0 compatible with Rosa OS stage0 tarballs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | internal/rosa/rosa.go | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index c92928f5..b82b09a8 100644 --- a/internal/rosa/rosa.go +++ b/internal/rosa/rosa.go @@ -173,7 +173,7 @@ func fixupEnviron(env, extras []string, paths ...string) []string { // absCureScript is the absolute pathname [Toolchain.New] places the fixed-up // build script under. -var absCureScript = fhs.AbsUsrBin.Append(".cure-script") +var absCureScript = AbsSystem.Append("bin", ".cure-script") const ( // TExclusive denotes an exclusive [pkg.Artifact]. @@ -187,7 +187,7 @@ func (t Toolchain) New( name string, flag int, extra []pkg.Artifact, - checksum *pkg.Checksum, + knownChecksum *pkg.Checksum, env []string, script string, @@ -195,17 +195,11 @@ func (t Toolchain) New( ) pkg.Artifact { const lcMessages = "LC_MESSAGES=C.UTF-8" - var ( - path = AbsSystem.Append("bin", "sh") - args = []string{"sh", absCureScript.String()} - support []pkg.Artifact - ) + var support []pkg.Artifact switch t { case toolchainBusybox: name += "-early" support = slices.Concat([]pkg.Artifact{newBusyboxBin()}, extra) - path = AbsSystem.Append("bin", "busybox") - args[0] = "hush" env = fixupEnviron(env, nil, "/system/bin") case toolchainStage0: @@ -220,14 +214,14 @@ func (t Toolchain) New( default: panic("unsupported target " + runtime.GOARCH) } - path = fhs.AbsRoot.Append("bin", "bash") - args[0] = "bash" support = slices.Concat([]pkg.Artifact{ cureEtc{}, toolchainBusybox.New("stage0", 0, nil, nil, nil, ` tar -C /work -xf /usr/src/stage0.tar.xz rm -rf /work/dev/ /work/proc/ ln -vs ../usr/bin /work/bin +mkdir -vp /work/system/bin +ln -vs ../../bin/sh /work/system/bin `, pkg.Path(AbsUsrSrc.Append("stage0.tar.xz"), false, pkg.NewHTTPGet( nil, "https://basement.gensokyo.uk/seed/"+seed, @@ -279,9 +273,10 @@ ln -vs ../usr/bin /work/bin } return pkg.NewExec( - name, checksum, pkg.ExecTimeoutMax, flag&TExclusive != 0, + name, knownChecksum, pkg.ExecTimeoutMax, flag&TExclusive != 0, fhs.AbsRoot, env, - path, args, + AbsSystem.Append("bin", "sh"), + []string{"sh", absCureScript.String()}, slices.Concat([]pkg.ExecPath{pkg.Path( fhs.AbsRoot, true, |
