nixpkgs/pkgs/os-specific/linux/hid-fanatecff/default.nix
2026-05-28 03:15:27 +00:00

57 lines
1.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
kernel,
kernelModuleMakeFlags,
bashNonInteractive,
linuxConsoleTools,
nix-update-script,
}:
let
moduleDir = "lib/modules/${kernel.modDirVersion}/kernel/drivers/hid";
in
stdenv.mkDerivation (finalAttrs: {
pname = "hid-fanatecff";
version = "0.2.3";
src = fetchFromGitHub {
owner = "gotzl";
repo = "hid-fanatecff";
tag = finalAttrs.version;
hash = "sha256-lJ+Pn1OLgZK+T1dsV1mwzAwJJgsouFFwDH7bFUD1SGI=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
postPatch = ''
mkdir -p $out/{lib/udev/rules.d,${moduleDir}}
sed -i '/depmod/d' Makefile
substituteInPlace Makefile \
--replace-fail '/etc/udev/rules.d' "$out/lib/udev/rules.d"
substituteInPlace fanatec.rules \
--replace-fail '/usr/bin/evdev-joystick' '${lib.getExe' linuxConsoleTools "evdev-joystick"}' \
--replace-fail '/bin/sh' '${lib.getExe bashNonInteractive}'
'';
makeFlags = kernelModuleMakeFlags ++ [
"KVERSION=${kernel.modDirVersion}"
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"MODULEDIR=$(out)/${moduleDir}"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Linux module driver for Fanatec driving wheels";
homepage = "https://github.com/gotzl/hid-fanatecff";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ rake5k ];
platforms = lib.platforms.linux;
mainProgram = "hid-fanatecff";
broken = lib.versionOlder kernel.version "6.1";
};
})