Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenvNoCC, 4 fetchurl, 5 libarchive, 6 xar, 7 installShellFiles, 8 versionCheckHook, 9 nix-update-script, 10}: 11 12stdenvNoCC.mkDerivation (finalAttrs: { 13 pname = "container"; 14 version = "0.2.0"; 15 16 src = fetchurl { 17 url = "https://github.com/apple/container/releases/download/${finalAttrs.version}/container-${finalAttrs.version}-installer-signed.pkg"; 18 hash = "sha256-aJEIy6IknBDvM7IOhnl/C4xnr7KJVggJJjmajqoHdsU="; 19 }; 20 21 nativeBuildInputs = [ 22 libarchive 23 xar 24 installShellFiles 25 ]; 26 27 dontUnpack = true; 28 29 installPhase = '' 30 runHook preInstall 31 32 mkdir -p $out 33 xar -xf $src Payload 34 bsdtar --extract --file Payload --directory $out 35 36 runHook postInstall 37 ''; 38 39 postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) '' 40 installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \ 41 --bash <($out/bin/${finalAttrs.meta.mainProgram} --generate-completion-script bash) \ 42 --fish <($out/bin/${finalAttrs.meta.mainProgram} --generate-completion-script fish) \ 43 --zsh <($out/bin/${finalAttrs.meta.mainProgram} --generate-completion-script zsh) 44 ''; 45 46 nativeInstallCheckInputs = [ 47 versionCheckHook 48 ]; 49 versionCheckProgramArg = "--version"; 50 doInstallCheck = true; 51 52 passthru = { 53 updateScript = nix-update-script { }; 54 }; 55 56 meta = { 57 description = "Creating and running Linux containers using lightweight virtual machines on a Mac"; 58 homepage = "https://github.com/apple/container"; 59 changelog = "https://github.com/apple/container/releases/tag/${finalAttrs.version}"; 60 license = lib.licenses.asl20; 61 mainProgram = "container"; 62 maintainers = with lib.maintainers; [ 63 xiaoxiangmoe 64 ]; 65 platforms = [ "aarch64-darwin" ]; 66 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; 67 }; 68})