biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / virtualization / krunvm / default.nix
blob392ba594189ab127d387b0222628431b3794ae62
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , asciidoctor
6 , buildah
7 , buildah-unwrapped
8 , cargo
9 , libiconv
10 , libkrun
11 , makeWrapper
12 , rustc
13 , sigtool
16 stdenv.mkDerivation rec {
17   pname = "krunvm";
18   version = "0.2.3";
20   src = fetchFromGitHub {
21     owner = "containers";
22     repo = pname;
23     rev = "v${version}";
24     hash = "sha256-IXofYsOmbrjq8Zq9+a6pvBYsvZFcKzN5IvCuHaxwazI=";
25   };
27   cargoDeps = rustPlatform.fetchCargoTarball {
28     inherit src;
29     hash = "sha256-Y0FNi/+HuN5SqexHTKjcW6lEaeis7xZDYc2/FOAANIA=";
30   };
32   nativeBuildInputs = [
33     rustPlatform.cargoSetupHook
34     cargo
35     rustc
36     asciidoctor
37     makeWrapper
38   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ];
40   buildInputs = [ libkrun ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
41     libiconv
42   ];
44   makeFlags = [ "PREFIX=${placeholder "out"}" ];
46   postPatch = ''
47     # do not pollute etc
48     substituteInPlace src/utils.rs \
49       --replace "etc/containers" "share/krunvm/containers"
50   '';
52   postInstall = ''
53     mkdir -p $out/share/krunvm/containers
54     install -D -m755 ${buildah-unwrapped.src}/docs/samples/registries.conf $out/share/krunvm/containers/registries.conf
55     install -D -m755 ${buildah-unwrapped.src}/tests/policy.json $out/share/krunvm/containers/policy.json
56   '';
58   # It attaches entitlements with codesign and strip removes those,
59   # voiding the entitlements and making it non-operational.
60   dontStrip = stdenv.hostPlatform.isDarwin;
62   postFixup = ''
63     wrapProgram $out/bin/krunvm \
64       --prefix PATH : ${lib.makeBinPath [ buildah ]} \
65   '';
67   meta = with lib; {
68     description = "CLI-based utility for creating microVMs from OCI images";
69     homepage = "https://github.com/containers/krunvm";
70     license = licenses.asl20;
71     maintainers = with maintainers; [ nickcao ];
72     platforms = libkrun.meta.platforms;
73     mainProgram = "krunvm";
74   };