at 22.05-pre 56 lines 1.5 kB view raw
1{ fetchurl, lib, stdenv }: 2 3let 4 version = "0.24.5"; 5 6 suffix = { 7 x86_64-linux = "x86_64"; 8 aarch64-linux = "aarch64"; 9 }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 10 11 baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download"; 12 13 dlbin = sha256: fetchurl { 14 url = "${baseurl}/v${version}/firecracker-v${version}-${suffix}.tgz"; 15 sha256 = sha256."${stdenv.hostPlatform.system}"; 16 }; 17 18in 19stdenv.mkDerivation { 20 pname = "firecracker"; 21 inherit version; 22 23 sourceRoot = "."; 24 src = dlbin { 25 x86_64-linux = "sha256-drcm2kz2csuJqr8Oqs0r1BrxgPHOyuwC2S+99MhbMjA="; 26 aarch64-linux = "sha256-x8RoBmgY3HRUOLw8YzEwQfQuT83zGfBHHWu88b4i05o="; 27 }; 28 29 dontConfigure = true; 30 31 buildPhase = '' 32 mv release-v${version}/firecracker-v${version}-${suffix} firecracker 33 mv release-v${version}/jailer-v${version}-${suffix} jailer 34 chmod +x firecracker jailer 35 ''; 36 37 doCheck = true; 38 checkPhase = '' 39 ./firecracker --version 40 ./jailer --version 41 ''; 42 43 installPhase = '' 44 mkdir -p $out/bin 45 install -D firecracker $out/bin/firecracker 46 install -D jailer $out/bin/jailer 47 ''; 48 49 meta = with lib; { 50 description = "Secure, fast, minimal micro-container virtualization"; 51 homepage = "http://firecracker-microvm.io"; 52 license = licenses.asl20; 53 platforms = [ "x86_64-linux" "aarch64-linux" ]; 54 maintainers = with maintainers; [ thoughtpolice endocrimes ]; 55 }; 56}