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 =
patchList: object: driverPackage:
driverPackage.overrideAttrs (
{
version, version,
preFixup ? "", preFixup ? "",
... ...
}: let }:
let
patch = patchList.${version}; patch = patchList.${version};
in { in
preFixup = {
preFixup 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;
} }