From 3dbd67d1138e46d15df408d1404c946163e15ef1 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Tue, 10 Feb 2026 19:21:37 +0900 Subject: [PATCH] internal/rosa: consistent stage0 paths This makes using the gentoo stage3 as our stage0 compatible with Rosa OS stage0 tarballs. Signed-off-by: Ophestra --- internal/rosa/rosa.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go index c92928f..b82b09a 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,