clan-munix/flake.nix

81 lines
2.9 KiB
Nix
Raw Normal View History

2025-09-25 22:29:24 -03:00
{
2025-11-03 17:36:02 +01:00
nixConfig = {
extra-substituters = [ "https://cache.clan.lol" ];
extra-trusted-public-keys = [ "cache.clan.lol-1:3KztgSAB5R1M+Dz7vzkBGzXdodizbgLXGXKXlcQLA28=" ];
};
2025-09-25 22:29:24 -03:00
inputs = {
self.submodules = true;
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# nixpkgs.url = "git+https://github.com/valpackett/nixpkgs?shallow=1&submodules=1&ref=..";
2025-09-25 22:29:24 -03:00
flake-utils.url = "github:numtide/flake-utils";
virtwl.url = "git+https://github.com/valpackett/wayland-proxy-virtwl?shallow=1&submodules=1&ref=wip";
virtwl.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, flake-utils, virtwl, ... }: {
nixosModules.testvm = nixpkgs.lib.modules.importApply ./nixosModules/testvm.nix { inherit virtwl; };
nixosModules.default = nixpkgs.lib.modules.importApply ./nixosModules/default.nix { inherit self virtwl; };
nixosConfigurations.testvm-x86_64 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
self.nixosModules.default
self.nixosModules.testvm
{ nixpkgs.config.allowUnfree = true; }
];
};
nixosConfigurations.testvm-aarch64 = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
self.nixosModules.default
self.nixosModules.testvm
{ nixpkgs.config.allowUnfree = true; }
];
};
} // flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (system:
2025-09-25 22:29:24 -03:00
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
2025-09-25 22:29:24 -03:00
};
in {
checks =
(pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "package-${n}") self.packages.${system})
// (pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "devShell-${n}") self.devShells.${system})
// (pkgs.lib.optionalAttrs (system == "x86_64-linux") {
nixos-testvm = self.nixosConfigurations.testvm-x86_64.config.system.build.toplevel;
})
// (pkgs.lib.optionalAttrs (system == "aarch64-linux") {
nixos-testvm = self.nixosConfigurations.testvm-aarch64.config.system.build.toplevel;
});
packages = {
# Packages support variant parameter: null (default), "sev", or "tdx"
# To build a variant: packages.libkrunfw.override { variant = "sev"; }
libkrunfw = pkgs.callPackage ./packages/libkrunfw { };
2025-09-25 22:29:24 -03:00
libkrun = pkgs.callPackage ./packages/libkrun {
libkrunfw = self.packages.${system}.libkrunfw;
2025-09-25 22:29:24 -03:00
};
mesa = pkgs.callPackage ./packages/mesa { };
muvm = pkgs.callPackage ./packages/muvm {
libkrun = self.packages.${system}.libkrun;
};
munix = pkgs.callPackage ./packages/munix {
muvm = self.packages.${system}.muvm;
};
};
devShells.default = pkgs.callPackage ./devShells {
2025-09-25 22:29:24 -03:00
libkrun = self.packages.${system}.libkrun;
muvm = self.packages.${system}.muvm;
2025-09-25 22:29:24 -03:00
};
});
}