diff --git a/pkgs/development/tools/azure-functions-core-tools/default.nix b/pkgs/development/tools/azure-functions-core-tools/default.nix index d4cebd5551e9..5165c4509e50 100644 --- a/pkgs/development/tools/azure-functions-core-tools/default.nix +++ b/pkgs/development/tools/azure-functions-core-tools/default.nix @@ -1,86 +1,98 @@ -{ stdenv -, lib -, config -, fetchurl -, unzip -, makeWrapper -, icu -, libunwind -, curl -, zlib -, libuuid -, dotnetbuildhelpers -, dotnetCorePackages -, openssl -}: - -stdenv.mkDerivation rec { - pname = "azure-functions-core-tools"; - version = "4.0.4785"; - - src = - if stdenv.isLinux then - fetchurl { - url = "https://github.com/Azure/${pname}/releases/download/${version}/Azure.Functions.Cli.linux-x64.${version}.zip"; - sha256 = "sha256-SWvbPEslwhYNd2fTQJWy1+823o1vJR/roPstgelSfnQ="; - } - else - fetchurl { - url = "https://github.com/Azure/${pname}/releases/download/${version}/Azure.Functions.Cli.osx-x64.${version}.zip"; - sha256 = "sha256-m06XeUHVDCxo7sfK4eF1oM6IuaVET9jr/xSO9qzpxSU="; - } - ; - - nativeBuildInputs = [ - unzip - makeWrapper - dotnetbuildhelpers - icu - libunwind - curl - zlib - dotnetCorePackages.sdk_3_1 - ]; - - libPath = lib.makeLibraryPath [ - libunwind - libuuid - stdenv.cc.cc - curl - zlib - icu - openssl - ]; - - unpackPhase = '' - unzip $src - ''; - - installPhase = '' - mkdir -p $out/bin - cp -prd . $out/bin/azure-functions-core-tools - chmod +x $out/bin/azure-functions-core-tools/{func,gozip} - '' + lib.optionalString stdenv.isLinux '' - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${libPath}" "$out/bin/azure-functions-core-tools/func" - find $out/bin/azure-functions-core-tools -type f -name "*.so" -exec patchelf --set-rpath "${libPath}" {} \; - wrapProgram "$out/bin/azure-functions-core-tools/func" --prefix LD_LIBRARY_PATH : ${libPath} - '' + '' - ln -s $out/bin/{azure-functions-core-tools,}/func - ln -s $out/bin/{azure-functions-core-tools,}/gozip - ''; - dontStrip = true; # Causes rpath patching to break if not set - - meta = with lib; { - homepage = "https://github.com/Azure/azure-functions-core-tools"; - description = "Command line tools for Azure Functions"; - sourceProvenance = with sourceTypes; [ - binaryBytecode - binaryNativeCode - ]; - license = licenses.mit; - maintainers = with maintainers; [ ]; - platforms = platforms.unix; +{ + stdenv, + lib, + config, + fetchurl, + unzip, + makeWrapper, + icu, + libunwind, + curl, + zlib, + libuuid, + dotnetbuildhelpers, + dotnetCorePackages, + openssl, +}: let + platforms = { + "aarch64-darwin" = { + platformStr = "osx-arm64"; + hash = "sha512-MDuyFxtjlojXyrOdgJxVY3IDMLnrDvA4rO7ujOlE5KH082GXfonNOFZSpa64M8jMPJhJ4sopHKgZVvKKygzjPg=="; + }; + "x86_64-darwin" = { + platformStr = "osx-x64"; + hash = "sha512-fD48QFYIzq3/EvZR3o3VFCxIz3VZGSDJUo/ZwfZnFu7xt/xkQSBL+2zXOh9XZaBg42Xq3x9eFZQ00V8AbqJdKA=="; + }; + "x86_64-linux" = { + platformStr = "linux-x64"; + hash = "sha512-PhgS2ivRn8Yhlr7+gbQd+rGSMDLGsxURh8lOE30Xk7zEubukjekxDsaPqM1tOS95k7TWM9xXyVVfmsJplrl+nw=="; + }; }; -} + + platformInfo = builtins.getAttr stdenv.targetPlatform.system platforms; +in + stdenv.mkDerivation rec { + pname = "azure-functions-core-tools"; + version = "4.0.4915"; + + src = fetchurl { + url = "https://github.com/Azure/${pname}/releases/download/${version}/Azure.Functions.Cli.${platformInfo.platformStr}.${version}.zip"; + inherit (platformInfo) hash; + }; + + nativeBuildInputs = [ + unzip + makeWrapper + dotnetbuildhelpers + icu + libunwind + curl + zlib + dotnetCorePackages.sdk_6_0 + ]; + + libPath = lib.makeLibraryPath [ + libunwind + libuuid + stdenv.cc.cc + curl + zlib + icu + openssl + ]; + + unpackPhase = '' + unzip $src + ''; + + installPhase = + '' + mkdir -p $out/bin + cp -prd . $out/bin/azure-functions-core-tools + chmod +x $out/bin/azure-functions-core-tools/{func,gozip} + '' + + lib.optionalString stdenv.isLinux '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" "$out/bin/azure-functions-core-tools/func" + find $out/bin/azure-functions-core-tools -type f -name "*.so" -exec patchelf --set-rpath "${libPath}" {} \; + wrapProgram "$out/bin/azure-functions-core-tools/func" --prefix LD_LIBRARY_PATH : ${libPath} + '' + + '' + ln -s $out/bin/{azure-functions-core-tools,}/func + ln -s $out/bin/{azure-functions-core-tools,}/gozip + ''; + dontStrip = true; # Causes rpath patching to break if not set + + meta = with lib; { + homepage = "https://github.com/Azure/azure-functions-core-tools"; + description = "Command line tools for Azure Functions"; + sourceProvenance = with sourceTypes; [ + binaryBytecode + binaryNativeCode + ]; + license = licenses.mit; + maintainers = with maintainers; []; + platforms = ["x86_64-linux" "aarch64-darwin" "x86_64-darwin"]; + }; + }