nix/pkgs/hid-fanatecff.nix

58 lines
1.4 KiB
Nix
Raw Normal View History

2024-10-11 02:11:34 +02:00
{ stdenv
, pkgs
, lib
, fetchFromGitHub
, kmod
, kernelPackages
, breakpointHook
,
}:
let
kernel = kernelPackages.kernel;
in
stdenv.mkDerivation rec {
name = "hid-fanatecff-${version}-${kernel.version}";
version = "0.1.2";
src = fetchFromGitHub {
owner = "gotzl";
repo = "hid-fanatecff";
rev = version;
sha256 = "sha256-twDbjX0p/A18L2x7eS2hyneuQq7rLMxTBT/GfTdweAE=";
};
sourceRoot = "source";
hardeningDisable = [ "pic" "format" ];
nativeBuildInputs =
kernel.moduleBuildDependencies
++ [
pkgs.linuxConsoleTools
];
makeFlags = [
"KVERSION=${kernel.modDirVersion}"
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"MODULEDIR=$(out)/lib/modules/${kernel.modDirVersion}"
];
preInstallPhase = ''
sed -i '/fanatec.rules/d' Makefile
sed -i '/depmod/d' Makefile
mkdir -p $out/lib/modules/${kernel.modDirVersion}
'';
postPhase = ''
substituteInPlace fanatec.rules --replace /usr/bin/evdev-joystick ${pkgs.linuxConsoleTools}/bin/evdev-joystick
mkdir -p $out/lib/udev/rules.d
cp fanatec.rules $out/lib/udev/rules.d/99-fanatec.rules
'';
preInstallPhases = [ "preInstallPhase" ];
postPhases = [ "postPhase" ];
meta = with lib; {
description = "A kernel module that provides support for fanatec wheels and pedals";
homepage = "https://github.com/gotzl/hid-fanatecff";
license = licenses.gpl2;
platforms = platforms.linux;
};
}