aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/stage0.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/stage0.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/stage0.go')
-rw-r--r--internal/rosa/stage0.go58
1 files changed, 28 insertions, 30 deletions
diff --git a/internal/rosa/stage0.go b/internal/rosa/stage0.go
index 4197ffac..05335ab5 100644
--- a/internal/rosa/stage0.go
+++ b/internal/rosa/stage0.go
@@ -5,10 +5,16 @@ import (
"hakurei.app/internal/pkg"
)
-func (t Toolchain) newStage0() (pkg.Artifact, string) {
- return t.New("rosa-stage0", 0, t.Append(nil,
- Bzip2,
- ), nil, nil, `
+func init() {
+ meta := Metadata{
+ Name: "rosa-stage0",
+ Description: "Rosa OS stage0 toolchain tarball for bootstrap",
+ Version: Unversioned,
+ }
+ native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
+ return &meta, t.New("rosa-stage0", 0, t.Append(nil,
+ Bzip2,
+ ), nil, nil, `
umask 377
tar \
-vjc \
@@ -16,38 +22,30 @@ tar \
-f /work/stage0-`+t.triple()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil,
- LLVM,
- Mksh,
- toyboxEarly,
- )...)), Unversioned
-}
-func init() {
- native.MustRegister(&Artifact{
- f: Toolchain.newStage0,
-
- Name: "rosa-stage0",
- Description: "Rosa OS stage0 toolchain tarball for bootstrap",
+ LLVM,
+ Mksh,
+ toyboxEarly,
+ )...))
})
}
func init() {
- const version = "20260504"
- native.MustRegister(&Artifact{
- f: func(t Toolchain) (pkg.Artifact, string) {
- return newTar(
- "https://hakurei.app/seed/"+version+"/"+
- "stage0-"+t.triple()+".tar.bz2",
- perArch[string]{
- "amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk",
- "arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH",
- "riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL",
- }.unwrap(t.S),
- pkg.TarBzip2,
- ), version
- },
-
+ meta := Metadata{
Name: "stage0-dist",
Description: "Rosa OS stage0 bootstrap seed",
+ Version: "20260504",
+ }
+ native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
+ return &meta, newTar(
+ "https://hakurei.app/seed/"+meta.Version+"/"+
+ "stage0-"+t.triple()+".tar.bz2",
+ perArch[string]{
+ "amd64": "IQjFDkiAVLo1XzflgMMiLP3gnVY2hhDMTzl-QqJDCQhcLQ3lLtRzjI5WCxGyW_lk",
+ "arm64": "6fmwl2Umx2QssKQvxxb1JOGkAjzfA_MXKku0jVdGjYGb35OvwEVA5NYtd0HIy3yH",
+ "riscv64": "Z2ODV0rIoo9iQRUIu35bsaOBeXc_9qQfGcyb2aGneatzNUJlXh5emSpEV2bOklUL",
+ }.unwrap(t.S),
+ pkg.TarBzip2,
+ )
})
}