internal/rosa/package: migrate system image
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m52s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m56s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m52s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m56s
Test / Sandbox (race detector) (push) Successful in 5m30s
Test / Hakurei (race detector) (push) Successful in 6m30s
Test / Flake checks (push) Successful in 1m22s
The overlay argument also enables migration of stage0. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
package rosa
|
||||
|
||||
import (
|
||||
"hakurei.app/fhs"
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func init() {
|
||||
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,
|
||||
H("squashfs-tools"),
|
||||
), nil, nil, `
|
||||
mksquashfs /mnt/system /work/system.img
|
||||
`, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Append(nil,
|
||||
_musl,
|
||||
_mksh,
|
||||
_toybox,
|
||||
|
||||
H("kmod"),
|
||||
H("kernel"),
|
||||
H("firmware"),
|
||||
)...))
|
||||
})
|
||||
}
|
||||
@@ -19,3 +19,27 @@ package initramfs-image {
|
||||
gen_init_cpio,
|
||||
];
|
||||
}
|
||||
|
||||
package system-image {
|
||||
description = "Rosa OS system image";
|
||||
version = unversioned;
|
||||
exclude = true;
|
||||
|
||||
source = earlyinit;
|
||||
extra = [
|
||||
musl,
|
||||
mksh,
|
||||
toybox,
|
||||
|
||||
kmod,
|
||||
kernel,
|
||||
firmware,
|
||||
];
|
||||
overlay = "/mnt";
|
||||
|
||||
exec = generic {
|
||||
build = "mksquashfs /mnt/system /work/system.img";
|
||||
};
|
||||
|
||||
inputs = [ squashfs-tools ];
|
||||
}
|
||||
|
||||
@@ -932,6 +932,7 @@ func (ctx *evalContext) pf(
|
||||
output pkg.Artifact
|
||||
sourceA any
|
||||
helper Helper
|
||||
overlay string
|
||||
|
||||
inputs, runtimes, extra azalea.Array
|
||||
)
|
||||
@@ -960,6 +961,7 @@ func (ctx *evalContext) pf(
|
||||
k("inputs"): &inputs,
|
||||
k("runtime"): &runtimes,
|
||||
k("extra"): &extra,
|
||||
k("overlay"): &overlay,
|
||||
}); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -991,6 +993,7 @@ func (ctx *evalContext) pf(
|
||||
})
|
||||
}
|
||||
|
||||
if overlay == "" {
|
||||
for _, h := range extraH {
|
||||
_, a := ctx.t.MustLoad(h)
|
||||
attr.Paths = append(attr.Paths, pkg.Path(
|
||||
@@ -999,6 +1002,18 @@ func (ctx *evalContext) pf(
|
||||
a,
|
||||
))
|
||||
}
|
||||
} else {
|
||||
var o pkg.ExecPath
|
||||
if o.P, err = check.NewAbs(overlay); err != nil {
|
||||
o.P = AbsUsrSrc.Append("extra", overlay)
|
||||
}
|
||||
o.A = make([]pkg.Artifact, len(extraH))
|
||||
for i, h := range extraH {
|
||||
_, a := ctx.t.MustLoad(h)
|
||||
o.A[i] = a
|
||||
}
|
||||
attr.Paths = append(attr.Paths, o)
|
||||
}
|
||||
|
||||
for _, pair := range files {
|
||||
var pathname *check.Absolute
|
||||
|
||||
Reference in New Issue
Block a user