internal/rosa: replace busybox dash with mksh
All checks were successful
Test / Create distribution (push) Successful in 59s
Test / Sandbox (push) Successful in 2m41s
Test / Hakurei (push) Successful in 3m56s
Test / ShareFS (push) Successful in 3m57s
Test / Hpkg (push) Successful in 4m27s
Test / Sandbox (race detector) (push) Successful in 5m11s
Test / Hakurei (race detector) (push) Successful in 6m9s
Test / Flake checks (push) Successful in 1m46s

Toybox does not provide a shell, mksh fills that gap.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-01-29 02:00:32 +09:00
parent 536db533de
commit 79c0106ea0
4 changed files with 10 additions and 3 deletions

View File

@@ -338,7 +338,6 @@ cp busybox /system/bin/
mkdir -pv /work/system/bin/ mkdir -pv /work/system/bin/
busybox --install -s /work/system/bin/ busybox --install -s /work/system/bin/
cp -v busybox /work/system/bin/ cp -v busybox /work/system/bin/
ln -vs ../system/bin/hush /work/bin/sh
mkdir -vp /work/usr/bin/ mkdir -vp /work/usr/bin/
ln -vs ../../system/bin/busybox /work/usr/bin/env ln -vs ../../system/bin/busybox /work/usr/bin/env
`, pkg.Path(AbsUsrSrc.Append("busybox"), true, t.NewPatchedSource( `, pkg.Path(AbsUsrSrc.Append("busybox"), true, t.NewPatchedSource(

View File

@@ -59,6 +59,7 @@ func (t Toolchain) newAutoconf() pkg.Artifact {
t.Load(Make), t.Load(Make),
t.Load(M4), t.Load(M4),
t.Load(Perl), t.Load(Perl),
t.Load(Bash),
}, nil, nil, ` }, nil, nil, `
cd "$(mktemp -d)" cd "$(mktemp -d)"
/usr/src/autoconf/configure \ /usr/src/autoconf/configure \
@@ -205,6 +206,7 @@ func (t Toolchain) newCoreutils() pkg.Artifact {
return t.New("coreutils-"+version, false, []pkg.Artifact{ return t.New("coreutils-"+version, false, []pkg.Artifact{
t.Load(Make), t.Load(Make),
t.Load(Perl), t.Load(Perl),
t.Load(Bash),
t.Load(KernelHeaders), t.Load(KernelHeaders),
}, nil, nil, ` }, nil, nil, `
@@ -212,6 +214,8 @@ cd /usr/src/coreutils
test_disable() { chmod +w "$2" && echo "$1" > "$2"; } test_disable() { chmod +w "$2" && echo "$1" > "$2"; }
test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh test_disable '#!/bin/sh' gnulib-tests/test-c32ispunct.sh
test_disable '#!/bin/sh' tests/split/line-bytes.sh
test_disable '#!/bin/sh' tests/dd/no-allocate.sh
cd "$(mktemp -d)" cd "$(mktemp -d)"
/usr/src/coreutils/configure \ /usr/src/coreutils/configure \

View File

@@ -10,6 +10,7 @@ func (t Toolchain) newNinja() pkg.Artifact {
return t.New("ninja-"+version, false, []pkg.Artifact{ return t.New("ninja-"+version, false, []pkg.Artifact{
t.Load(CMake), t.Load(CMake),
t.Load(Python), t.Load(Python),
t.Load(Bash),
}, nil, nil, ` }, nil, nil, `
chmod -R +w /usr/src/ninja/ chmod -R +w /usr/src/ninja/
mkdir -p /work/system/bin/ && cd /work/system/bin/ mkdir -p /work/system/bin/ && cd /work/system/bin/

View File

@@ -189,14 +189,16 @@ func (t Toolchain) New(
const lcMessages = "LC_MESSAGES=C.UTF-8" const lcMessages = "LC_MESSAGES=C.UTF-8"
var ( var (
path = AbsSystem.Append("bin", "busybox") path = AbsSystem.Append("bin", "sh")
args = []string{"hush", absCureScript.String()} args = []string{"mksh", absCureScript.String()}
support []pkg.Artifact support []pkg.Artifact
) )
switch t { switch t {
case toolchainBusybox: case toolchainBusybox:
name += "-early" name += "-early"
support = slices.Concat([]pkg.Artifact{newBusyboxBin()}, extra) support = slices.Concat([]pkg.Artifact{newBusyboxBin()}, extra)
path = AbsSystem.Append("bin", "busybox")
args[0] = "hush"
env = fixupEnviron(env, nil, "/system/bin") env = fixupEnviron(env, nil, "/system/bin")
case toolchainStage3: case toolchainStage3:
@@ -252,6 +254,7 @@ ln -vs ../usr/bin /work/bin
compilerRT, compilerRT,
runtimes, runtimes,
clang, clang,
boot.Load(Mksh),
boot.Load(Busybox), boot.Load(Busybox),
}) })
env = fixupEnviron(env, []string{ env = fixupEnviron(env, []string{