From 77ea27b0385eb5df851fad3a1582b1737145f449 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 28 Jan 2026 22:51:03 +0900 Subject: [PATCH] internal/rosa: mksh artifact This provides a shell, as part of the effort to replace busybox. Signed-off-by: Ophestra --- internal/rosa/all.go | 2 ++ internal/rosa/mksh.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 internal/rosa/mksh.go diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 3b9ccb7..c76a15c 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -37,6 +37,7 @@ const ( M4 Make Meson + Mksh NSS NSSCACert Ninja @@ -111,6 +112,7 @@ func (t Toolchain) ResolveName(name string) (p PArtifact, ok bool) { "m4": M4, "make": Make, "meson": Meson, + "mksh": Mksh, "nss": NSS, "nss-cacert": NSSCACert, "ninja": Ninja, diff --git a/internal/rosa/mksh.go b/internal/rosa/mksh.go new file mode 100644 index 0000000..dd30f69 --- /dev/null +++ b/internal/rosa/mksh.go @@ -0,0 +1,30 @@ +package rosa + +import "hakurei.app/internal/pkg" + +func (t Toolchain) newMksh() pkg.Artifact { + const ( + version = "59c" + checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq" + ) + return t.New("mksh-"+version, false, stage3Concat(t, []pkg.Artifact{}, + t.Load(Make), + t.Load(Perl), + ), nil, []string{ + "LDSTATIC=-static", + }, ` +cd "$(mktemp -d)" +sh /usr/src/mksh/Build.sh +./test.sh -C regress:no-ctty + +mkdir -p /work/{bin,system/bin} +cp mksh /work/system/bin/sh +ln -vs ../system/bin/sh /work/bin +`, pkg.Path(AbsUsrSrc.Append("mksh"), false, pkg.NewHTTPGetTar( + nil, + "https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R"+version+".tgz", + mustDecode(checksum), + pkg.TarGzip, + ))) +} +func init() { artifactsF[Mksh] = Toolchain.newMksh }