nixos/uptime-kuma: Add additional lockdown settings to systemd unit (#361452)
[NixPkgs.git] / pkgs / os-specific / linux / mwprocapture / default.nix
blobc83596a1fbe0470350685a4f03f10757293f147e
1 { lib, stdenv, fetchurl, kernel, alsa-lib }:
3 let
4   bits =
5     if stdenv.hostPlatform.is64bit then "64"
6     else "32";
8   libpath = lib.makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc alsa-lib ];
11 stdenv.mkDerivation rec {
12   pname = "mwprocapture";
13   subVersion = "4390";
14   version = "1.3.0.${subVersion}-${kernel.version}";
16   src = fetchurl {
17     url = "https://www.magewell.com/files/drivers/ProCaptureForLinux_${subVersion}.tar.gz";
18     sha256 = "sha256-a2cU7PYQh1KR5eeMhMNx2Sc3HHd7QvCG9+BoJyVPp1Y=";
19   };
21   nativeBuildInputs = kernel.moduleBuildDependencies;
23   preConfigure = ''
24     cd ./src
25     export INSTALL_MOD_PATH="$out"
26   '';
28   hardeningDisable = [ "pic" "format" ];
30   makeFlags = [
31     "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
32   ];
34   env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-fallthrough";
36   postInstall = ''
37     cd ../
38     mkdir -p $out/bin
39     cp bin/mwcap-control_${bits} $out/bin/mwcap-control
40     cp bin/mwcap-info_${bits} $out/bin/mwcap-info
41     mkdir -p $out/lib/udev/rules.d
42     # source has a filename typo
43     cp scripts/10-procatpure-event-dev.rules $out/lib/udev/rules.d/10-procapture-event-dev.rules
44     cp -r src/res $out
46     patchelf \
47       --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
48       --set-rpath "${libpath}" \
49       "$out"/bin/mwcap-control
51     patchelf \
52       --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
53       --set-rpath "${libpath}" \
54       "$out"/bin/mwcap-info
55   '';
57   meta = with lib; {
58     homepage = "https://www.magewell.com/";
59     description = "Linux driver for the Magewell Pro Capture family";
60     license = licenses.unfreeRedistributable;
61     maintainers = with maintainers; [ flexiondotorg ];
62     platforms = platforms.linux;
63   };