internal/rosa: util-linux artifact
All checks were successful
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 2m40s
Test / Hakurei (push) Successful in 3m51s
Test / ShareFS (push) Successful in 4m2s
Test / Hpkg (push) Successful in 4m35s
Test / Sandbox (race detector) (push) Successful in 5m0s
Test / Hakurei (race detector) (push) Successful in 6m12s
Test / Flake checks (push) Successful in 1m34s

This stuff will likely be implemented natively in the final system. For now, it is useful for debugging.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-02-18 14:18:36 +09:00
parent e065bbf792
commit 58801b44d4
2 changed files with 52 additions and 1 deletions

View File

@@ -77,7 +77,7 @@ const (
Toybox
toyboxEarly
Unzip
utilMacros
UtilLinux
Wayland
WaylandProtocols
XCB
@@ -88,6 +88,7 @@ const (
Zstd
buildcatrust
utilMacros
// gcc is a hacked-to-pieces GCC toolchain meant for use in intermediate
// stages only. This preset and its direct output must never be exposed.
@@ -188,6 +189,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"squashfs-tools": SquashfsTools,
"toybox": Toybox,
"unzip": Unzip,
"util-linux": UtilLinux,
"wayland": Wayland,
"wayland-protocols": WaylandProtocols,
"xcb": XCB,

View File

@@ -0,0 +1,49 @@
package rosa
import (
"strings"
"hakurei.app/internal/pkg"
)
func (t Toolchain) newUtilLinux() pkg.Artifact {
const (
version = "2.41.3"
checksum = "gPTd5JJ2ho_Rd0qainuogcLiiWwKSXEZPXN3yCCRl0m0KBgMaqwFuMjYgu9z8zCH"
)
return t.NewViaMake("util-linux", version, pkg.NewHTTPGetTar(
nil, "https://www.kernel.org/pub/linux/utils/util-linux/"+
"v"+strings.Join(strings.SplitN(version, ".", 3)[:2], ".")+
"/util-linux-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), &MakeAttr{
ScriptEarly: `
ln -s ../system/bin/bash /bin/
`,
Configure: [][2]string{
{"disable-use-tty-group"},
{"disable-makeinstall-setuid"},
{"disable-makeinstall-chown"},
{"enable-fs-paths-default", "" +
"/system/sbin:" +
"/system/sbin/fs.d:" +
"/system/sbin/fs"},
{"disable-su"},
{"disable-liblastlog2"},
{"disable-pam-lastlog2"},
},
// check script claims:
// For development purpose only.
// Don't execute on production system!
SkipCheck: true,
},
t.Load(Bash),
t.Load(KernelHeaders),
)
}
func init() { artifactsF[UtilLinux] = Toolchain.newUtilLinux }