All checks were successful
Test / Create distribution (push) Successful in 1m3s
Test / Sandbox (push) Successful in 2m38s
Test / Hakurei (push) Successful in 3m41s
Test / ShareFS (push) Successful in 3m44s
Test / Sandbox (race detector) (push) Successful in 5m7s
Test / Hakurei (race detector) (push) Successful in 6m10s
Test / Flake checks (push) Successful in 1m20s
The default search paths cannot be configured, configuring them here is most sound for now. Signed-off-by: Ophestra <cat@gensokyo.uk>
76 lines
1.7 KiB
Go
76 lines
1.7 KiB
Go
package rosa
|
|
|
|
import (
|
|
"hakurei.app/container/fhs"
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
func init() {
|
|
artifactsM[EarlyInit] = Metadata{
|
|
Name: "earlyinit",
|
|
Description: "Rosa OS initramfs init program",
|
|
|
|
f: func(t Toolchain) (pkg.Artifact, string) {
|
|
return t.newHakurei("-early-init", `
|
|
mkdir -p /work/system/libexec/hakurei/
|
|
|
|
echo '# Building earlyinit.'
|
|
go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w
|
|
-buildid=
|
|
-linkmode external
|
|
-extldflags=-static
|
|
-X hakurei.app/internal/info.buildVersion=${HAKUREI_VERSION}
|
|
" ./cmd/earlyinit
|
|
echo
|
|
`, false), Unversioned
|
|
},
|
|
}
|
|
}
|
|
|
|
func (t Toolchain) newImageSystem() (pkg.Artifact, string) {
|
|
return t.New("system.img", TNoToolchain, t.AppendPresets(nil,
|
|
SquashfsTools,
|
|
), nil, nil, `
|
|
mksquashfs /mnt/system /work/system.img
|
|
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.AppendPresets(nil,
|
|
Musl,
|
|
Mksh,
|
|
Toybox,
|
|
|
|
Kmod,
|
|
Kernel,
|
|
Firmware,
|
|
)...)), Unversioned
|
|
}
|
|
func init() {
|
|
artifactsM[ImageSystem] = Metadata{
|
|
Name: "system-image",
|
|
Description: "Rosa OS system image",
|
|
|
|
f: Toolchain.newImageSystem,
|
|
}
|
|
}
|
|
|
|
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
|
|
return t.New("initramfs", TNoToolchain, t.AppendPresets(nil,
|
|
Zstd,
|
|
EarlyInit,
|
|
GenInitCPIO,
|
|
), nil, nil, `
|
|
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
|
|
`, pkg.Path(AbsUsrSrc.Append("initramfs"), false, pkg.NewFile("initramfs", []byte(`
|
|
dir /dev 0755 0 0
|
|
nod /dev/null 0666 0 0 c 1 3
|
|
nod /dev/console 0600 0 0 c 5 1
|
|
file /init /system/libexec/hakurei/earlyinit 0555 0 0
|
|
`)))), Unversioned
|
|
}
|
|
func init() {
|
|
artifactsM[ImageInitramfs] = Metadata{
|
|
Name: "initramfs-image",
|
|
Description: "Rosa OS initramfs image",
|
|
|
|
f: Toolchain.newImageInitramfs,
|
|
}
|
|
}
|