Unverified Commit 08287aa0 authored by Mario Rodas's avatar Mario Rodas Committed by GitHub
Browse files

Merge pull request #248536 from tobim/pkgs/google-cloud-cpp-2.14.0

[staging-next] google-cloud-cpp: 2.4.0 -> 2.14.0
parents df770ba9 54e9994a
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -39,11 +39,8 @@
, enableShared ? !stdenv.hostPlatform.isStatic
, enableFlight ? true
, enableJemalloc ? !stdenv.isDarwin
  # boost/process is broken in 1.69 on darwin, but fixed in 1.70 and
  # non-existent in older versions
  # see https://github.com/boostorg/process/issues/55
, enableS3 ? (!stdenv.isDarwin) || (lib.versionOlder boost.version "1.69" || lib.versionAtLeast boost.version "1.70")
, enableGcs ? (!stdenv.isDarwin) && (lib.versionAtLeast grpc.cxxStandard "17") # google-cloud-cpp is not supported on darwin, needs to support C++17
, enableS3 ? true
, enableGcs ? !stdenv.isDarwin
}:

assert lib.asserts.assertMsg
+4 −5
Original line number Diff line number Diff line
@@ -18,25 +18,25 @@
, staticOnly ? stdenv.hostPlatform.isStatic
}:
let
  googleapisRev = "13d5b3f3f9412f38427c8ad48068f04ad1ee9808";
  googleapisRev = "85f8c758016c279fb7fa8f0d51ddc7ccc0dd5e05";
  googleapis = fetchFromGitHub {
    name = "googleapis-src";
    owner = "googleapis";
    repo = "googleapis";
    rev = googleapisRev;
    hash = "sha256-SiU7N1EQ/7LWhUwgf4c0CBfUzNGiLe4sSbbJmJF3sao=";
    hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
  };
  excludedTests = builtins.fromTOML (builtins.readFile ./skipped_tests.toml);
in
stdenv.mkDerivation rec {
  pname = "google-cloud-cpp";
  version = "2.4.0";
  version = "2.14.0";

  src = fetchFromGitHub {
    owner = "googleapis";
    repo = "google-cloud-cpp";
    rev = "v${version}";
    sha256 = "sha256-o8aURM8fvxn0FZjuqJGclq9Brss8LOFZzD0FV2j/lUc=";
    sha256 = "sha256-0SoOaAqvk8cVC5W3ejTfe4O/guhrro3uAzkeIpAkCpg=";
  };

  postPatch = ''
@@ -120,7 +120,6 @@ stdenv.mkDerivation rec {
    # this adds a good chunk of time to the build
    "-DBUILD_TESTING:BOOL=ON"
    "-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES:BOOL=OFF"
    "-DCMAKE_CXX_STANDARD=${grpc.cxxStandard}"
  ] ++ lib.optionals (apis != [ "*" ]) [
    "-DGOOGLE_CLOUD_CPP_ENABLE=${lib.concatStringsSep ";" apis}"
  ];
+48 −30
Original line number Diff line number Diff line
whole = [
  "bigquery_bigquery_read_integration_test",
  "common_samples_samples",
  "common_internal_grpc_impersonate_service_account_integration_test",
  "common_internal_unified_rest_credentials_integration_test",
  "iam_samples_iam_credentials_samples",
  "iam_samples_iam_samples",
  "iam_admin_v1_samples_iam_client_samples",
  "iam_credentials_v1_samples_iam_credentials_client_samples",
  "iam_v1_samples_iam_policy_client_samples",
  "iam_v2_samples_policies_client_samples",
  "bigtable_admin_admin_iam_policy_integration_test",
  "bigtable_admin_iam_policy_integration_test",
  "bigtable_admin_integration_test",
  "bigtable_bigtable_instance_admin_client_samples",
  "bigtable_bigtable_table_admin_client_samples",
  "bigtable_apply_read_latency_benchmark",
  "bigtable_data_async_future_integration_test",
  "bigtable_data_integration_test",
  "bigtable_endurance_benchmark",
  "bigtable_filters_integration_test",
  "bigtable_mutation_batcher_throughput_benchmark",
  "bigtable_mutations_integration_test",
  "bigtable_read_sync_vs_async_benchmark",
  "bigtable_scan_throughput_benchmark",
  "bigtable_admin_iam_policy_integration_test",
  "bigtable_data_async_future_integration_test",
  "bigtable_data_integration_test",
  "bigtable_filters_integration_test",
  "bigtable_mutations_integration_test",
  "bigtable_table_sample_rows_integration_test",
  "common_grpc_utils_internal_grpc_impersonate_service_account_integration_test",
  "iam_iam_credentials_integration_test",
  "iam_iam_integration_test",
  "bigquery_samples_bigquery_read_samples",
  "bigquery_analyticshub_v1_samples_analytics_hub_client_samples",
  "bigquery_biglake_v1_samples_metastore_client_samples",
  "bigquery_connection_v1_samples_connection_client_samples",
  "bigquery_datapolicies_v1_samples_data_policy_client_samples",
  "bigquery_datatransfer_v1_samples_data_transfer_client_samples",
  "bigquery_migration_v2_samples_migration_client_samples",
  "bigquery_reservation_v1_samples_reservation_client_samples",
  "bigquery_storage_v1_samples_bigquery_read_client_samples",
  "bigquery_storage_v1_samples_bigquery_write_client_samples",
  "logging_quickstart",
  "logging_v2_samples_config_service_v2_client_samples",
  "logging_v2_samples_logging_service_v2_client_samples",
  "logging_v2_samples_metrics_service_v2_client_samples",
  "pubsub_endurance",
  "pubsub_schema_admin_integration_test",
  "pubsub_throughput",
  "pubsub_subscriber_integration_test",
  "pubsub_subscription_admin_integration_test",
  "pubsub_throughput",
  "pubsub_topic_admin_integration_test",
  "rest_internal_internal_curl_rest_client_integration_test",
  "rest_internal_internal_unified_rest_credentials_integration_test",
  "spanner_admin_backup_extra_integration_test",
  "spanner_admin_database_admin_integration_test",
  "spanner_admin_instance_admin_integration_test",
  "spanner_backup_extra_integration_test",
  "spanner_client_integration_test",
  "spanner_client_stress_test",
  "spanner_data_types_integration_test",
  "spanner_database_admin_integration_test",
  "spanner_instance_admin_integration_test",
  "spanner_multiple_rows_cpu_benchmark",
  "spanner_rpc_failure_threshold_integration_test",
  "spanner_session_pool_integration_test",
  "spanner_admin_database_admin_integration_test",
  "spanner_admin_instance_admin_integration_test",
  "spanner_database_admin_client_samples",
  "spanner_instance_admin_client_samples",
  "spanner_multiple_rows_cpu_benchmark",
  "spanner_single_row_throughput_benchmark",
  "storage_aggregate_download_throughput_benchmark",
  "storage_aggregate_upload_throughput_benchmark",
  "storage_alternative_endpoint_integration_test",
  "storage_auto_finalize_integration_test",
  "storage_bucket_integration_test",
  "storage_create_client_integration_test",
  "storage_create_dataset",
  "storage_curl_download_request_integration_test",
  "storage_curl_request_integration_test",
  "storage_curl_resumable_upload_session_integration_test",
  "storage_curl_sign_blob_integration_test",
  "storage_decompressive_transcoding_integration_test",
  "storage_grpc_bucket_acl_integration_test",
  "storage_grpc_bucket_metadata_integration_test",
  "storage_grpc_default_object_acl_integration_test",
  "storage_grpc_integration_test",
  "storage_grpc_object_acl_integration_test",
  "storage_grpc_object_media_integration_test",
  "storage_grpc_object_metadata_integration_test",
  "storage_key_file_integration_test",
  "storage_minimal_iam_credentials_rest_integration_test",
  "storage_object_basic_crud_integration_test",
@@ -79,13 +94,16 @@ whole = [
  "storage_service_account_integration_test",
  "storage_signed_url_integration_test",
  "storage_small_reads_integration_test",
  "storage_storage_file_transfer_benchmark",
  "storage_storage_parallel_uploads_benchmark",
  "storage_storage_throughput_vs_cpu_benchmark",
  "storage_thread_integration_test",
  "storage_throughput_experiment_test",
  "storage_tracing_integration_test",
  "storage_unified_credentials_integration_test",
  "storage_aggregate_download_throughput_benchmark",
  "storage_aggregate_upload_throughput_benchmark",
  "storage_create_dataset",
  "storage_storage_file_transfer_benchmark",
  "storage_storage_parallel_uploads_benchmark",
  "storage_storage_throughput_vs_cpu_benchmark",
  "storage_throughput_experiment_test"
]
cases = [
  "BackupExtraIntegrationTest.CreateBackupWithExpiredVersionTime",
+14 −13
Original line number Diff line number Diff line
@@ -56,10 +56,22 @@ stdenv.mkDerivation rec {
    "-DgRPC_PROTOBUF_PROVIDER=package"
    "-DgRPC_ABSL_PROVIDER=package"
    "-DBUILD_SHARED_LIBS=ON"
    "-DCMAKE_CXX_STANDARD=${passthru.cxxStandard}"
  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
    "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc"
  ];
  ]
  # The build scaffold defaults to c++14 on darwin, even when the compiler uses
  # a more recent c++ version by default [1]. However, downgrades are
  # problematic, because the compatibility types in abseil will have different
  # interface definitions than the ones used for building abseil itself.
  # [1] https://github.com/grpc/grpc/blob/v1.57.0/CMakeLists.txt#L239-L243
  ++ (let
    defaultCxxIsOlderThan17 =
      (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.cc.version "16.0")
       || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.cc.version "11.0");
    in lib.optionals (stdenv.hostPlatform.isDarwin && defaultCxxIsOlderThan17)
  [
    "-DCMAKE_CXX_STANDARD=17"
  ]);

  # CMake creates a build directory by default, this conflicts with the
  # basel BUILD file on case-insensitive filesystems.
@@ -81,17 +93,6 @@ stdenv.mkDerivation rec {

  enableParallelBuilds = true;

  passthru.cxxStandard =
    let
      # 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
      useLLVMAndOldCC = (stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "11.0";
      # With GCC 9 (current aarch64-linux) it fails with c++17 but OK with c++14.
      useOldGCC = !(stdenv.hostPlatform.useLLVM or false) && lib.versionOlder stdenv.cc.cc.version "10";
    in
    (if useLLVMAndOldCC then "11" else if useOldGCC then "14" else "17");

  passthru.tests = {
    inherit (python3.pkgs) grpcio-status grpcio-tools;
    inherit arrow-cpp;
+1 −6
Original line number Diff line number Diff line
@@ -21617,12 +21617,7 @@ with pkgs;
  grilo-plugins = callPackage ../development/libraries/grilo-plugins { };
  grpc = callPackage ../development/libraries/grpc {
    # grpc builds with c++17 so abseil must also be built that way
    abseil-cpp = abseil-cpp_202206.override {
      cxxStandard = grpc.cxxStandard;
    };
  };
  grpc = callPackage ../development/libraries/grpc { };
  gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };