diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 2414a91..51d1576 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 0000000..c32e416 --- /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 }