diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-03-04 18:01:18 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-03-05 00:20:27 +0900 |
| commit | d2c6d486b06073aa88ee1912d3587f657cd57304 (patch) | |
| tree | 42e7df590ee8cda255e4cd35f9bd5ff7f9b2f94f /internal/rosa/kernel.go | |
| parent | 6fdd800b2b421b32e7db373b576433126c4652a2 (diff) | |
internal/rosa: provide package metadata
This had to be done out-of-band because there was no way to efficiently represent these within Artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/kernel.go')
| -rw-r--r-- | internal/rosa/kernel.go | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/internal/rosa/kernel.go b/internal/rosa/kernel.go index 5d9bf6ff..826aa166 100644 --- a/internal/rosa/kernel.go +++ b/internal/rosa/kernel.go @@ -11,16 +11,24 @@ var kernelSource = pkg.NewHTTPGetTar( pkg.TarGzip, ) -func (t Toolchain) newKernelSource() pkg.Artifact { +func (t Toolchain) newKernelSource() (pkg.Artifact, string) { return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, ` mkdir -p /work/usr/src/ cp -r /usr/src/linux /work/usr/src/ chmod -R +w /work/usr/src/linux/ -`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)) +`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion } -func init() { artifactsF[KernelSource] = Toolchain.newKernelSource } +func init() { + artifactsM[KernelSource] = Metadata{ + f: Toolchain.newKernelSource, -func (t Toolchain) newKernelHeaders() pkg.Artifact { + Name: "kernel-source", + Description: "a writable kernel source tree installed to /usr/src/linux", + Website: "https://kernel.org/", + } +} + +func (t Toolchain) newKernelHeaders() (pkg.Artifact, string) { return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{ Flag: TEarly, }, &MakeHelper{ @@ -38,11 +46,19 @@ func (t Toolchain) newKernelHeaders() pkg.Artifact { Install: "# headers installed during make", }, Rsync, - ) + ), kernelVersion +} +func init() { + artifactsM[KernelHeaders] = Metadata{ + f: Toolchain.newKernelHeaders, + + Name: "kernel-headers", + Description: "an installation of kernel headers", + Website: "https://kernel.org/", + } } -func init() { artifactsF[KernelHeaders] = Toolchain.newKernelHeaders } -func (t Toolchain) newKernel() pkg.Artifact { +func (t Toolchain) newKernel() (pkg.Artifact, string) { return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{ Env: []string{ "PATH=/system/sbin", @@ -123,14 +139,29 @@ rm -v /work/lib/modules/` + kernelVersion + `/build OpenSSL, UtilLinux, KernelHeaders, - ) + ), kernelVersion } -func init() { artifactsF[Kernel] = Toolchain.newKernel } +func init() { + artifactsM[Kernel] = Metadata{ + f: Toolchain.newKernel, -func (t Toolchain) newGenInitCPIO() pkg.Artifact { + Name: "kernel", + Description: "the generic Rosa OS linux kernel", + Website: "https://kernel.org/", + } +} + +func (t Toolchain) newGenInitCPIO() (pkg.Artifact, string) { return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, ` mkdir -p /work/system/bin/ cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c -`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)) +`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion +} +func init() { + artifactsM[GenInitCPIO] = Metadata{ + f: Toolchain.newGenInitCPIO, + + Name: "gen_init_cpio", + Description: "a program in the kernel source tree for creating initramfs archive", + } } -func init() { artifactsF[GenInitCPIO] = Toolchain.newGenInitCPIO } |
