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,