nixos: add a lanzaboote module
This commit is contained in:
		
							parent
							
								
									a089c6fb3d
								
							
						
					
					
						commit
						c53477fbf5
					
				
							
								
								
									
										17
									
								
								flake.lock
								
								
								
								
							
							
						
						
									
										17
									
								
								flake.lock
								
								
								
								
							| 
						 | 
				
			
			@ -47,6 +47,22 @@
 | 
			
		|||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-test": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1669200924,
 | 
			
		||||
        "narHash": "sha256-NUPT9VMQHnFRqqd/ILcfMSbOvPTLbVBXGO7SWj0N7Dg=",
 | 
			
		||||
        "owner": "RaitoBezarius",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "542f657a93ae903e07d6274de413142c4b99d6ed",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "RaitoBezarius",
 | 
			
		||||
        "ref": "experimental-secureboot",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1669001258,
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +99,7 @@
 | 
			
		|||
      "inputs": {
 | 
			
		||||
        "naersk": "naersk",
 | 
			
		||||
        "nixpkgs": "nixpkgs_2",
 | 
			
		||||
        "nixpkgs-test": "nixpkgs-test",
 | 
			
		||||
        "rust-overlay": "rust-overlay"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										28
									
								
								flake.nix
								
								
								
								
							
							
						
						
									
										28
									
								
								flake.nix
								
								
								
								
							| 
						 | 
				
			
			@ -3,11 +3,12 @@
 | 
			
		|||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
 | 
			
		||||
    nixpkgs-test.url = "github:RaitoBezarius/nixpkgs/experimental-secureboot";
 | 
			
		||||
    rust-overlay.url = "github:oxalica/rust-overlay";
 | 
			
		||||
    naersk.url = "github:nix-community/naersk";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, rust-overlay, naersk }:
 | 
			
		||||
  outputs = { self, nixpkgs, nixpkgs-test, rust-overlay, naersk }:
 | 
			
		||||
    let
 | 
			
		||||
      pkgs = import nixpkgs {
 | 
			
		||||
        system = "x86_64-linux";
 | 
			
		||||
| 
						 | 
				
			
			@ -127,6 +128,12 @@
 | 
			
		|||
        add-sections ${lanzaboote}/bin/lanzaboote.efi ${osrel} ${cmdline} $out/bin/lanzaboote.efi
 | 
			
		||||
      '';
 | 
			
		||||
    in {
 | 
			
		||||
      overlays.default = final: prev: {
 | 
			
		||||
        inherit lanzaboote lanzatool;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      nixosModules.lanzaboote = import ./nix/lanzaboote.nix;
 | 
			
		||||
 | 
			
		||||
      packages.x86_64-linux = {
 | 
			
		||||
        inherit qemuUefi uefi-run initrd-stub lanzaboote lanzaboote-uki lanzatool wrapInitrd;
 | 
			
		||||
        default = lanzaboote-uki;
 | 
			
		||||
| 
						 | 
				
			
			@ -146,5 +153,24 @@
 | 
			
		|||
          lanzaboote
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      checks.x86_64-linux = {
 | 
			
		||||
        lanzaboote-boot = 
 | 
			
		||||
        let test = import ("${nixpkgs-test}/nixos/lib/testing-python.nix") { system = "x86_64-linux"; };
 | 
			
		||||
        in
 | 
			
		||||
        test.makeTest
 | 
			
		||||
        {
 | 
			
		||||
          name = "stub-boot";
 | 
			
		||||
          nodes.machine = { ... }: {
 | 
			
		||||
            imports = [ self.nixosModules.lanzaboote ];
 | 
			
		||||
            nixpkgs.overlays = [ self.overlays.default ];
 | 
			
		||||
 | 
			
		||||
            boot.lanzaboote.enable = true;
 | 
			
		||||
          };
 | 
			
		||||
          testScript = ''
 | 
			
		||||
            start_all()
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
{ lib, config, ... }: 
 | 
			
		||||
with lib;
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.boot.lanzaboote;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.boot.lanzaboote = {
 | 
			
		||||
    enable = mkEnableOption "Enable the LANZABOOTE";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    boot.loader.external = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      installHook = "${pkgs.lanzatool}/bin/lanzatool install";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue