79 lines
2.4 KiB
Nix
79 lines
2.4 KiB
Nix
{
|
|
description = "PatOS is a minimal, immutable Linux distribution specialized for the Patagia Platform.";
|
|
|
|
inputs = {
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
flake-utils,
|
|
nixpkgs,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
buildParams = {
|
|
revision = self.shortRev or self.dirtyShortRev or "dirty";
|
|
updateUrl = builtins.getEnv "PATOS_UPDATE_URL";
|
|
secureBoot = builtins.getEnv "PATOS_ENABLE_SECURE_BOOT";
|
|
version = "0.0.1";
|
|
};
|
|
|
|
overlay = import ./overlays (buildParams // { });
|
|
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [ overlay ];
|
|
};
|
|
pkgsCross = import nixpkgs {
|
|
inherit system;
|
|
overlays = [ overlay ];
|
|
crossSystem = {
|
|
config = "aarch64-unknown-linux-gnu";
|
|
};
|
|
};
|
|
in
|
|
{
|
|
packages = {
|
|
default = self.packages.${system}.image;
|
|
|
|
image = pkgs.callPackage ./pkgs/image (buildParams // { microcode = "intel"; });
|
|
image-aarch64 = pkgsCross.callPackage ./pkgs/image (buildParams // { });
|
|
|
|
qemu-uefi-tpm = pkgs.callPackage ./utils/qemu-uefi-tpm.nix { };
|
|
qemu-aarch64-uefi-tpm = pkgs.callPackage ./utils/qemu-aarch64-uefi-tpm.nix { };
|
|
|
|
# systemd sysext packages
|
|
debug-tools = pkgs.callPackage ./pkgs/sysext/debug-tools.nix (buildParams // { });
|
|
debug-tools-aarch64 = pkgsCross.callPackage ./pkgs/sysext/debug-tools.nix (buildParams // { });
|
|
|
|
firewall-tools = pkgs.callPackage ./pkgs/sysext/firewall-tools.nix (buildParams // { });
|
|
firewall-tools-aarch64 = pkgsCross.callPackage ./pkgs/sysext/firewall-tools.nix (buildParams // { });
|
|
|
|
linux-firmware = pkgs.callPackage ./pkgs/linux-firmware { };
|
|
};
|
|
|
|
checks = {
|
|
simple-test = pkgs.runCommand "simple-test" { } ''
|
|
${self.packages.${system}.default}/bin/my-program
|
|
touch $out
|
|
'';
|
|
};
|
|
|
|
formatter = pkgs.nixpkgs-fmt;
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
just
|
|
nixd
|
|
nixfmt-rfc-style
|
|
self.packages.${system}.qemu-uefi-tpm
|
|
];
|
|
};
|
|
|
|
}
|
|
);
|
|
}
|