aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-20 18:45:31 +0900
committerOphestra <cat@gensokyo.uk>2026-02-20 18:45:42 +0900
commitb983917a6ef8c054347029c9f215f93ff8bd6214 (patch)
tree53fdba25ba55816b8547a2163005a904ee643c1f
parente1b8f40addcbd559ab6afe3c5846efdedda7e75d (diff)
internal/rosa: expose kernel source
This also removes the unused kernel helper. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/kernel.go58
2 files changed, 28 insertions, 32 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 81f7272d..21989945 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -39,6 +39,7 @@ const (
HakureiDist
IniConfig
KernelHeaders
+ KernelSource
Kmod
LibXau
Libexpat
@@ -153,6 +154,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"hakurei-dist": HakureiDist,
"iniconfig": IniConfig,
"kernel-headers": KernelHeaders,
+ "kernel-source": KernelSource,
"kmod": Kmod,
"libXau": LibXau,
"libexpat": Libexpat,
diff --git a/internal/rosa/kernel.go b/internal/rosa/kernel.go
index 06c1d039..5aef20e8 100644
--- a/internal/rosa/kernel.go
+++ b/internal/rosa/kernel.go
@@ -1,44 +1,38 @@
package rosa
-import (
- "slices"
+import "hakurei.app/internal/pkg"
- "hakurei.app/internal/pkg"
-)
+const kernelVersion = "6.12.73"
-// newKernel is a helper for interacting with Kbuild.
-func (t Toolchain) newKernel(
- flag int,
- patches [][2]string,
- script string,
- extra ...pkg.Artifact,
-) pkg.Artifact {
- const (
- version = "6.12.73"
- checksum = "29oUBJKF1ULIv1-XQLpEUUc3LgjUSmyvOSskG37MYUcBlBjMk7RcbCTLrD7UfSM6"
- )
- return t.New("kernel-"+version, flag, slices.Concat([]pkg.Artifact{
- t.Load(Make),
- }, extra), nil, nil, `
-export LLVM=1
-export HOSTLDFLAGS="${LDFLAGS}"
-cd /usr/src/linux
-`+script, pkg.Path(AbsUsrSrc.Append("linux"), true, t.NewPatchedSource(
- "kernel", version, pkg.NewHTTPGetTar(
- nil,
- "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
- "snapshot/linux-"+version+".tar.gz",
- mustDecode(checksum),
- pkg.TarGzip,
- ), false, patches...,
+func (t Toolchain) newKernelSource() pkg.Artifact {
+ const checksum = "29oUBJKF1ULIv1-XQLpEUUc3LgjUSmyvOSskG37MYUcBlBjMk7RcbCTLrD7UfSM6"
+ 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, pkg.NewHTTPGetTar(
+ nil, "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
+ "snapshot/linux-"+kernelVersion+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
)))
}
+func init() { artifactsF[KernelSource] = Toolchain.newKernelSource }
func (t Toolchain) newKernelHeaders() pkg.Artifact {
- return t.newKernel(TEarly, nil, `
-make "-j$(nproc)" \
+ return t.New("kernel-headers-"+kernelVersion, TEarly, []pkg.Artifact{
+ t.Load(Make),
+ t.Load(Rsync),
+
+ t.Load(KernelSource),
+ }, nil, nil, `
+cd /usr/src/linux
+make \
+ "-j$(nproc)" \
+ LLVM=1 \
+ HOSTLDFLAGS="${LDFLAGS}" \
INSTALL_HDR_PATH=/work/system \
headers_install
-`, t.Load(Rsync))
+`)
}
func init() { artifactsF[KernelHeaders] = Toolchain.newKernelHeaders }