Files
nixpkgs/nixos/modules/hardware/video/uvcvideo/uvcdynctrl-udev-rules.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

48 lines
1.1 KiB
Nix

{
buildEnv,
libwebcam,
makeWrapper,
runCommand,
drivers ? [ ],
udevDebug ? false,
}:
let
version = "0.0.0";
dataPath = buildEnv {
name = "uvcdynctrl-with-drivers-data-path";
paths = drivers ++ [ libwebcam ];
pathsToLink = [ "/share/uvcdynctrl/data" ];
ignoreCollisions = false;
};
dataDir = "${dataPath}/share/uvcdynctrl/data";
udevDebugVarValue = if udevDebug then "1" else "0";
in
runCommand "uvcdynctrl-udev-rules-${version}"
{
inherit dataPath;
nativeBuildInputs = [
makeWrapper
];
buildInputs = [
libwebcam
];
dontPatchELF = true;
dontStrip = true;
preferLocalBuild = true;
}
''
mkdir -p "$out/lib/udev"
makeWrapper "${libwebcam}/lib/udev/uvcdynctrl" "$out/lib/udev/uvcdynctrl" \
--set NIX_UVCDYNCTRL_DATA_DIR "${dataDir}" \
--set NIX_UVCDYNCTRL_UDEV_DEBUG "${udevDebugVarValue}"
mkdir -p "$out/lib/udev/rules.d"
cat "${libwebcam}/lib/udev/rules.d/80-uvcdynctrl.rules" | \
sed -r "s#RUN\+\=\"([^\"]+)\"#RUN\+\=\"$out/lib/udev/uvcdynctrl\"#g" > \
"$out/lib/udev/rules.d/80-uvcdynctrl.rules"
''