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

[staging-next] google-cloud-cpp: 2.4.0 -> 2.14.0

Changed files
+69 -59
pkgs
development
libraries
arrow-cpp
google-cloud-cpp
grpc
top-level
+2 -5
pkgs/development/libraries/arrow-cpp/default.nix
···
, 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
pkgs/development/libraries/google-cloud-cpp/default.nix
···
, 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 = ''
···
# 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
pkgs/development/libraries/google-cloud-cpp/skipped_tests.toml
···
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_endurance_benchmark",
+
"bigtable_mutation_batcher_throughput_benchmark",
+
"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_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_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",
···
"storage_service_account_integration_test",
"storage_signed_url_integration_test",
"storage_small_reads_integration_test",
+
"storage_thread_integration_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_thread_integration_test",
-
"storage_throughput_experiment_test",
-
"storage_tracing_integration_test",
-
"storage_unified_credentials_integration_test",
+
"storage_throughput_experiment_test"
]
cases = [
"BackupExtraIntegrationTest.CreateBackupWithExpiredVersionTime",
+14 -13
pkgs/development/libraries/grpc/default.nix
···
"-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.
···
+ lib.optionalString stdenv.isAarch64 "-Wno-error=format-security";
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;
+1 -6
pkgs/top-level/all-packages.nix
···
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 { };