Merge pull request #5 from peperunas/main

fix: fix NvFBC patching
This commit is contained in:
Robin Appelman 2024-03-13 22:59:22 +01:00 committed by GitHub
commit 17dd5c8e24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,18 +4,17 @@
nixpkgs.url = "nixpkgs/release-23.05"; nixpkgs.url = "nixpkgs/release-23.05";
}; };
outputs = { outputs = { self, nixpkgs, utils, }:
self, utils.lib.eachDefaultSystem
nixpkgs, (system:
utils, let
}:
utils.lib.eachDefaultSystem (system: let
pkgs = (import nixpkgs) { pkgs = (import nixpkgs) {
inherit system; inherit system;
}; };
rev = "af2616a252c990a8435bf86cf4788ce435474e24"; rev = "af2616a252c990a8435bf86cf4788ce435474e24";
hash = "sha256-yocxfo7YvBCpHVV/ZhNQssyd3L9jvMFP7tz0cQucLr4="; hash = "sha256-yocxfo7YvBCpHVV/ZhNQssyd3L9jvMFP7tz0cQucLr4=";
in rec { in
rec {
# `nix develop` # `nix develop`
devShell = pkgs.mkShell { devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [ jq patch ]; nativeBuildInputs = with pkgs; [ jq patch ];
@ -23,29 +22,31 @@
}) })
// { // {
overlay = final: prev: { overlay = final: prev: {
nvidia-patch = rev: hash: let nvidia-patch = rev: hash:
let
inherit (nixpkgs.lib) importJSON; inherit (nixpkgs.lib) importJSON;
extract = final.callPackage ./extract.nix { }; extract = final.callPackage ./extract.nix { };
jsons = extract rev hash; jsons = extract rev hash;
createPatch = prefix: rev: hash: driverPackage: createPatch = prefix: object: rev: hash: driverPackage:
driverPackage.overrideAttrs ({ driverPackage.overrideAttrs ({ version
version, , preFixup ? ""
preFixup ? "", , ...
... }:
}: let let
patchList = importJSON "${jsons}/${prefix}patch-list.json"; patchList = importJSON "${jsons}/${prefix}patch-list.json";
patch = patchList.${version}; patch = patchList.${version};
object = "libnvidia-encode.so"; in
in { {
preFixup = preFixup =
preFixup preFixup
+ '' + ''
sed -i '${patch}' $out/lib/${object}.${version} sed -i '${patch}' $out/lib/${object}.${version}
''; '';
}); });
in { in
patch-nvenc = createPatch "" rev hash; {
patch-fbc = createPatch "fbc-" rev hash; patch-nvenc = createPatch "" "libnvidia-encode.so" rev hash;
patch-fbc = createPatch "fbc-" "libnvidia-fbc.so" rev hash;
}; };
}; };
}; };