1{ inputs, ... }:
 2{
 3  perSystem =
 4    {
 5      config,
 6      system,
 7      lib,
 8      pkgsCuda,
 9      ...
10    }:
11    {
12      legacyPackages =
13        let
14          caps.llamaPackagesXavier = "7.2";
15          caps.llamaPackagesOrin = "8.7";
16          caps.llamaPackagesTX2 = "6.2";
17          caps.llamaPackagesNano = "5.3";
18
19          pkgsFor =
20            cap:
21            import inputs.nixpkgs {
22              inherit system;
23              config = {
24                cudaSupport = true;
25                cudaCapabilities = [ cap ];
26                cudaEnableForwardCompat = false;
27                inherit (pkgsCuda.config) allowUnfreePredicate;
28              };
29            };
30        in
31        builtins.mapAttrs (name: cap: (pkgsFor cap).callPackage ./scope.nix { }) caps;
32
33      packages = lib.optionalAttrs (system == "aarch64-linux") {
34        jetson-xavier = config.legacyPackages.llamaPackagesXavier.llama-cpp;
35        jetson-orin = config.legacyPackages.llamaPackagesOrin.llama-cpp;
36        jetson-nano = config.legacyPackages.llamaPackagesNano.llama-cpp;
37      };
38    };
39}