1{ lib, stdenv, fetchFromGitHub, kernel, kmod }:
2
3stdenv.mkDerivation rec {
4 pname = "v4l2loopback";
5 version = "unstable-2023-02-19-${kernel.version}";
6
7 src = fetchFromGitHub {
8 owner = "umlaeute";
9 repo = "v4l2loopback";
10 rev = "fb410fc7af40e972058809a191fae9517b9313af";
11 hash = "sha256-gLFtR7s+3LUQ0BZxHbmaArHbufuphbtAX99nxJU3c84=";
12 };
13
14 patches = [
15 # fix bug https://github.com/umlaeute/v4l2loopback/issues/535
16 ./revert-pr518.patch
17 ];
18
19 hardeningDisable = [ "format" "pic" ];
20
21 preBuild = ''
22 substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install"
23 sed -i '/depmod/d' Makefile
24 '';
25
26 nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
27
28 postInstall = ''
29 make install-utils PREFIX=$bin
30 '';
31
32 outputs = [ "out" "bin" ];
33
34 makeFlags = kernel.makeFlags ++ [
35 "KERNELRELEASE=${kernel.modDirVersion}"
36 "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
37 ];
38
39 meta = with lib; {
40 description = "A kernel module to create V4L2 loopback devices";
41 homepage = "https://github.com/umlaeute/v4l2loopback";
42 license = licenses.gpl2Only;
43 maintainers = with maintainers; [ fortuneteller2k ];
44 platforms = platforms.linux;
45 outputsToInstall = [ "out" ];
46 };
47}