feat: auto-patch function

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
Nikolaos Karaolidis 2026-02-01 11:45:25 +00:00
commit 5086582139
No known key found for this signature in database
GPG key ID: DA68C898BF4CF588

View file

@ -1,19 +1,45 @@
{nvidia-patch-list}: let { nvidia-patch-list }:
createPatch = patchList: object: driverPackage: let
driverPackage.overrideAttrs ({ createPatch =
version, patchList: object: driverPackage:
preFixup ? "", driverPackage.overrideAttrs (
... {
}: let version,
patch = patchList.${version}; preFixup ? "",
in { ...
preFixup = }:
preFixup let
+ '' patch = patchList.${version};
in
{
preFixup = preFixup + ''
sed -i '${patch}' $out/lib/${object}.${version} sed -i '${patch}' $out/lib/${object}.${version}
''; '';
}); }
in { );
patch-nvenc = createPatch nvidia-patch-list.nvenc "libnvidia-encode.so"; patch-nvenc = createPatch nvidia-patch-list.nvenc "libnvidia-encode.so";
patch-fbc = createPatch nvidia-patch-list.fbc "libnvidia-fbc.so"; patch-fbc = createPatch nvidia-patch-list.fbc "libnvidia-fbc.so";
auto-patch =
nvidiaPackage:
let
maybeFbc =
if builtins.hasAttr nvidiaPackage.version nvidia-patch-list.fbc then
patch-fbc nvidiaPackage
else
nvidiaPackage;
maybeNvenc =
if builtins.hasAttr maybeFbc.version nvidia-patch-list.nvenc then
patch-nvenc maybeFbc
else
maybeFbc;
nvidiaPackageFinal = maybeNvenc;
in
nvidiaPackageFinal;
in
{
inherit patch-nvenc patch-fbc auto-patch;
} }