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