Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / by-name / la / lanzaboote-tool / package.nix
blob919ab7d68f2ce61d2139af0e2185be3520a95592
1 { systemd
2 , stdenv
3 , makeWrapper
4 , binutils-unwrapped
5 , sbsigntool
6 , rustPlatform
7 , fetchFromGitHub
8 , lib
9 }:
10 rustPlatform.buildRustPackage rec {
11   pname = "lanzaboote-tool";
12   version = "0.3.0";
14   src = fetchFromGitHub {
15     owner = "nix-community";
16     repo = "lanzaboote";
17     rev = "v${version}";
18     hash = "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=";
19   };
21   sourceRoot = "source/rust/tool";
22   cargoHash = "sha256-g4WzqfH6DZVUuNb0jV3MFdm3h7zy2bQ6d3agrXesWgc=";
24   env.TEST_SYSTEMD = systemd;
25   doCheck = lib.meta.availableOn stdenv.hostPlatform systemd;
27   nativeBuildInputs = [
28     makeWrapper
29   ];
31   postInstall = ''
32     # Clean PATH to only contain what we need to do objcopy.
33     # This is still an unwrapped lanzaboote tool lacking of the
34     # UEFI stub location.
35     mv $out/bin/lzbt $out/bin/lzbt-unwrapped
36     wrapProgram $out/bin/lzbt-unwrapped \
37       --set PATH ${lib.makeBinPath [ binutils-unwrapped sbsigntool ]}
38   '';
40   nativeCheckInputs = [
41     binutils-unwrapped
42     sbsigntool
43   ];
45   meta = with lib; {
46     description = "Lanzaboote UEFI tooling for SecureBoot enablement on NixOS systems";
47     homepage = "https://github.com/nix-community/lanzaboote";
48     license = licenses.gpl3Only;
49     mainProgram = "lzbt";
50     maintainers = with maintainers; [ raitobezarius nikstur ];
51     # Broken on aarch64-linux and any other architecture for now.
52     # Wait for 0.4.0.
53     platforms = [ "x86_64-linux" "i686-linux" ];
54   };