aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-13 03:15:11 +0900
committerOphestra <cat@gensokyo.uk>2026-02-13 03:15:27 +0900
commitd49e6544826c533c395e6a1526d672e9ae93ef16 (patch)
tree7e36e097ea871494aa2c4f57e6863e171cfb7a12 /internal
parentb746e352e546a0fdde9f26d124256afba33e30fb (diff)
internal/rosa: kmod artifact
Required by the kernel. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/all.go2
-rw-r--r--internal/rosa/kmod.go43
2 files changed, 45 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 2414a91d..51d15760 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -35,6 +35,7 @@ const (
HakureiDist
IniConfig
KernelHeaders
+ Kmod
LibXau
Libexpat
Libpsl
@@ -139,6 +140,7 @@ func ResolveName(name string) (p PArtifact, ok bool) {
"hakurei-dist": HakureiDist,
"iniconfig": IniConfig,
"kernel-headers": KernelHeaders,
+ "kmod": Kmod,
"libXau": LibXau,
"libexpat": Libexpat,
"libpsl": Libpsl,
diff --git a/internal/rosa/kmod.go b/internal/rosa/kmod.go
new file mode 100644
index 00000000..c32e4167
--- /dev/null
+++ b/internal/rosa/kmod.go
@@ -0,0 +1,43 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newKmod() pkg.Artifact {
+ const (
+ version = "34.2"
+ checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
+ )
+ return t.New("kmod-"+version, 0, []pkg.Artifact{
+ t.Load(Python),
+ t.Load(Meson),
+ t.Load(PkgConfig),
+ t.Load(CMake),
+ t.Load(Ninja),
+
+ t.Load(Zlib),
+ t.Load(Zstd),
+ t.Load(OpenSSL),
+ t.Load(KernelHeaders),
+ }, nil, nil, `
+cd "$(mktemp -d)"
+meson setup \
+ --reconfigure \
+ --buildtype=release \
+ --prefix=/system \
+ -Dsysconfdir=/system/etc \
+ -Dbashcompletiondir=no \
+ -Dfishcompletiondir=no \
+ -Dxz=disabled \
+ -Dmanpages=false \
+ . /usr/src/kmod
+meson compile
+meson install \
+ --destdir=/work
+`, pkg.Path(AbsUsrSrc.Append("kmod"), false, pkg.NewHTTPGetTar(
+ nil, "https://www.kernel.org/pub/linux/utils/kernel/"+
+ "kmod/kmod-"+version+".tar.gz",
+ mustDecode(checksum),
+ pkg.TarGzip,
+ )))
+}
+func init() { artifactsF[Kmod] = Toolchain.newKmod }