forked from security/hakurei
internal/rosa: build independent earlyinit
This avoids unnecessarily rebuilding hakurei during development. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -19,6 +19,8 @@ const (
|
|||||||
LLVMRuntimes
|
LLVMRuntimes
|
||||||
LLVMClang
|
LLVMClang
|
||||||
|
|
||||||
|
// EarlyInit is the Rosa OS initramfs init program.
|
||||||
|
EarlyInit
|
||||||
// ImageInitramfs is the Rosa OS initramfs archive.
|
// ImageInitramfs is the Rosa OS initramfs archive.
|
||||||
ImageInitramfs
|
ImageInitramfs
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,32 @@ package rosa
|
|||||||
|
|
||||||
import "hakurei.app/internal/pkg"
|
import "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) newImageInitramfs() (pkg.Artifact, string) {
|
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
|
||||||
return t.New("initramfs", TNoToolchain, []pkg.Artifact{
|
return t.New("initramfs", TNoToolchain, []pkg.Artifact{
|
||||||
t.Load(Zstd),
|
t.Load(Zstd),
|
||||||
t.Load(Hakurei),
|
t.Load(EarlyInit),
|
||||||
t.Load(GenInitCPIO),
|
t.Load(GenInitCPIO),
|
||||||
}, nil, nil, `
|
}, nil, nil, `
|
||||||
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
|
gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst
|
||||||
|
|||||||
Reference in New Issue
Block a user