linux-hardened/flake.nix

45 lines
1.4 KiB
Nix

{
description = "Hardened Linux kernel";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
nixConfig = {
extra-experimental-features = [ "pipe-operator" "pipe-operators" ];
extra-substituters = [ "https://cache.kyouma.net" ];
extra-trusted-public-keys = [ "cache.kyouma.net:Frjwu4q1rnwE/MnSTmX9yx86GNA/z3p/oElGvucLiZg=" ];
};
outputs = { self, nixpkgs, ... }@inputs: let
inherit (nixpkgs) lib;
packageWith = pkgs: args: pkgs.callPackage ./package.nix
(if builtins.isPath args then import args else args);
in {
lib.kernel = import ./lib.nix { inherit lib; };
packages = {
riscv64-linux = let
package = packageWith nixpkgs.legacyPackages.riscv64-linux;
in {
default = package { };
};
aarch64-linux = let
package = packageWith nixpkgs.legacyPackages.aarch64-linux;
in {
default = package { };
};
x86_64-linux = let
package = packageWith nixpkgs.legacyPackages.x86_64-linux;
in {
default = package { };
supermicro-h11ssw = package ./platform/supermicro-h11ssw.nix;
thinkpad-x1-extreme-gen5 = package ./platform/thinkpad-x1-extreme-gen5.nix;
};
};
hydraJobs = self.packages |> lib.foldlAttrs (jobs: system: packages: lib.recursiveUpdate jobs
(lib.mapAttrs (name: package: { ${system} = package; }) packages)) { };
};
}