save extracted patch list in repo instead of requiring IFD

This commit is contained in:
Robin Appelman 2024-03-31 18:11:18 +02:00
commit a7d3995c69
9 changed files with 437 additions and 85 deletions

View file

@ -1,53 +1,31 @@
{
inputs = {
utils.url = "github:numtide/flake-utils";
nixpkgs.url = "nixpkgs/release-23.05";
nixpkgs.url = "nixpkgs/release-23.11";
};
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: 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;
};
outputs = {
self,
nixpkgs,
utils,
nvidia-patch,
}:
utils.lib.eachDefaultSystem (system: let
overlays = [
(import ./overlay.nix)
];
pkgs = (import nixpkgs) {
inherit system overlays;
};
in rec {
packages = rec {
inherit (pkgs) nvidia-patch-extractor nvidia-patch;
};
devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [jq patch];
};
})
// {
overlays.default = import ./overlay.nix;
};
}