Unverified Commit ba66af58 authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

hid-fanatecff: Init at 0.2.2 (#434560)

parents e1b9f1f2 ea3e190c
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
{ lib, config, ... }:

let
  cfg = config.hardware.hid-fanatecff;
  inherit (config.boot.kernelPackages) hid-fanatecff;
  inherit (lib) maintainers mkEnableOption mkIf;
in
{
  options.hardware.hid-fanatecff = {
    enable = mkEnableOption "hid-fanatecff, a Linux kernel driver that aims to add support for Fanatec devices";
  };

  config = mkIf cfg.enable {
    boot.extraModulePackages = [ hid-fanatecff ];
    services.udev.packages = [ hid-fanatecff ];
  };

  meta.maintainers = with maintainers; [ rake5k ];
}
+1 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@
  ./hardware/gpgsmartcards.nix
  ./hardware/graphics.nix
  ./hardware/hackrf.nix
  ./hardware/hid-fanatecff.nix
  ./hardware/i2c.nix
  ./hardware/infiniband.nix
  ./hardware/inputmodule.nix
+56 −0
Original line number Diff line number Diff line
{
  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.2";

  src = fetchFromGitHub {
    owner = "gotzl";
    repo = "hid-fanatecff";
    tag = finalAttrs.version;
    hash = "sha256-aVuTnrxw7zWMZ1U21DUKDvcYlIp7iHJHaX8ijmUd/TE=";
  };

  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";
  };
})
+2 −0
Original line number Diff line number Diff line
@@ -463,6 +463,8 @@ in

        nct6687d = callPackage ../os-specific/linux/nct6687d { };

        hid-fanatecff = callPackage ../os-specific/linux/hid-fanatecff { };

        new-lg4ff = callPackage ../os-specific/linux/new-lg4ff { };

        zenergy = callPackage ../os-specific/linux/zenergy { };