mirror of
https://github.com/icewind1991/nvidia-patch-nixos.git
synced 2026-06-03 11:04:06 +02:00
flake: modify object accordingly to file to patch
This commit is contained in:
parent
f8c827b253
commit
021ad79e03
1 changed files with 42 additions and 41 deletions
83
flake.nix
83
flake.nix
|
|
@ -4,49 +4,50 @@
|
|||
nixpkgs.url = "nixpkgs/release-23.05";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
utils,
|
||||
}:
|
||||
utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = (import nixpkgs) {
|
||||
inherit system;
|
||||
};
|
||||
rev = "af2616a252c990a8435bf86cf4788ce435474e24";
|
||||
hash = "sha256-yocxfo7YvBCpHVV/ZhNQssyd3L9jvMFP7tz0cQucLr4=";
|
||||
in rec {
|
||||
# `nix develop`
|
||||
devShell = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [jq patch];
|
||||
};
|
||||
})
|
||||
outputs = { self, nixpkgs, utils, }:
|
||||
utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = (import nixpkgs) {
|
||||
inherit system;
|
||||
};
|
||||
rev = "af2616a252c990a8435bf86cf4788ce435474e24";
|
||||
hash = "sha256-yocxfo7YvBCpHVV/ZhNQssyd3L9jvMFP7tz0cQucLr4=";
|
||||
in
|
||||
rec {
|
||||
# `nix develop`
|
||||
devShell = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [ jq patch ];
|
||||
};
|
||||
})
|
||||
// {
|
||||
overlay = final: prev: {
|
||||
nvidia-patch = rev: hash: let
|
||||
inherit (nixpkgs.lib) importJSON;
|
||||
extract = final.callPackage ./extract.nix {};
|
||||
jsons = extract rev hash;
|
||||
createPatch = prefix: rev: hash: driverPackage:
|
||||
driverPackage.overrideAttrs ({
|
||||
version,
|
||||
preFixup ? "",
|
||||
...
|
||||
}: let
|
||||
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
||||
patch = patchList.${version};
|
||||
object = "libnvidia-encode.so";
|
||||
in {
|
||||
preFixup =
|
||||
preFixup
|
||||
+ ''
|
||||
sed -i '${patch}' $out/lib/${object}.${version}
|
||||
'';
|
||||
});
|
||||
in {
|
||||
patch-nvenc = createPatch "" rev hash;
|
||||
patch-fbc = createPatch "fbc-" rev hash;
|
||||
};
|
||||
nvidia-patch = rev: hash:
|
||||
let
|
||||
inherit (nixpkgs.lib) importJSON;
|
||||
extract = final.callPackage ./extract.nix { };
|
||||
jsons = extract rev hash;
|
||||
createPatch = prefix: object: rev: hash: driverPackage:
|
||||
driverPackage.overrideAttrs ({ version
|
||||
, preFixup ? ""
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
||||
patch = patchList.${version};
|
||||
in
|
||||
{
|
||||
preFixup =
|
||||
preFixup
|
||||
+ ''
|
||||
sed -i '${patch}' $out/lib/${object}.${version}
|
||||
'';
|
||||
});
|
||||
in
|
||||
{
|
||||
patch-nvenc = createPatch "" "libnvidia-encode.so" rev hash;
|
||||
patch-fbc = createPatch "fbc-" "libnvidia-fbc.so" rev hash;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue