68 lines
1.5 KiB
Nix
68 lines
1.5 KiB
Nix
|
{
|
||
|
addDriverRunpath,
|
||
|
allowedPatternsPath ? callPackage ./closure.nix { inherit allowedPatterns; },
|
||
|
allowedPatterns ? rec {
|
||
|
# This config is just an example.
|
||
|
# When the hook observes either of the following requiredSystemFeatures:
|
||
|
nvidia-gpu.onFeatures = [
|
||
|
"gpu"
|
||
|
"nvidia-gpu"
|
||
|
"opengl"
|
||
|
"cuda"
|
||
|
];
|
||
|
# It exposes these paths in the sandbox:
|
||
|
nvidia-gpu.paths = [
|
||
|
addDriverRunpath.driverLink
|
||
|
"/dev/dri"
|
||
|
"/dev/nvidia*"
|
||
|
];
|
||
|
nvidia-gpu.unsafeFollowSymlinks = true;
|
||
|
},
|
||
|
callPackage,
|
||
|
extraWrapperArgs ? [ ],
|
||
|
lib,
|
||
|
makeWrapper,
|
||
|
nix,
|
||
|
nixosTests,
|
||
|
python3Packages,
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
attrs = builtins.fromTOML (builtins.readFile ./pyproject.toml);
|
||
|
pname = attrs.project.name;
|
||
|
inherit (attrs.project) version;
|
||
|
in
|
||
|
|
||
|
python3Packages.buildPythonApplication {
|
||
|
inherit pname version;
|
||
|
pyproject = true;
|
||
|
|
||
|
src = lib.cleanSource ./.;
|
||
|
|
||
|
nativeBuildInputs = [
|
||
|
makeWrapper
|
||
|
python3Packages.setuptools
|
||
|
];
|
||
|
|
||
|
postFixup = ''
|
||
|
wrapProgram $out/bin/${pname} \
|
||
|
--add-flags "--patterns ${allowedPatternsPath}" \
|
||
|
--add-flags "--nix-exe ${lib.getExe nix}" \
|
||
|
${builtins.concatStringsSep " " extraWrapperArgs}
|
||
|
'';
|
||
|
|
||
|
passthru = {
|
||
|
inherit allowedPatterns;
|
||
|
tests = {
|
||
|
inherit (nixosTests) nix-required-mounts;
|
||
|
};
|
||
|
};
|
||
|
meta = {
|
||
|
inherit (attrs.project) description;
|
||
|
homepage = attrs.project.urls.Homepage;
|
||
|
license = lib.licenses.mit;
|
||
|
mainProgram = attrs.project.name;
|
||
|
maintainers = with lib.maintainers; [ SomeoneSerge ];
|
||
|
};
|
||
|
}
|