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