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
createPatch = patchList: object: driverPackage:
driverPackage.overrideAttrs ({
version,
preFixup ? "",
...
}: let
patch = patchList.${version};
in {
preFixup =
preFixup
+ ''
{ nvidia-patch-list }:
let
createPatch =
patchList: object: driverPackage:
driverPackage.overrideAttrs (
{
version,
preFixup ? "",
...
}:
let
patch = patchList.${version};
in
{
preFixup = preFixup + ''
sed -i '${patch}' $out/lib/${object}.${version}
'';
});
in {
}
);
patch-nvenc = createPatch nvidia-patch-list.nvenc "libnvidia-encode.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;
}