72 lines
2.2 KiB
Nix
72 lines
2.2 KiB
Nix
{ nixpkgs, inputs }:
|
|
|
|
let
|
|
mkSystem = { system, cudaSupport ? false }:
|
|
let
|
|
config = {
|
|
inherit cudaSupport;
|
|
allowUnfree = true;
|
|
};
|
|
|
|
cachixOverlay = final: prev: {
|
|
nixosModules = (prev.nixosModules or { }) // {
|
|
cachixConfig = import ../cachix.nix;
|
|
};
|
|
};
|
|
|
|
extOverlays = [
|
|
(inputs.nvidia-patch.overlays.default)
|
|
cachixOverlay
|
|
];
|
|
|
|
importNixpkgs = { flake }:
|
|
import flake {
|
|
inherit system config;
|
|
overlays = extOverlays;
|
|
};
|
|
|
|
unstablePkgs = importNixpkgs { flake = inputs.nixos-unstable; };
|
|
masterPkgs = importNixpkgs { flake = inputs.nixpkgs-master; };
|
|
localPkgs = importNixpkgs { flake = inputs.local-unstable; };
|
|
agenixPkgs = importNixpkgs { flake = inputs.agenix-flake; };
|
|
pepePkgs = inputs.pepeflake.packages.${system} // inputs.pepeflake.legacyPackages.${system} or { };
|
|
langtoolPkgs = inputs.langtool-ngrams.packages.${system} // inputs.langtool-ngrams.legacyPackages.${system} or { };
|
|
|
|
additionalOverlays = [
|
|
(final: prev: { inherit unstablePkgs; })
|
|
(final: prev: { inherit localPkgs; })
|
|
(final: prev: { inherit agenixPkgs; })
|
|
(final: prev: { inherit masterPkgs; })
|
|
(final: prev: { inherit pepePkgs; })
|
|
(final: prev: { inherit langtoolPkgs; })
|
|
];
|
|
|
|
pkgs = import nixpkgs {
|
|
inherit system config;
|
|
overlays = additionalOverlays ++ extOverlays ++ [
|
|
(final: prev: {
|
|
ctranslate2 = prev.ctranslate2.override {
|
|
withCUDA = cudaSupport;
|
|
withCuDNN = cudaSupport;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
|
|
utils =
|
|
let
|
|
inherit (pkgs.lib) makeScope;
|
|
inherit (pkgs) newScope;
|
|
in
|
|
makeScope newScope (self: rec {
|
|
inherit nixpkgs inputs;
|
|
inherit (self.callPackage ../lib/utils.nix { }) mkSysRole mkHomeRole;
|
|
inherit (user) mkUser;
|
|
|
|
user = self.callPackage ../lib/user.nix { home-manager = inputs.home-manager; };
|
|
host = self.callPackage ../lib/host.nix { home-manager = inputs.home-manager; };
|
|
});
|
|
in
|
|
{ inherit pkgs utils; };
|
|
in
|
|
{ inherit mkSystem; } |