This commit is contained in:
Robin Appelman 2023-01-22 15:10:48 +01:00
commit 8488b1da4b
2 changed files with 21 additions and 19 deletions

View file

@ -4,8 +4,8 @@
jq, jq,
fetchFromGitHub, fetchFromGitHub,
patch, patch,
}: }: rev: sha256:
rev: sha256: stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "nvidia-patch"; pname = "nvidia-patch";
version = rev; version = rev;

View file

@ -20,28 +20,30 @@
devShell = pkgs.mkShell { devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [jq patch]; nativeBuildInputs = with pkgs; [jq patch];
}; };
}) // { })
// {
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: driverPackage.overrideAttrs ({ createPatch = prefix: rev: hash: driverPackage:
version, driverPackage.overrideAttrs ({
preFixup ? "", version,
... preFixup ? "",
}: let ...
patchList = importJSON "${jsons}/${prefix}patch-list.json"; }: let
objectList = importJSON "${jsons}/${prefix}object-list.json"; patchList = importJSON "${jsons}/${prefix}patch-list.json";
patch = patchList.${version}; objectList = importJSON "${jsons}/${prefix}object-list.json";
object = objectList.${version}; patch = patchList.${version};
in { object = objectList.${version};
preFixup = in {
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-nvenc = createPatch "" rev hash;
patch-fbc = createPatch "fbc-" rev hash; patch-fbc = createPatch "fbc-" rev hash;