diff --git a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix new file mode 100644 index 000000000000..fd6b85a4dbd6 --- /dev/null +++ b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix @@ -0,0 +1,28 @@ +{ lib, fetchFromGitHub, kernel }: +kernel.stdenv.mkDerivation { + name = "rust-out-of-tree-module"; + + src = fetchFromGitHub { + owner = "Rust-for-linux"; + repo = "rust-out-of-tree-module"; + + rev = "7addf9dafba795524f6179a557f7272ecbe1b165"; + hash = "sha256-Bj7WonZ499W/FajbxjM7yBkU9iTxTW7CrRbCSzWbsSc="; + }; + + nativeBuildInputs = kernel.moduleBuildDependencies; + makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + + installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; + installTargets = [ "modules_install" ]; + + meta = { + broken = !kernel.withRust; + description = "A basic template for an out-of-tree Linux kernel module written in Rust"; + homepage = "https://github.com/Rust-for-Linux/rust-out-of-tree-module"; + license = lib.licenses.gpl2Only; + maintainers = [ lib.maintainers.blitz ]; + platforms = lib.platforms.linux; + }; + +} diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix index dc71b01f3c26..9017edd70126 100644 --- a/pkgs/top-level/linux-kernels.nix +++ b/pkgs/top-level/linux-kernels.nix @@ -458,6 +458,8 @@ in { facetimehd = callPackage ../os-specific/linux/facetimehd { }; + rust-out-of-tree-module = if lib.versionAtLeast kernel.version "6.7" then callPackage ../os-specific/linux/rust-out-of-tree-module { } else null; + tuxedo-keyboard = if lib.versionAtLeast kernel.version "4.14" then callPackage ../os-specific/linux/tuxedo-keyboard { } else null; jool = callPackage ../os-specific/linux/jool { };