From 53a020611893492f9bbea82eb0deb6fcee8a299d Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Wed, 21 Oct 2026 21:09:26 -0400 Subject: [PATCH] linuxPackages.v4l2loopback: Use kernel make rules --- .../linux/v4l2loopback/default.nix | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix index 8c113cb84234..13e1ee4be4ae 100644 --- a/pkgs/os-specific/linux/v4l2loopback/default.nix +++ b/pkgs/os-specific/linux/v4l2loopback/default.nix @@ -3,7 +3,6 @@ stdenv, fetchFromGitHub, kernel, - kmod, kernelModuleMakeFlags, nix-update-script, }: @@ -12,6 +11,10 @@ stdenv.mkDerivation rec { pname = "v4l2loopback"; version = "0.15.4"; + __structuredAttrs = true; + strictDeps = true; + enableParallelBuilding = true; + src = fetchFromGitHub { owner = "umlaeute"; repo = "v4l2loopback"; @@ -24,16 +27,7 @@ stdenv.mkDerivation rec { "pic" ]; - # Don't use makeFlags for this - postBuild = '' - make utils - ''; - - nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; - - postInstall = '' - make install-utils PREFIX=$bin - ''; + nativeBuildInputs = kernel.moduleBuildDependencies; outputs = [ "out" @@ -42,8 +36,6 @@ stdenv.mkDerivation rec { makeFlags = kernelModuleMakeFlags ++ [ "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "v4l2loopback.ko" ]; installFlags = [ @@ -51,6 +43,22 @@ stdenv.mkDerivation rec { "INSTALL_MOD_PATH=${placeholder "out"}" ]; + buildPhase = '' + runHook preBuild + make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd) "''${makeFlags[@]}" + # Don't use makeFlags for this + make utils + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd) modules_install \ + "''${makeFlags[@]}" "''${installFlags[@]}" + make install-utils PREFIX=$bin + runHook postInstall + ''; + passthru.updateScript = nix-update-script { }; meta = {