diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index f61d9aa22158..4d89ce139671 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -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 diff --git a/pkgs/development/libraries/google-cloud-cpp/default.nix b/pkgs/development/libraries/google-cloud-cpp/default.nix index cb626ffac968..9aa1284bbee9 100644 --- a/pkgs/development/libraries/google-cloud-cpp/default.nix +++ b/pkgs/development/libraries/google-cloud-cpp/default.nix @@ -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}" ]; diff --git a/pkgs/development/libraries/google-cloud-cpp/skipped_tests.toml b/pkgs/development/libraries/google-cloud-cpp/skipped_tests.toml index 71529bfb4550..d4ac469fbcff 100644 --- a/pkgs/development/libraries/google-cloud-cpp/skipped_tests.toml +++ b/pkgs/development/libraries/google-cloud-cpp/skipped_tests.toml @@ -1,56 +1,71 @@ 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_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", diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix index 7435ac723f7d..70034f2d2e4f 100644 --- a/pkgs/development/libraries/grpc/default.nix +++ b/pkgs/development/libraries/grpc/default.nix @@ -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; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9157df3f1527..5b40158b0e6d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };