diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/grpc')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/grpc/default.nix | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix index 4a9fce04214f..5d2b58aa3dba 100644 --- a/nixpkgs/pkgs/development/libraries/grpc/default.nix +++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "grpc"; - version = "1.40.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too + version = "1.41.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too src = fetchFromGitHub { owner = "grpc"; repo = "grpc"; rev = "v${version}"; - sha256 = "08l2dyf3g3zrffy60ycid6jngvhfaghg792yrkfjcpcif5dqfd9f"; + sha256 = "1mcgnzwc2mcdpcfhc1b37vff0biwyd3v0a2ack58wgf4336pzlsb"; fetchSubmodules = true; }; @@ -57,7 +57,12 @@ stdenv.mkDerivation rec { "-DgRPC_ABSL_PROVIDER=package" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_SKIP_BUILD_RPATH=OFF" - "-DCMAKE_CXX_STANDARD=17" + # Needs to be compiled with -std=c++11 for clang < 11. Interestingly this is + # only an issue with the useLLVM stdenv, not the darwin stdenvā¦ + # https://github.com/grpc/grpc/issues/26473#issuecomment-860885484 + (if (stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "11.0" + then "-DCMAKE_CXX_STANDARD=11" + else "-DCMAKE_CXX_STANDARD=17") ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc" ]; @@ -68,7 +73,12 @@ stdenv.mkDerivation rec { rm -vf BUILD ''; - preBuild = '' + # When natively compiling, grpc_cpp_plugin is executed from the build directory, + # needing to load dynamic libraries from the build directory, so we set + # LD_LIBRARY_PATH to enable this. When cross compiling we need to avoid this, + # since it can cause the grpc_cpp_plugin executable from buildPackages to + # crash if build and host architecture are compatible (e. g. pkgsLLVM). + preBuild = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' export LD_LIBRARY_PATH=$(pwd)''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ''; |