aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/images.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-19 00:03:42 +0900
committerOphestra <cat@gensokyo.uk>2026-05-19 00:44:24 +0900
commit8807cbc7305e424725b2be8eed7ecd9234f7772e (patch)
tree5998f055396505becf0f99fcba3c86514f00650b /internal/rosa/images.go
parent0e95573f187f64de1a46f27af67325e57037b9a9 (diff)
internal/rosa: create metadata alongside artifact
This enables deferring evaluation of azalea-based packages and fixes the longstanding quirk of version being disjoint from other metadata. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/images.go')
-rw-r--r--internal/rosa/images.go72
1 files changed, 36 insertions, 36 deletions
diff --git a/internal/rosa/images.go b/internal/rosa/images.go
index 715035cc..561eee7c 100644
--- a/internal/rosa/images.go
+++ b/internal/rosa/images.go
@@ -6,12 +6,13 @@ import (
)
func init() {
- native.MustRegister(&Artifact{
+ meta := Metadata{
Name: "earlyinit",
Description: "Rosa OS initramfs init program",
-
- f: func(t Toolchain) (pkg.Artifact, string) {
- return t.newHakurei("-early-init", `
+ Version: Unversioned,
+ }
+ native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
+ return &meta, t.newHakurei("-early-init", `
mkdir -p /work/system/libexec/hakurei/
echo '# Building earlyinit.'
@@ -22,52 +23,51 @@ go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w
-X hakurei.app/internal/info.buildVersion=${HAKUREI_VERSION}
" ./cmd/earlyinit
echo
-`, false), Unversioned
- },
+`, false)
})
}
-func (t Toolchain) newImageSystem() (pkg.Artifact, string) {
- return t.New("system.img", TNoToolchain, t.Append(nil,
- SquashfsTools,
- ), nil, nil, `
-mksquashfs /mnt/system /work/system.img
-`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
- Musl,
- Mksh,
- Toybox,
- Kmod,
- Kernel,
- Firmware,
- )...)), Unversioned
-}
func init() {
- native.MustRegister(&Artifact{
+ meta := Metadata{
Name: "system-image",
Description: "Rosa OS system image",
+ Version: Unversioned,
+ }
+ native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
+ return &meta, t.New("system.img", TNoToolchain, t.Append(nil,
+ SquashfsTools,
+ ), nil, nil, `
+mksquashfs /mnt/system /work/system.img
+`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
+ Musl,
+ Mksh,
+ Toybox,
- f: Toolchain.newImageSystem,
+ Kmod,
+ Kernel,
+ Firmware,
+ )...))
})
}
-func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
- return t.New("initramfs", TNoToolchain, t.Append(nil,
- Zstd,
- EarlyInit,
- GenInitCPIO,
- ), nil, nil, `
+
+func init() {
+ meta := Metadata{
+ Name: "initramfs-image",
+ Description: "Rosa OS initramfs image",
+ Version: Unversioned,
+ }
+ native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
+ return &meta, t.New("initramfs", TNoToolchain, t.Append(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() {
- native.MustRegister(&Artifact{
- Name: "initramfs-image",
- Description: "Rosa OS initramfs image",
-
- f: Toolchain.newImageInitramfs,
+`))))
})
}