aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-10 19:21:37 +0900
committerOphestra <cat@gensokyo.uk>2026-02-10 19:28:47 +0900
commit3dbd67d1138e46d15df408d1404c946163e15ef1 (patch)
tree1b29612f98b79a1bc994323d1f15b2e32da93491 /internal
parentf511f0a9e9446f5af64c4ef02fa7658e7eb1ab68 (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>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/rosa.go21
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,