mirror of
https://github.com/icewind1991/nvidia-patch-nixos.git
synced 2026-06-03 11:04:06 +02:00
feat: auto-patch function
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
parent
0fe336d3ee
commit
5086582139
1 changed files with 40 additions and 14 deletions
46
patch.nix
46
patch.nix
|
|
@ -1,19 +1,45 @@
|
|||
{nvidia-patch-list}: let
|
||||
createPatch = patchList: object: driverPackage:
|
||||
driverPackage.overrideAttrs ({
|
||||
{ nvidia-patch-list }:
|
||||
let
|
||||
createPatch =
|
||||
patchList: object: driverPackage:
|
||||
driverPackage.overrideAttrs (
|
||||
{
|
||||
version,
|
||||
preFixup ? "",
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
patch = patchList.${version};
|
||||
in {
|
||||
preFixup =
|
||||
preFixup
|
||||
+ ''
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue