Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 61 lines 1.7 kB view raw
1{ 2 coreutils, 3 fetchFromGitHub, 4 kernel, 5 kernelModuleMakeFlags, 6 stdenv, 7 lib, 8 udevCheckHook, 9 util-linux, 10}: 11 12let 13 common = import ../../../development/python-modules/openrazer/common.nix { 14 inherit lib fetchFromGitHub; 15 }; 16in 17stdenv.mkDerivation ( 18 common 19 // { 20 pname = "openrazer"; 21 version = "${common.version}-${kernel.version}"; 22 23 nativeBuildInputs = [ udevCheckHook ] ++ kernel.moduleBuildDependencies; 24 25 makeFlags = kernelModuleMakeFlags ++ [ 26 "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 27 ]; 28 29 doInstallCheck = true; 30 31 installPhase = '' 32 runHook preInstall 33 34 binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid" 35 mkdir -p "$binDir" 36 cp -v driver/*.ko "$binDir" 37 RAZER_MOUNT_OUT="$out/bin/razer_mount" 38 RAZER_RULES_OUT="$out/etc/udev/rules.d/99-razer.rules" 39 install -m 644 -v -D install_files/udev/99-razer.rules $RAZER_RULES_OUT 40 install -m 755 -v -D install_files/udev/razer_mount $RAZER_MOUNT_OUT 41 substituteInPlace $RAZER_RULES_OUT \ 42 --replace razer_mount $RAZER_MOUNT_OUT \ 43 --replace plugdev openrazer 44 substituteInPlace $RAZER_MOUNT_OUT \ 45 --replace /usr/bin/logger ${util-linux}/bin/logger \ 46 --replace chgrp ${coreutils}/bin/chgrp \ 47 --replace "PATH='/sbin:/bin:/usr/sbin:/usr/bin'" "" \ 48 --replace plugdev openrazer 49 50 runHook postInstall 51 ''; 52 53 enableParallelBuilding = true; 54 55 meta = common.meta // { 56 description = "Entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux"; 57 mainProgram = "razer_mount"; 58 broken = kernel.kernelOlder "4.19"; 59 }; 60 } 61)