1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 kernel,
6 kmod,
7 kernelModuleMakeFlags,
8}:
9
10let
11 version = "0.15.1";
12
13in
14stdenv.mkDerivation {
15 pname = "v4l2loopback";
16 version = "${version}-${kernel.version}";
17
18 src = fetchFromGitHub {
19 owner = "umlaeute";
20 repo = "v4l2loopback";
21 tag = "v${version}";
22 hash = "sha256-uokj0MB6bw4I8q5dVmSO9XMDvh4T7YODBoCCHvEf4v4=";
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 = {
52 description = "Kernel module to create V4L2 loopback devices";
53 mainProgram = "v4l2loopback-ctl";
54 homepage = "https://github.com/umlaeute/v4l2loopback";
55 license = lib.licenses.gpl2Only;
56 maintainers = with lib.maintainers; [
57 moni
58 bot-wxt1221
59 ];
60 platforms = lib.platforms.linux;
61 outputsToInstall = [ "out" ];
62 };
63}