package rosa import "hakurei.app/internal/pkg" func (t Toolchain) newMusl( headers bool, env []string, extra ...pkg.Artifact, ) pkg.Artifact { const ( version = "1.2.5" checksum = "y6USdIeSdHER_Fw2eT2CNjqShEye85oEg2jnOur96D073ukmIpIqDOLmECQroyDb" ) name := "musl" helper := MakeHelper{ OmitDefaults: true, SkipCheck: true, Script: ` mkdir -p /work/system/bin COMPAT_LINKER_NAME="ld-musl-` + linuxArch() + `.so.1" ln -vs ../lib/libc.so /work/system/bin/linker ln -vs ../lib/libc.so /work/system/bin/ldd ln -vs libc.so "/work/system/lib/${COMPAT_LINKER_NAME}" rm -v "/work/lib/${COMPAT_LINKER_NAME}" rmdir -v /work/lib `, } if headers { name += "-headers" helper.Make = []string{ "DESTDIR=/work", "install-headers", } helper.Install = "# headers installed during make" helper.Script = "" } return t.NewPackage(name, version, pkg.NewHTTPGetTar( nil, "https://musl.libc.org/releases/musl-"+version+".tar.gz", mustDecode(checksum), pkg.TarGzip, ), &PackageAttr{ NonStage0: extra, // expected to be writable in copies Chmod: true, Env: env, }, &helper, Coreutils, ) } func init() { artifactsF[Musl] = func(t Toolchain) pkg.Artifact { return t.newMusl(false, nil) } }