1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 kernel,
6 kmod,
7 kernelModuleMakeFlags,
8}:
9
10let
11 version = "0.13.2";
12
13in
14stdenv.mkDerivation {
15 pname = "v4l2loopback";
16 version = "${version}-${kernel.version}";
17
18 src = fetchFromGitHub {
19 owner = "umlaeute";
20 repo = "v4l2loopback";
21 rev = "v${version}";
22 hash = "sha256-rcwgOXnhRPTmNKUppupfe/2qNUBDUqVb3TeDbrP5pnU=";
23 };
24
25 hardeningDisable = [
26 "format"
27 "pic"
28 ];
29
30 preBuild = ''
31 substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install"
32 sed -i '/depmod/d' Makefile
33 '';
34
35 nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
36
37 postInstall = ''
38 make install-utils PREFIX=$bin
39 '';
40
41 outputs = [
42 "out"
43 "bin"
44 ];
45
46 makeFlags = kernelModuleMakeFlags ++ [
47 "KERNELRELEASE=${kernel.modDirVersion}"
48 "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
49 ];
50
51 meta = with lib; {
52 description = "Kernel module to create V4L2 loopback devices";
53 mainProgram = "v4l2loopback-ctl";
54 homepage = "https://github.com/umlaeute/v4l2loopback";
55 license = licenses.gpl2Only;
56 maintainers = with maintainers; [ moni ];
57 platforms = platforms.linux;
58 outputsToInstall = [ "out" ];
59 };
60}