From cc39dbea1aa3e54a2918559ad0ff09ccec8b28e8 Mon Sep 17 00:00:00 2001 From: Alfredo Moralejo Date: Sep 09 2021 00:30:29 +0000 Subject: Import grpc-1.26.0-15.el9 in CloudSIG xena --- diff --git a/.grpc.metadata b/.grpc.metadata new file mode 100644 index 0000000..cbaab08 --- /dev/null +++ b/.grpc.metadata @@ -0,0 +1,2 @@ +69ac73b58c058e4c48ec1192f1a1c67a46f5194d SOURCES/grpc-1.26.0.tar.gz +9c89be7df9c5e8cb0bc20b3c4b39bf7e82686770 SOURCES/googletest-release-1.10.0.tar.gz diff --git a/SOURCES/72351f63fd650cc7acfcd2d0307e8e8e8f777283.patch b/SOURCES/72351f63fd650cc7acfcd2d0307e8e8e8f777283.patch new file mode 100644 index 0000000..d6b6489 --- /dev/null +++ b/SOURCES/72351f63fd650cc7acfcd2d0307e8e8e8f777283.patch @@ -0,0 +1,2070 @@ +From 72351f63fd650cc7acfcd2d0307e8e8e8f777283 Mon Sep 17 00:00:00 2001 +From: Esun Kim +Date: Tue, 14 Jan 2020 16:35:23 -0800 +Subject: [PATCH] Remove grpc sources from grpc++ + +--- + BUILD.gn | 240 ----------------- + CMakeLists.txt | 396 ---------------------------- + Makefile | 396 ---------------------------- + build.yaml | 1 - + grpc.gyp | 396 ---------------------------- + tools/doxygen/Doxyfile.c++.internal | 240 ----------------- + 6 files changed, 1669 deletions(-) + +diff --git a/BUILD.gn b/BUILD.gn +index 0599ae15048..8a4d6c7b23c 100644 +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -1191,135 +1191,32 @@ config("grpc_config") { + "include/grpcpp/support/sync_stream_impl.h", + "include/grpcpp/support/time.h", + "include/grpcpp/support/validate_service_config.h", +- "src/core/ext/filters/client_channel/backend_metric.cc", +- "src/core/ext/filters/client_channel/backend_metric.h", +- "src/core/ext/filters/client_channel/backup_poller.cc", +- "src/core/ext/filters/client_channel/backup_poller.h", +- "src/core/ext/filters/client_channel/channel_connectivity.cc", +- "src/core/ext/filters/client_channel/client_channel.cc", +- "src/core/ext/filters/client_channel/client_channel.h", +- "src/core/ext/filters/client_channel/client_channel_channelz.cc", +- "src/core/ext/filters/client_channel/client_channel_channelz.h", +- "src/core/ext/filters/client_channel/client_channel_factory.cc", +- "src/core/ext/filters/client_channel/client_channel_factory.h", +- "src/core/ext/filters/client_channel/client_channel_plugin.cc", +- "src/core/ext/filters/client_channel/connector.h", +- "src/core/ext/filters/client_channel/global_subchannel_pool.cc", +- "src/core/ext/filters/client_channel/global_subchannel_pool.h", +- "src/core/ext/filters/client_channel/health/health_check_client.cc", +- "src/core/ext/filters/client_channel/health/health_check_client.h", +- "src/core/ext/filters/client_channel/http_connect_handshaker.cc", +- "src/core/ext/filters/client_channel/http_connect_handshaker.h", +- "src/core/ext/filters/client_channel/http_proxy.cc", +- "src/core/ext/filters/client_channel/http_proxy.h", +- "src/core/ext/filters/client_channel/lb_policy.cc", +- "src/core/ext/filters/client_channel/lb_policy.h", +- "src/core/ext/filters/client_channel/lb_policy_factory.h", +- "src/core/ext/filters/client_channel/lb_policy_registry.cc", +- "src/core/ext/filters/client_channel/lb_policy_registry.h", +- "src/core/ext/filters/client_channel/local_subchannel_pool.cc", +- "src/core/ext/filters/client_channel/local_subchannel_pool.h", +- "src/core/ext/filters/client_channel/parse_address.cc", +- "src/core/ext/filters/client_channel/parse_address.h", +- "src/core/ext/filters/client_channel/proxy_mapper.h", +- "src/core/ext/filters/client_channel/proxy_mapper_registry.cc", +- "src/core/ext/filters/client_channel/proxy_mapper_registry.h", +- "src/core/ext/filters/client_channel/resolver.cc", +- "src/core/ext/filters/client_channel/resolver.h", +- "src/core/ext/filters/client_channel/resolver_factory.h", +- "src/core/ext/filters/client_channel/resolver_registry.cc", +- "src/core/ext/filters/client_channel/resolver_registry.h", +- "src/core/ext/filters/client_channel/resolver_result_parsing.cc", +- "src/core/ext/filters/client_channel/resolver_result_parsing.h", +- "src/core/ext/filters/client_channel/resolving_lb_policy.cc", +- "src/core/ext/filters/client_channel/resolving_lb_policy.h", +- "src/core/ext/filters/client_channel/retry_throttle.cc", +- "src/core/ext/filters/client_channel/retry_throttle.h", +- "src/core/ext/filters/client_channel/server_address.cc", +- "src/core/ext/filters/client_channel/server_address.h", +- "src/core/ext/filters/client_channel/service_config.cc", +- "src/core/ext/filters/client_channel/service_config.h", +- "src/core/ext/filters/client_channel/subchannel.cc", +- "src/core/ext/filters/client_channel/subchannel.h", +- "src/core/ext/filters/client_channel/subchannel_interface.h", +- "src/core/ext/filters/client_channel/subchannel_pool_interface.cc", +- "src/core/ext/filters/client_channel/subchannel_pool_interface.h", +- "src/core/ext/filters/deadline/deadline_filter.cc", +- "src/core/ext/filters/deadline/deadline_filter.h", + "src/core/ext/transport/inproc/inproc_transport.h", +- "src/core/ext/upb-generated/gogoproto/gogo.upb.c", +- "src/core/ext/upb-generated/gogoproto/gogo.upb.h", +- "src/core/ext/upb-generated/google/api/annotations.upb.c", +- "src/core/ext/upb-generated/google/api/annotations.upb.h", +- "src/core/ext/upb-generated/google/api/http.upb.c", +- "src/core/ext/upb-generated/google/api/http.upb.h", +- "src/core/ext/upb-generated/google/protobuf/any.upb.c", +- "src/core/ext/upb-generated/google/protobuf/any.upb.h", +- "src/core/ext/upb-generated/google/protobuf/descriptor.upb.c", +- "src/core/ext/upb-generated/google/protobuf/descriptor.upb.h", +- "src/core/ext/upb-generated/google/protobuf/duration.upb.c", +- "src/core/ext/upb-generated/google/protobuf/duration.upb.h", +- "src/core/ext/upb-generated/google/protobuf/empty.upb.c", +- "src/core/ext/upb-generated/google/protobuf/empty.upb.h", +- "src/core/ext/upb-generated/google/protobuf/struct.upb.c", +- "src/core/ext/upb-generated/google/protobuf/struct.upb.h", +- "src/core/ext/upb-generated/google/protobuf/timestamp.upb.c", +- "src/core/ext/upb-generated/google/protobuf/timestamp.upb.h", +- "src/core/ext/upb-generated/google/protobuf/wrappers.upb.c", +- "src/core/ext/upb-generated/google/protobuf/wrappers.upb.h", +- "src/core/ext/upb-generated/google/rpc/status.upb.c", +- "src/core/ext/upb-generated/google/rpc/status.upb.h", + "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c", + "src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h", +- "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c", +- "src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h", +- "src/core/ext/upb-generated/validate/validate.upb.c", +- "src/core/ext/upb-generated/validate/validate.upb.h", +- "src/core/lib/avl/avl.cc", + "src/core/lib/avl/avl.h", +- "src/core/lib/backoff/backoff.cc", + "src/core/lib/backoff/backoff.h", +- "src/core/lib/channel/channel_args.cc", + "src/core/lib/channel/channel_args.h", +- "src/core/lib/channel/channel_stack.cc", + "src/core/lib/channel/channel_stack.h", +- "src/core/lib/channel/channel_stack_builder.cc", + "src/core/lib/channel/channel_stack_builder.h", +- "src/core/lib/channel/channel_trace.cc", + "src/core/lib/channel/channel_trace.h", +- "src/core/lib/channel/channelz.cc", + "src/core/lib/channel/channelz.h", +- "src/core/lib/channel/channelz_registry.cc", + "src/core/lib/channel/channelz_registry.h", +- "src/core/lib/channel/connected_channel.cc", + "src/core/lib/channel/connected_channel.h", + "src/core/lib/channel/context.h", +- "src/core/lib/channel/handshaker.cc", + "src/core/lib/channel/handshaker.h", + "src/core/lib/channel/handshaker_factory.h", +- "src/core/lib/channel/handshaker_registry.cc", + "src/core/lib/channel/handshaker_registry.h", +- "src/core/lib/channel/status_util.cc", + "src/core/lib/channel/status_util.h", + "src/core/lib/compression/algorithm_metadata.h", +- "src/core/lib/compression/compression.cc", +- "src/core/lib/compression/compression_args.cc", + "src/core/lib/compression/compression_args.h", +- "src/core/lib/compression/compression_internal.cc", + "src/core/lib/compression/compression_internal.h", +- "src/core/lib/compression/message_compress.cc", + "src/core/lib/compression/message_compress.h", +- "src/core/lib/compression/stream_compression.cc", + "src/core/lib/compression/stream_compression.h", +- "src/core/lib/compression/stream_compression_gzip.cc", + "src/core/lib/compression/stream_compression_gzip.h", +- "src/core/lib/compression/stream_compression_identity.cc", + "src/core/lib/compression/stream_compression_identity.h", +- "src/core/lib/debug/stats.cc", + "src/core/lib/debug/stats.h", +- "src/core/lib/debug/stats_data.cc", + "src/core/lib/debug/stats_data.h", +- "src/core/lib/debug/trace.cc", + "src/core/lib/debug/trace.h", + "src/core/lib/gpr/alloc.h", + "src/core/lib/gpr/arena.h", +@@ -1356,257 +1253,120 @@ config("grpc_config") { + "src/core/lib/gprpp/string_view.h", + "src/core/lib/gprpp/sync.h", + "src/core/lib/gprpp/thd.h", +- "src/core/lib/http/format_request.cc", + "src/core/lib/http/format_request.h", +- "src/core/lib/http/httpcli.cc", + "src/core/lib/http/httpcli.h", +- "src/core/lib/http/parser.cc", + "src/core/lib/http/parser.h", + "src/core/lib/iomgr/block_annotate.h", +- "src/core/lib/iomgr/buffer_list.cc", + "src/core/lib/iomgr/buffer_list.h", +- "src/core/lib/iomgr/call_combiner.cc", + "src/core/lib/iomgr/call_combiner.h", +- "src/core/lib/iomgr/cfstream_handle.cc", + "src/core/lib/iomgr/cfstream_handle.h", + "src/core/lib/iomgr/closure.h", +- "src/core/lib/iomgr/combiner.cc", + "src/core/lib/iomgr/combiner.h", + "src/core/lib/iomgr/dynamic_annotations.h", +- "src/core/lib/iomgr/endpoint.cc", + "src/core/lib/iomgr/endpoint.h", +- "src/core/lib/iomgr/endpoint_cfstream.cc", + "src/core/lib/iomgr/endpoint_cfstream.h", + "src/core/lib/iomgr/endpoint_pair.h", +- "src/core/lib/iomgr/endpoint_pair_posix.cc", +- "src/core/lib/iomgr/endpoint_pair_uv.cc", +- "src/core/lib/iomgr/endpoint_pair_windows.cc", +- "src/core/lib/iomgr/error.cc", + "src/core/lib/iomgr/error.h", +- "src/core/lib/iomgr/error_cfstream.cc", + "src/core/lib/iomgr/error_cfstream.h", + "src/core/lib/iomgr/error_internal.h", +- "src/core/lib/iomgr/ev_epoll1_linux.cc", + "src/core/lib/iomgr/ev_epoll1_linux.h", +- "src/core/lib/iomgr/ev_epollex_linux.cc", + "src/core/lib/iomgr/ev_epollex_linux.h", +- "src/core/lib/iomgr/ev_poll_posix.cc", + "src/core/lib/iomgr/ev_poll_posix.h", +- "src/core/lib/iomgr/ev_posix.cc", + "src/core/lib/iomgr/ev_posix.h", +- "src/core/lib/iomgr/ev_windows.cc", +- "src/core/lib/iomgr/exec_ctx.cc", + "src/core/lib/iomgr/exec_ctx.h", +- "src/core/lib/iomgr/executor.cc", + "src/core/lib/iomgr/executor.h", +- "src/core/lib/iomgr/executor/mpmcqueue.cc", + "src/core/lib/iomgr/executor/mpmcqueue.h", +- "src/core/lib/iomgr/executor/threadpool.cc", + "src/core/lib/iomgr/executor/threadpool.h", +- "src/core/lib/iomgr/fork_posix.cc", +- "src/core/lib/iomgr/fork_windows.cc", + "src/core/lib/iomgr/gethostname.h", +- "src/core/lib/iomgr/gethostname_fallback.cc", +- "src/core/lib/iomgr/gethostname_host_name_max.cc", +- "src/core/lib/iomgr/gethostname_sysconf.cc", + "src/core/lib/iomgr/grpc_if_nametoindex.h", +- "src/core/lib/iomgr/grpc_if_nametoindex_posix.cc", +- "src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc", +- "src/core/lib/iomgr/internal_errqueue.cc", + "src/core/lib/iomgr/internal_errqueue.h", +- "src/core/lib/iomgr/iocp_windows.cc", + "src/core/lib/iomgr/iocp_windows.h", +- "src/core/lib/iomgr/iomgr.cc", + "src/core/lib/iomgr/iomgr.h", +- "src/core/lib/iomgr/iomgr_custom.cc", + "src/core/lib/iomgr/iomgr_custom.h", +- "src/core/lib/iomgr/iomgr_internal.cc", + "src/core/lib/iomgr/iomgr_internal.h", +- "src/core/lib/iomgr/iomgr_posix.cc", + "src/core/lib/iomgr/iomgr_posix.h", +- "src/core/lib/iomgr/iomgr_posix_cfstream.cc", +- "src/core/lib/iomgr/iomgr_uv.cc", +- "src/core/lib/iomgr/iomgr_windows.cc", +- "src/core/lib/iomgr/is_epollexclusive_available.cc", + "src/core/lib/iomgr/is_epollexclusive_available.h", +- "src/core/lib/iomgr/load_file.cc", + "src/core/lib/iomgr/load_file.h", +- "src/core/lib/iomgr/lockfree_event.cc", + "src/core/lib/iomgr/lockfree_event.h", +- "src/core/lib/iomgr/logical_thread.cc", + "src/core/lib/iomgr/logical_thread.h", + "src/core/lib/iomgr/nameser.h", +- "src/core/lib/iomgr/polling_entity.cc", + "src/core/lib/iomgr/polling_entity.h", +- "src/core/lib/iomgr/pollset.cc", + "src/core/lib/iomgr/pollset.h", +- "src/core/lib/iomgr/pollset_custom.cc", + "src/core/lib/iomgr/pollset_custom.h", +- "src/core/lib/iomgr/pollset_set.cc", + "src/core/lib/iomgr/pollset_set.h", +- "src/core/lib/iomgr/pollset_set_custom.cc", + "src/core/lib/iomgr/pollset_set_custom.h", +- "src/core/lib/iomgr/pollset_set_windows.cc", + "src/core/lib/iomgr/pollset_set_windows.h", +- "src/core/lib/iomgr/pollset_uv.cc", +- "src/core/lib/iomgr/pollset_windows.cc", + "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", +- "src/core/lib/iomgr/resolve_address.cc", + "src/core/lib/iomgr/resolve_address.h", +- "src/core/lib/iomgr/resolve_address_custom.cc", + "src/core/lib/iomgr/resolve_address_custom.h", +- "src/core/lib/iomgr/resolve_address_posix.cc", +- "src/core/lib/iomgr/resolve_address_windows.cc", +- "src/core/lib/iomgr/resource_quota.cc", + "src/core/lib/iomgr/resource_quota.h", + "src/core/lib/iomgr/sockaddr.h", + "src/core/lib/iomgr/sockaddr_custom.h", + "src/core/lib/iomgr/sockaddr_posix.h", +- "src/core/lib/iomgr/sockaddr_utils.cc", + "src/core/lib/iomgr/sockaddr_utils.h", + "src/core/lib/iomgr/sockaddr_windows.h", +- "src/core/lib/iomgr/socket_factory_posix.cc", + "src/core/lib/iomgr/socket_factory_posix.h", +- "src/core/lib/iomgr/socket_mutator.cc", + "src/core/lib/iomgr/socket_mutator.h", + "src/core/lib/iomgr/socket_utils.h", +- "src/core/lib/iomgr/socket_utils_common_posix.cc", +- "src/core/lib/iomgr/socket_utils_linux.cc", +- "src/core/lib/iomgr/socket_utils_posix.cc", + "src/core/lib/iomgr/socket_utils_posix.h", +- "src/core/lib/iomgr/socket_utils_uv.cc", +- "src/core/lib/iomgr/socket_utils_windows.cc", +- "src/core/lib/iomgr/socket_windows.cc", + "src/core/lib/iomgr/socket_windows.h", + "src/core/lib/iomgr/sys_epoll_wrapper.h", +- "src/core/lib/iomgr/tcp_client.cc", + "src/core/lib/iomgr/tcp_client.h", +- "src/core/lib/iomgr/tcp_client_cfstream.cc", +- "src/core/lib/iomgr/tcp_client_custom.cc", +- "src/core/lib/iomgr/tcp_client_posix.cc", + "src/core/lib/iomgr/tcp_client_posix.h", +- "src/core/lib/iomgr/tcp_client_windows.cc", +- "src/core/lib/iomgr/tcp_custom.cc", + "src/core/lib/iomgr/tcp_custom.h", +- "src/core/lib/iomgr/tcp_posix.cc", + "src/core/lib/iomgr/tcp_posix.h", +- "src/core/lib/iomgr/tcp_server.cc", + "src/core/lib/iomgr/tcp_server.h", +- "src/core/lib/iomgr/tcp_server_custom.cc", +- "src/core/lib/iomgr/tcp_server_posix.cc", + "src/core/lib/iomgr/tcp_server_utils_posix.h", +- "src/core/lib/iomgr/tcp_server_utils_posix_common.cc", +- "src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc", +- "src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc", +- "src/core/lib/iomgr/tcp_server_windows.cc", +- "src/core/lib/iomgr/tcp_uv.cc", +- "src/core/lib/iomgr/tcp_windows.cc", + "src/core/lib/iomgr/tcp_windows.h", +- "src/core/lib/iomgr/time_averaged_stats.cc", + "src/core/lib/iomgr/time_averaged_stats.h", +- "src/core/lib/iomgr/timer.cc", + "src/core/lib/iomgr/timer.h", +- "src/core/lib/iomgr/timer_custom.cc", + "src/core/lib/iomgr/timer_custom.h", +- "src/core/lib/iomgr/timer_generic.cc", +- "src/core/lib/iomgr/timer_heap.cc", + "src/core/lib/iomgr/timer_heap.h", +- "src/core/lib/iomgr/timer_manager.cc", + "src/core/lib/iomgr/timer_manager.h", +- "src/core/lib/iomgr/timer_uv.cc", +- "src/core/lib/iomgr/udp_server.cc", + "src/core/lib/iomgr/udp_server.h", +- "src/core/lib/iomgr/unix_sockets_posix.cc", + "src/core/lib/iomgr/unix_sockets_posix.h", +- "src/core/lib/iomgr/unix_sockets_posix_noop.cc", +- "src/core/lib/iomgr/wakeup_fd_eventfd.cc", +- "src/core/lib/iomgr/wakeup_fd_nospecial.cc", +- "src/core/lib/iomgr/wakeup_fd_pipe.cc", + "src/core/lib/iomgr/wakeup_fd_pipe.h", +- "src/core/lib/iomgr/wakeup_fd_posix.cc", + "src/core/lib/iomgr/wakeup_fd_posix.h", +- "src/core/lib/json/json.cc", + "src/core/lib/json/json.h", + "src/core/lib/json/json_common.h", +- "src/core/lib/json/json_reader.cc", + "src/core/lib/json/json_reader.h", +- "src/core/lib/json/json_string.cc", +- "src/core/lib/json/json_writer.cc", + "src/core/lib/json/json_writer.h", + "src/core/lib/profiling/timers.h", +- "src/core/lib/slice/b64.cc", + "src/core/lib/slice/b64.h", +- "src/core/lib/slice/percent_encoding.cc", + "src/core/lib/slice/percent_encoding.h", +- "src/core/lib/slice/slice.cc", +- "src/core/lib/slice/slice_buffer.cc", + "src/core/lib/slice/slice_hash_table.h", +- "src/core/lib/slice/slice_intern.cc", + "src/core/lib/slice/slice_internal.h", +- "src/core/lib/slice/slice_string_helpers.cc", + "src/core/lib/slice/slice_string_helpers.h", + "src/core/lib/slice/slice_utils.h", + "src/core/lib/slice/slice_weak_hash_table.h", +- "src/core/lib/surface/api_trace.cc", + "src/core/lib/surface/api_trace.h", +- "src/core/lib/surface/byte_buffer.cc", +- "src/core/lib/surface/byte_buffer_reader.cc", +- "src/core/lib/surface/call.cc", + "src/core/lib/surface/call.h", +- "src/core/lib/surface/call_details.cc", +- "src/core/lib/surface/call_log_batch.cc", + "src/core/lib/surface/call_test_only.h", +- "src/core/lib/surface/channel.cc", + "src/core/lib/surface/channel.h", +- "src/core/lib/surface/channel_init.cc", + "src/core/lib/surface/channel_init.h", +- "src/core/lib/surface/channel_ping.cc", +- "src/core/lib/surface/channel_stack_type.cc", + "src/core/lib/surface/channel_stack_type.h", +- "src/core/lib/surface/completion_queue.cc", + "src/core/lib/surface/completion_queue.h", +- "src/core/lib/surface/completion_queue_factory.cc", + "src/core/lib/surface/completion_queue_factory.h", +- "src/core/lib/surface/event_string.cc", + "src/core/lib/surface/event_string.h", + "src/core/lib/surface/init.h", +- "src/core/lib/surface/lame_client.cc", + "src/core/lib/surface/lame_client.h", +- "src/core/lib/surface/metadata_array.cc", +- "src/core/lib/surface/server.cc", + "src/core/lib/surface/server.h", +- "src/core/lib/surface/validate_metadata.cc", + "src/core/lib/surface/validate_metadata.h", +- "src/core/lib/surface/version.cc", +- "src/core/lib/transport/bdp_estimator.cc", + "src/core/lib/transport/bdp_estimator.h", +- "src/core/lib/transport/byte_stream.cc", + "src/core/lib/transport/byte_stream.h", +- "src/core/lib/transport/connectivity_state.cc", + "src/core/lib/transport/connectivity_state.h", +- "src/core/lib/transport/error_utils.cc", + "src/core/lib/transport/error_utils.h", + "src/core/lib/transport/http2_errors.h", +- "src/core/lib/transport/metadata.cc", + "src/core/lib/transport/metadata.h", +- "src/core/lib/transport/metadata_batch.cc", + "src/core/lib/transport/metadata_batch.h", +- "src/core/lib/transport/pid_controller.cc", + "src/core/lib/transport/pid_controller.h", +- "src/core/lib/transport/static_metadata.cc", + "src/core/lib/transport/static_metadata.h", +- "src/core/lib/transport/status_conversion.cc", + "src/core/lib/transport/status_conversion.h", +- "src/core/lib/transport/status_metadata.cc", + "src/core/lib/transport/status_metadata.h", +- "src/core/lib/transport/timeout_encoding.cc", + "src/core/lib/transport/timeout_encoding.h", +- "src/core/lib/transport/transport.cc", + "src/core/lib/transport/transport.h", + "src/core/lib/transport/transport_impl.h", +- "src/core/lib/transport/transport_op_string.cc", +- "src/core/lib/uri/uri_parser.cc", + "src/core/lib/uri/uri_parser.h", + "src/cpp/client/channel_cc.cc", + "src/cpp/client/client_context.cc", +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3d4418ad619..be27010428f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3299,205 +3299,7 @@ add_library(grpc++ + src/cpp/util/status.cc + src/cpp/util/string_ref.cc + src/cpp/util/time_cc.cc +- src/core/ext/filters/client_channel/backend_metric.cc +- src/core/ext/filters/client_channel/backup_poller.cc +- src/core/ext/filters/client_channel/channel_connectivity.cc +- src/core/ext/filters/client_channel/client_channel.cc +- src/core/ext/filters/client_channel/client_channel_channelz.cc +- src/core/ext/filters/client_channel/client_channel_factory.cc +- src/core/ext/filters/client_channel/client_channel_plugin.cc +- src/core/ext/filters/client_channel/global_subchannel_pool.cc +- src/core/ext/filters/client_channel/health/health_check_client.cc +- src/core/ext/filters/client_channel/http_connect_handshaker.cc +- src/core/ext/filters/client_channel/http_proxy.cc +- src/core/ext/filters/client_channel/lb_policy.cc +- src/core/ext/filters/client_channel/lb_policy_registry.cc +- src/core/ext/filters/client_channel/local_subchannel_pool.cc +- src/core/ext/filters/client_channel/parse_address.cc +- src/core/ext/filters/client_channel/proxy_mapper_registry.cc +- src/core/ext/filters/client_channel/resolver.cc +- src/core/ext/filters/client_channel/resolver_registry.cc +- src/core/ext/filters/client_channel/resolver_result_parsing.cc +- src/core/ext/filters/client_channel/resolving_lb_policy.cc +- src/core/ext/filters/client_channel/retry_throttle.cc +- src/core/ext/filters/client_channel/server_address.cc +- src/core/ext/filters/client_channel/service_config.cc +- src/core/ext/filters/client_channel/subchannel.cc +- src/core/ext/filters/client_channel/subchannel_pool_interface.cc +- src/core/lib/avl/avl.cc +- src/core/lib/backoff/backoff.cc +- src/core/lib/channel/channel_args.cc +- src/core/lib/channel/channel_stack.cc +- src/core/lib/channel/channel_stack_builder.cc +- src/core/lib/channel/channel_trace.cc +- src/core/lib/channel/channelz.cc +- src/core/lib/channel/channelz_registry.cc +- src/core/lib/channel/connected_channel.cc +- src/core/lib/channel/handshaker.cc +- src/core/lib/channel/handshaker_registry.cc +- src/core/lib/channel/status_util.cc +- src/core/lib/compression/compression.cc +- src/core/lib/compression/compression_args.cc +- src/core/lib/compression/compression_internal.cc +- src/core/lib/compression/message_compress.cc +- src/core/lib/compression/stream_compression.cc +- src/core/lib/compression/stream_compression_gzip.cc +- src/core/lib/compression/stream_compression_identity.cc +- src/core/lib/debug/stats.cc +- src/core/lib/debug/stats_data.cc +- src/core/lib/http/format_request.cc +- src/core/lib/http/httpcli.cc +- src/core/lib/http/parser.cc +- src/core/lib/iomgr/buffer_list.cc +- src/core/lib/iomgr/call_combiner.cc +- src/core/lib/iomgr/cfstream_handle.cc +- src/core/lib/iomgr/combiner.cc +- src/core/lib/iomgr/endpoint.cc +- src/core/lib/iomgr/endpoint_cfstream.cc +- src/core/lib/iomgr/endpoint_pair_posix.cc +- src/core/lib/iomgr/endpoint_pair_uv.cc +- src/core/lib/iomgr/endpoint_pair_windows.cc +- src/core/lib/iomgr/error.cc +- src/core/lib/iomgr/error_cfstream.cc +- src/core/lib/iomgr/ev_epoll1_linux.cc +- src/core/lib/iomgr/ev_epollex_linux.cc +- src/core/lib/iomgr/ev_poll_posix.cc +- src/core/lib/iomgr/ev_posix.cc +- src/core/lib/iomgr/ev_windows.cc +- src/core/lib/iomgr/exec_ctx.cc +- src/core/lib/iomgr/executor.cc +- src/core/lib/iomgr/executor/mpmcqueue.cc +- src/core/lib/iomgr/executor/threadpool.cc +- src/core/lib/iomgr/fork_posix.cc +- src/core/lib/iomgr/fork_windows.cc +- src/core/lib/iomgr/gethostname_fallback.cc +- src/core/lib/iomgr/gethostname_host_name_max.cc +- src/core/lib/iomgr/gethostname_sysconf.cc +- src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +- src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +- src/core/lib/iomgr/internal_errqueue.cc +- src/core/lib/iomgr/iocp_windows.cc +- src/core/lib/iomgr/iomgr.cc +- src/core/lib/iomgr/iomgr_custom.cc +- src/core/lib/iomgr/iomgr_internal.cc +- src/core/lib/iomgr/iomgr_posix.cc +- src/core/lib/iomgr/iomgr_posix_cfstream.cc +- src/core/lib/iomgr/iomgr_uv.cc +- src/core/lib/iomgr/iomgr_windows.cc +- src/core/lib/iomgr/is_epollexclusive_available.cc +- src/core/lib/iomgr/load_file.cc +- src/core/lib/iomgr/lockfree_event.cc +- src/core/lib/iomgr/logical_thread.cc +- src/core/lib/iomgr/polling_entity.cc +- src/core/lib/iomgr/pollset.cc +- src/core/lib/iomgr/pollset_custom.cc +- src/core/lib/iomgr/pollset_set.cc +- src/core/lib/iomgr/pollset_set_custom.cc +- src/core/lib/iomgr/pollset_set_windows.cc +- src/core/lib/iomgr/pollset_uv.cc +- src/core/lib/iomgr/pollset_windows.cc +- src/core/lib/iomgr/resolve_address.cc +- src/core/lib/iomgr/resolve_address_custom.cc +- src/core/lib/iomgr/resolve_address_posix.cc +- src/core/lib/iomgr/resolve_address_windows.cc +- src/core/lib/iomgr/resource_quota.cc +- src/core/lib/iomgr/sockaddr_utils.cc +- src/core/lib/iomgr/socket_factory_posix.cc +- src/core/lib/iomgr/socket_mutator.cc +- src/core/lib/iomgr/socket_utils_common_posix.cc +- src/core/lib/iomgr/socket_utils_linux.cc +- src/core/lib/iomgr/socket_utils_posix.cc +- src/core/lib/iomgr/socket_utils_uv.cc +- src/core/lib/iomgr/socket_utils_windows.cc +- src/core/lib/iomgr/socket_windows.cc +- src/core/lib/iomgr/tcp_client.cc +- src/core/lib/iomgr/tcp_client_cfstream.cc +- src/core/lib/iomgr/tcp_client_custom.cc +- src/core/lib/iomgr/tcp_client_posix.cc +- src/core/lib/iomgr/tcp_client_windows.cc +- src/core/lib/iomgr/tcp_custom.cc +- src/core/lib/iomgr/tcp_posix.cc +- src/core/lib/iomgr/tcp_server.cc +- src/core/lib/iomgr/tcp_server_custom.cc +- src/core/lib/iomgr/tcp_server_posix.cc +- src/core/lib/iomgr/tcp_server_utils_posix_common.cc +- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +- src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +- src/core/lib/iomgr/tcp_server_windows.cc +- src/core/lib/iomgr/tcp_uv.cc +- src/core/lib/iomgr/tcp_windows.cc +- src/core/lib/iomgr/time_averaged_stats.cc +- src/core/lib/iomgr/timer.cc +- src/core/lib/iomgr/timer_custom.cc +- src/core/lib/iomgr/timer_generic.cc +- src/core/lib/iomgr/timer_heap.cc +- src/core/lib/iomgr/timer_manager.cc +- src/core/lib/iomgr/timer_uv.cc +- src/core/lib/iomgr/udp_server.cc +- src/core/lib/iomgr/unix_sockets_posix.cc +- src/core/lib/iomgr/unix_sockets_posix_noop.cc +- src/core/lib/iomgr/wakeup_fd_eventfd.cc +- src/core/lib/iomgr/wakeup_fd_nospecial.cc +- src/core/lib/iomgr/wakeup_fd_pipe.cc +- src/core/lib/iomgr/wakeup_fd_posix.cc +- src/core/lib/json/json.cc +- src/core/lib/json/json_reader.cc +- src/core/lib/json/json_string.cc +- src/core/lib/json/json_writer.cc +- src/core/lib/slice/b64.cc +- src/core/lib/slice/percent_encoding.cc +- src/core/lib/slice/slice.cc +- src/core/lib/slice/slice_buffer.cc +- src/core/lib/slice/slice_intern.cc +- src/core/lib/slice/slice_string_helpers.cc +- src/core/lib/surface/api_trace.cc +- src/core/lib/surface/byte_buffer.cc +- src/core/lib/surface/byte_buffer_reader.cc +- src/core/lib/surface/call.cc +- src/core/lib/surface/call_details.cc +- src/core/lib/surface/call_log_batch.cc +- src/core/lib/surface/channel.cc +- src/core/lib/surface/channel_init.cc +- src/core/lib/surface/channel_ping.cc +- src/core/lib/surface/channel_stack_type.cc +- src/core/lib/surface/completion_queue.cc +- src/core/lib/surface/completion_queue_factory.cc +- src/core/lib/surface/event_string.cc +- src/core/lib/surface/lame_client.cc +- src/core/lib/surface/metadata_array.cc +- src/core/lib/surface/server.cc +- src/core/lib/surface/validate_metadata.cc +- src/core/lib/surface/version.cc +- src/core/lib/transport/bdp_estimator.cc +- src/core/lib/transport/byte_stream.cc +- src/core/lib/transport/connectivity_state.cc +- src/core/lib/transport/error_utils.cc +- src/core/lib/transport/metadata.cc +- src/core/lib/transport/metadata_batch.cc +- src/core/lib/transport/pid_controller.cc +- src/core/lib/transport/static_metadata.cc +- src/core/lib/transport/status_conversion.cc +- src/core/lib/transport/status_metadata.cc +- src/core/lib/transport/timeout_encoding.cc +- src/core/lib/transport/transport.cc +- src/core/lib/transport/transport_op_string.cc +- src/core/lib/uri/uri_parser.cc +- src/core/lib/debug/trace.cc +- src/core/ext/filters/deadline/deadline_filter.cc + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +- src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +- src/core/ext/upb-generated/gogoproto/gogo.upb.c +- src/core/ext/upb-generated/validate/validate.upb.c +- src/core/ext/upb-generated/google/api/annotations.upb.c +- src/core/ext/upb-generated/google/api/http.upb.c +- src/core/ext/upb-generated/google/protobuf/any.upb.c +- src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +- src/core/ext/upb-generated/google/protobuf/duration.upb.c +- src/core/ext/upb-generated/google/protobuf/empty.upb.c +- src/core/ext/upb-generated/google/protobuf/struct.upb.c +- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +- src/core/ext/upb-generated/google/rpc/status.upb.c + src/cpp/codegen/codegen_init.cc + ) + +@@ -4564,205 +4366,7 @@ add_library(grpc++_unsecure + src/cpp/util/status.cc + src/cpp/util/string_ref.cc + src/cpp/util/time_cc.cc +- src/core/ext/filters/client_channel/backend_metric.cc +- src/core/ext/filters/client_channel/backup_poller.cc +- src/core/ext/filters/client_channel/channel_connectivity.cc +- src/core/ext/filters/client_channel/client_channel.cc +- src/core/ext/filters/client_channel/client_channel_channelz.cc +- src/core/ext/filters/client_channel/client_channel_factory.cc +- src/core/ext/filters/client_channel/client_channel_plugin.cc +- src/core/ext/filters/client_channel/global_subchannel_pool.cc +- src/core/ext/filters/client_channel/health/health_check_client.cc +- src/core/ext/filters/client_channel/http_connect_handshaker.cc +- src/core/ext/filters/client_channel/http_proxy.cc +- src/core/ext/filters/client_channel/lb_policy.cc +- src/core/ext/filters/client_channel/lb_policy_registry.cc +- src/core/ext/filters/client_channel/local_subchannel_pool.cc +- src/core/ext/filters/client_channel/parse_address.cc +- src/core/ext/filters/client_channel/proxy_mapper_registry.cc +- src/core/ext/filters/client_channel/resolver.cc +- src/core/ext/filters/client_channel/resolver_registry.cc +- src/core/ext/filters/client_channel/resolver_result_parsing.cc +- src/core/ext/filters/client_channel/resolving_lb_policy.cc +- src/core/ext/filters/client_channel/retry_throttle.cc +- src/core/ext/filters/client_channel/server_address.cc +- src/core/ext/filters/client_channel/service_config.cc +- src/core/ext/filters/client_channel/subchannel.cc +- src/core/ext/filters/client_channel/subchannel_pool_interface.cc +- src/core/lib/avl/avl.cc +- src/core/lib/backoff/backoff.cc +- src/core/lib/channel/channel_args.cc +- src/core/lib/channel/channel_stack.cc +- src/core/lib/channel/channel_stack_builder.cc +- src/core/lib/channel/channel_trace.cc +- src/core/lib/channel/channelz.cc +- src/core/lib/channel/channelz_registry.cc +- src/core/lib/channel/connected_channel.cc +- src/core/lib/channel/handshaker.cc +- src/core/lib/channel/handshaker_registry.cc +- src/core/lib/channel/status_util.cc +- src/core/lib/compression/compression.cc +- src/core/lib/compression/compression_args.cc +- src/core/lib/compression/compression_internal.cc +- src/core/lib/compression/message_compress.cc +- src/core/lib/compression/stream_compression.cc +- src/core/lib/compression/stream_compression_gzip.cc +- src/core/lib/compression/stream_compression_identity.cc +- src/core/lib/debug/stats.cc +- src/core/lib/debug/stats_data.cc +- src/core/lib/http/format_request.cc +- src/core/lib/http/httpcli.cc +- src/core/lib/http/parser.cc +- src/core/lib/iomgr/buffer_list.cc +- src/core/lib/iomgr/call_combiner.cc +- src/core/lib/iomgr/cfstream_handle.cc +- src/core/lib/iomgr/combiner.cc +- src/core/lib/iomgr/endpoint.cc +- src/core/lib/iomgr/endpoint_cfstream.cc +- src/core/lib/iomgr/endpoint_pair_posix.cc +- src/core/lib/iomgr/endpoint_pair_uv.cc +- src/core/lib/iomgr/endpoint_pair_windows.cc +- src/core/lib/iomgr/error.cc +- src/core/lib/iomgr/error_cfstream.cc +- src/core/lib/iomgr/ev_epoll1_linux.cc +- src/core/lib/iomgr/ev_epollex_linux.cc +- src/core/lib/iomgr/ev_poll_posix.cc +- src/core/lib/iomgr/ev_posix.cc +- src/core/lib/iomgr/ev_windows.cc +- src/core/lib/iomgr/exec_ctx.cc +- src/core/lib/iomgr/executor.cc +- src/core/lib/iomgr/executor/mpmcqueue.cc +- src/core/lib/iomgr/executor/threadpool.cc +- src/core/lib/iomgr/fork_posix.cc +- src/core/lib/iomgr/fork_windows.cc +- src/core/lib/iomgr/gethostname_fallback.cc +- src/core/lib/iomgr/gethostname_host_name_max.cc +- src/core/lib/iomgr/gethostname_sysconf.cc +- src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +- src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +- src/core/lib/iomgr/internal_errqueue.cc +- src/core/lib/iomgr/iocp_windows.cc +- src/core/lib/iomgr/iomgr.cc +- src/core/lib/iomgr/iomgr_custom.cc +- src/core/lib/iomgr/iomgr_internal.cc +- src/core/lib/iomgr/iomgr_posix.cc +- src/core/lib/iomgr/iomgr_posix_cfstream.cc +- src/core/lib/iomgr/iomgr_uv.cc +- src/core/lib/iomgr/iomgr_windows.cc +- src/core/lib/iomgr/is_epollexclusive_available.cc +- src/core/lib/iomgr/load_file.cc +- src/core/lib/iomgr/lockfree_event.cc +- src/core/lib/iomgr/logical_thread.cc +- src/core/lib/iomgr/polling_entity.cc +- src/core/lib/iomgr/pollset.cc +- src/core/lib/iomgr/pollset_custom.cc +- src/core/lib/iomgr/pollset_set.cc +- src/core/lib/iomgr/pollset_set_custom.cc +- src/core/lib/iomgr/pollset_set_windows.cc +- src/core/lib/iomgr/pollset_uv.cc +- src/core/lib/iomgr/pollset_windows.cc +- src/core/lib/iomgr/resolve_address.cc +- src/core/lib/iomgr/resolve_address_custom.cc +- src/core/lib/iomgr/resolve_address_posix.cc +- src/core/lib/iomgr/resolve_address_windows.cc +- src/core/lib/iomgr/resource_quota.cc +- src/core/lib/iomgr/sockaddr_utils.cc +- src/core/lib/iomgr/socket_factory_posix.cc +- src/core/lib/iomgr/socket_mutator.cc +- src/core/lib/iomgr/socket_utils_common_posix.cc +- src/core/lib/iomgr/socket_utils_linux.cc +- src/core/lib/iomgr/socket_utils_posix.cc +- src/core/lib/iomgr/socket_utils_uv.cc +- src/core/lib/iomgr/socket_utils_windows.cc +- src/core/lib/iomgr/socket_windows.cc +- src/core/lib/iomgr/tcp_client.cc +- src/core/lib/iomgr/tcp_client_cfstream.cc +- src/core/lib/iomgr/tcp_client_custom.cc +- src/core/lib/iomgr/tcp_client_posix.cc +- src/core/lib/iomgr/tcp_client_windows.cc +- src/core/lib/iomgr/tcp_custom.cc +- src/core/lib/iomgr/tcp_posix.cc +- src/core/lib/iomgr/tcp_server.cc +- src/core/lib/iomgr/tcp_server_custom.cc +- src/core/lib/iomgr/tcp_server_posix.cc +- src/core/lib/iomgr/tcp_server_utils_posix_common.cc +- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +- src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +- src/core/lib/iomgr/tcp_server_windows.cc +- src/core/lib/iomgr/tcp_uv.cc +- src/core/lib/iomgr/tcp_windows.cc +- src/core/lib/iomgr/time_averaged_stats.cc +- src/core/lib/iomgr/timer.cc +- src/core/lib/iomgr/timer_custom.cc +- src/core/lib/iomgr/timer_generic.cc +- src/core/lib/iomgr/timer_heap.cc +- src/core/lib/iomgr/timer_manager.cc +- src/core/lib/iomgr/timer_uv.cc +- src/core/lib/iomgr/udp_server.cc +- src/core/lib/iomgr/unix_sockets_posix.cc +- src/core/lib/iomgr/unix_sockets_posix_noop.cc +- src/core/lib/iomgr/wakeup_fd_eventfd.cc +- src/core/lib/iomgr/wakeup_fd_nospecial.cc +- src/core/lib/iomgr/wakeup_fd_pipe.cc +- src/core/lib/iomgr/wakeup_fd_posix.cc +- src/core/lib/json/json.cc +- src/core/lib/json/json_reader.cc +- src/core/lib/json/json_string.cc +- src/core/lib/json/json_writer.cc +- src/core/lib/slice/b64.cc +- src/core/lib/slice/percent_encoding.cc +- src/core/lib/slice/slice.cc +- src/core/lib/slice/slice_buffer.cc +- src/core/lib/slice/slice_intern.cc +- src/core/lib/slice/slice_string_helpers.cc +- src/core/lib/surface/api_trace.cc +- src/core/lib/surface/byte_buffer.cc +- src/core/lib/surface/byte_buffer_reader.cc +- src/core/lib/surface/call.cc +- src/core/lib/surface/call_details.cc +- src/core/lib/surface/call_log_batch.cc +- src/core/lib/surface/channel.cc +- src/core/lib/surface/channel_init.cc +- src/core/lib/surface/channel_ping.cc +- src/core/lib/surface/channel_stack_type.cc +- src/core/lib/surface/completion_queue.cc +- src/core/lib/surface/completion_queue_factory.cc +- src/core/lib/surface/event_string.cc +- src/core/lib/surface/lame_client.cc +- src/core/lib/surface/metadata_array.cc +- src/core/lib/surface/server.cc +- src/core/lib/surface/validate_metadata.cc +- src/core/lib/surface/version.cc +- src/core/lib/transport/bdp_estimator.cc +- src/core/lib/transport/byte_stream.cc +- src/core/lib/transport/connectivity_state.cc +- src/core/lib/transport/error_utils.cc +- src/core/lib/transport/metadata.cc +- src/core/lib/transport/metadata_batch.cc +- src/core/lib/transport/pid_controller.cc +- src/core/lib/transport/static_metadata.cc +- src/core/lib/transport/status_conversion.cc +- src/core/lib/transport/status_metadata.cc +- src/core/lib/transport/timeout_encoding.cc +- src/core/lib/transport/transport.cc +- src/core/lib/transport/transport_op_string.cc +- src/core/lib/uri/uri_parser.cc +- src/core/lib/debug/trace.cc +- src/core/ext/filters/deadline/deadline_filter.cc + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +- src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +- src/core/ext/upb-generated/gogoproto/gogo.upb.c +- src/core/ext/upb-generated/validate/validate.upb.c +- src/core/ext/upb-generated/google/api/annotations.upb.c +- src/core/ext/upb-generated/google/api/http.upb.c +- src/core/ext/upb-generated/google/protobuf/any.upb.c +- src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +- src/core/ext/upb-generated/google/protobuf/duration.upb.c +- src/core/ext/upb-generated/google/protobuf/empty.upb.c +- src/core/ext/upb-generated/google/protobuf/struct.upb.c +- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +- src/core/ext/upb-generated/google/rpc/status.upb.c + src/cpp/codegen/codegen_init.cc + ) + +diff --git a/Makefile b/Makefile +index f8bd36f62f6..b25c748d3a9 100644 +--- a/Makefile ++++ b/Makefile +@@ -5695,205 +5695,7 @@ LIBGRPC++_SRC = \ + src/cpp/util/status.cc \ + src/cpp/util/string_ref.cc \ + src/cpp/util/time_cc.cc \ +- src/core/ext/filters/client_channel/backend_metric.cc \ +- src/core/ext/filters/client_channel/backup_poller.cc \ +- src/core/ext/filters/client_channel/channel_connectivity.cc \ +- src/core/ext/filters/client_channel/client_channel.cc \ +- src/core/ext/filters/client_channel/client_channel_channelz.cc \ +- src/core/ext/filters/client_channel/client_channel_factory.cc \ +- src/core/ext/filters/client_channel/client_channel_plugin.cc \ +- src/core/ext/filters/client_channel/global_subchannel_pool.cc \ +- src/core/ext/filters/client_channel/health/health_check_client.cc \ +- src/core/ext/filters/client_channel/http_connect_handshaker.cc \ +- src/core/ext/filters/client_channel/http_proxy.cc \ +- src/core/ext/filters/client_channel/lb_policy.cc \ +- src/core/ext/filters/client_channel/lb_policy_registry.cc \ +- src/core/ext/filters/client_channel/local_subchannel_pool.cc \ +- src/core/ext/filters/client_channel/parse_address.cc \ +- src/core/ext/filters/client_channel/proxy_mapper_registry.cc \ +- src/core/ext/filters/client_channel/resolver.cc \ +- src/core/ext/filters/client_channel/resolver_registry.cc \ +- src/core/ext/filters/client_channel/resolver_result_parsing.cc \ +- src/core/ext/filters/client_channel/resolving_lb_policy.cc \ +- src/core/ext/filters/client_channel/retry_throttle.cc \ +- src/core/ext/filters/client_channel/server_address.cc \ +- src/core/ext/filters/client_channel/service_config.cc \ +- src/core/ext/filters/client_channel/subchannel.cc \ +- src/core/ext/filters/client_channel/subchannel_pool_interface.cc \ +- src/core/lib/avl/avl.cc \ +- src/core/lib/backoff/backoff.cc \ +- src/core/lib/channel/channel_args.cc \ +- src/core/lib/channel/channel_stack.cc \ +- src/core/lib/channel/channel_stack_builder.cc \ +- src/core/lib/channel/channel_trace.cc \ +- src/core/lib/channel/channelz.cc \ +- src/core/lib/channel/channelz_registry.cc \ +- src/core/lib/channel/connected_channel.cc \ +- src/core/lib/channel/handshaker.cc \ +- src/core/lib/channel/handshaker_registry.cc \ +- src/core/lib/channel/status_util.cc \ +- src/core/lib/compression/compression.cc \ +- src/core/lib/compression/compression_args.cc \ +- src/core/lib/compression/compression_internal.cc \ +- src/core/lib/compression/message_compress.cc \ +- src/core/lib/compression/stream_compression.cc \ +- src/core/lib/compression/stream_compression_gzip.cc \ +- src/core/lib/compression/stream_compression_identity.cc \ +- src/core/lib/debug/stats.cc \ +- src/core/lib/debug/stats_data.cc \ +- src/core/lib/http/format_request.cc \ +- src/core/lib/http/httpcli.cc \ +- src/core/lib/http/parser.cc \ +- src/core/lib/iomgr/buffer_list.cc \ +- src/core/lib/iomgr/call_combiner.cc \ +- src/core/lib/iomgr/cfstream_handle.cc \ +- src/core/lib/iomgr/combiner.cc \ +- src/core/lib/iomgr/endpoint.cc \ +- src/core/lib/iomgr/endpoint_cfstream.cc \ +- src/core/lib/iomgr/endpoint_pair_posix.cc \ +- src/core/lib/iomgr/endpoint_pair_uv.cc \ +- src/core/lib/iomgr/endpoint_pair_windows.cc \ +- src/core/lib/iomgr/error.cc \ +- src/core/lib/iomgr/error_cfstream.cc \ +- src/core/lib/iomgr/ev_epoll1_linux.cc \ +- src/core/lib/iomgr/ev_epollex_linux.cc \ +- src/core/lib/iomgr/ev_poll_posix.cc \ +- src/core/lib/iomgr/ev_posix.cc \ +- src/core/lib/iomgr/ev_windows.cc \ +- src/core/lib/iomgr/exec_ctx.cc \ +- src/core/lib/iomgr/executor.cc \ +- src/core/lib/iomgr/executor/mpmcqueue.cc \ +- src/core/lib/iomgr/executor/threadpool.cc \ +- src/core/lib/iomgr/fork_posix.cc \ +- src/core/lib/iomgr/fork_windows.cc \ +- src/core/lib/iomgr/gethostname_fallback.cc \ +- src/core/lib/iomgr/gethostname_host_name_max.cc \ +- src/core/lib/iomgr/gethostname_sysconf.cc \ +- src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \ +- src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \ +- src/core/lib/iomgr/internal_errqueue.cc \ +- src/core/lib/iomgr/iocp_windows.cc \ +- src/core/lib/iomgr/iomgr.cc \ +- src/core/lib/iomgr/iomgr_custom.cc \ +- src/core/lib/iomgr/iomgr_internal.cc \ +- src/core/lib/iomgr/iomgr_posix.cc \ +- src/core/lib/iomgr/iomgr_posix_cfstream.cc \ +- src/core/lib/iomgr/iomgr_uv.cc \ +- src/core/lib/iomgr/iomgr_windows.cc \ +- src/core/lib/iomgr/is_epollexclusive_available.cc \ +- src/core/lib/iomgr/load_file.cc \ +- src/core/lib/iomgr/lockfree_event.cc \ +- src/core/lib/iomgr/logical_thread.cc \ +- src/core/lib/iomgr/polling_entity.cc \ +- src/core/lib/iomgr/pollset.cc \ +- src/core/lib/iomgr/pollset_custom.cc \ +- src/core/lib/iomgr/pollset_set.cc \ +- src/core/lib/iomgr/pollset_set_custom.cc \ +- src/core/lib/iomgr/pollset_set_windows.cc \ +- src/core/lib/iomgr/pollset_uv.cc \ +- src/core/lib/iomgr/pollset_windows.cc \ +- src/core/lib/iomgr/resolve_address.cc \ +- src/core/lib/iomgr/resolve_address_custom.cc \ +- src/core/lib/iomgr/resolve_address_posix.cc \ +- src/core/lib/iomgr/resolve_address_windows.cc \ +- src/core/lib/iomgr/resource_quota.cc \ +- src/core/lib/iomgr/sockaddr_utils.cc \ +- src/core/lib/iomgr/socket_factory_posix.cc \ +- src/core/lib/iomgr/socket_mutator.cc \ +- src/core/lib/iomgr/socket_utils_common_posix.cc \ +- src/core/lib/iomgr/socket_utils_linux.cc \ +- src/core/lib/iomgr/socket_utils_posix.cc \ +- src/core/lib/iomgr/socket_utils_uv.cc \ +- src/core/lib/iomgr/socket_utils_windows.cc \ +- src/core/lib/iomgr/socket_windows.cc \ +- src/core/lib/iomgr/tcp_client.cc \ +- src/core/lib/iomgr/tcp_client_cfstream.cc \ +- src/core/lib/iomgr/tcp_client_custom.cc \ +- src/core/lib/iomgr/tcp_client_posix.cc \ +- src/core/lib/iomgr/tcp_client_windows.cc \ +- src/core/lib/iomgr/tcp_custom.cc \ +- src/core/lib/iomgr/tcp_posix.cc \ +- src/core/lib/iomgr/tcp_server.cc \ +- src/core/lib/iomgr/tcp_server_custom.cc \ +- src/core/lib/iomgr/tcp_server_posix.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_common.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc \ +- src/core/lib/iomgr/tcp_server_windows.cc \ +- src/core/lib/iomgr/tcp_uv.cc \ +- src/core/lib/iomgr/tcp_windows.cc \ +- src/core/lib/iomgr/time_averaged_stats.cc \ +- src/core/lib/iomgr/timer.cc \ +- src/core/lib/iomgr/timer_custom.cc \ +- src/core/lib/iomgr/timer_generic.cc \ +- src/core/lib/iomgr/timer_heap.cc \ +- src/core/lib/iomgr/timer_manager.cc \ +- src/core/lib/iomgr/timer_uv.cc \ +- src/core/lib/iomgr/udp_server.cc \ +- src/core/lib/iomgr/unix_sockets_posix.cc \ +- src/core/lib/iomgr/unix_sockets_posix_noop.cc \ +- src/core/lib/iomgr/wakeup_fd_eventfd.cc \ +- src/core/lib/iomgr/wakeup_fd_nospecial.cc \ +- src/core/lib/iomgr/wakeup_fd_pipe.cc \ +- src/core/lib/iomgr/wakeup_fd_posix.cc \ +- src/core/lib/json/json.cc \ +- src/core/lib/json/json_reader.cc \ +- src/core/lib/json/json_string.cc \ +- src/core/lib/json/json_writer.cc \ +- src/core/lib/slice/b64.cc \ +- src/core/lib/slice/percent_encoding.cc \ +- src/core/lib/slice/slice.cc \ +- src/core/lib/slice/slice_buffer.cc \ +- src/core/lib/slice/slice_intern.cc \ +- src/core/lib/slice/slice_string_helpers.cc \ +- src/core/lib/surface/api_trace.cc \ +- src/core/lib/surface/byte_buffer.cc \ +- src/core/lib/surface/byte_buffer_reader.cc \ +- src/core/lib/surface/call.cc \ +- src/core/lib/surface/call_details.cc \ +- src/core/lib/surface/call_log_batch.cc \ +- src/core/lib/surface/channel.cc \ +- src/core/lib/surface/channel_init.cc \ +- src/core/lib/surface/channel_ping.cc \ +- src/core/lib/surface/channel_stack_type.cc \ +- src/core/lib/surface/completion_queue.cc \ +- src/core/lib/surface/completion_queue_factory.cc \ +- src/core/lib/surface/event_string.cc \ +- src/core/lib/surface/lame_client.cc \ +- src/core/lib/surface/metadata_array.cc \ +- src/core/lib/surface/server.cc \ +- src/core/lib/surface/validate_metadata.cc \ +- src/core/lib/surface/version.cc \ +- src/core/lib/transport/bdp_estimator.cc \ +- src/core/lib/transport/byte_stream.cc \ +- src/core/lib/transport/connectivity_state.cc \ +- src/core/lib/transport/error_utils.cc \ +- src/core/lib/transport/metadata.cc \ +- src/core/lib/transport/metadata_batch.cc \ +- src/core/lib/transport/pid_controller.cc \ +- src/core/lib/transport/static_metadata.cc \ +- src/core/lib/transport/status_conversion.cc \ +- src/core/lib/transport/status_metadata.cc \ +- src/core/lib/transport/timeout_encoding.cc \ +- src/core/lib/transport/transport.cc \ +- src/core/lib/transport/transport_op_string.cc \ +- src/core/lib/uri/uri_parser.cc \ +- src/core/lib/debug/trace.cc \ +- src/core/ext/filters/deadline/deadline_filter.cc \ + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \ +- src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c \ +- src/core/ext/upb-generated/gogoproto/gogo.upb.c \ +- src/core/ext/upb-generated/validate/validate.upb.c \ +- src/core/ext/upb-generated/google/api/annotations.upb.c \ +- src/core/ext/upb-generated/google/api/http.upb.c \ +- src/core/ext/upb-generated/google/protobuf/any.upb.c \ +- src/core/ext/upb-generated/google/protobuf/descriptor.upb.c \ +- src/core/ext/upb-generated/google/protobuf/duration.upb.c \ +- src/core/ext/upb-generated/google/protobuf/empty.upb.c \ +- src/core/ext/upb-generated/google/protobuf/struct.upb.c \ +- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \ +- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \ +- src/core/ext/upb-generated/google/rpc/status.upb.c \ + src/cpp/codegen/codegen_init.cc \ + + PUBLIC_HEADERS_CXX += \ +@@ -6926,205 +6728,7 @@ LIBGRPC++_UNSECURE_SRC = \ + src/cpp/util/status.cc \ + src/cpp/util/string_ref.cc \ + src/cpp/util/time_cc.cc \ +- src/core/ext/filters/client_channel/backend_metric.cc \ +- src/core/ext/filters/client_channel/backup_poller.cc \ +- src/core/ext/filters/client_channel/channel_connectivity.cc \ +- src/core/ext/filters/client_channel/client_channel.cc \ +- src/core/ext/filters/client_channel/client_channel_channelz.cc \ +- src/core/ext/filters/client_channel/client_channel_factory.cc \ +- src/core/ext/filters/client_channel/client_channel_plugin.cc \ +- src/core/ext/filters/client_channel/global_subchannel_pool.cc \ +- src/core/ext/filters/client_channel/health/health_check_client.cc \ +- src/core/ext/filters/client_channel/http_connect_handshaker.cc \ +- src/core/ext/filters/client_channel/http_proxy.cc \ +- src/core/ext/filters/client_channel/lb_policy.cc \ +- src/core/ext/filters/client_channel/lb_policy_registry.cc \ +- src/core/ext/filters/client_channel/local_subchannel_pool.cc \ +- src/core/ext/filters/client_channel/parse_address.cc \ +- src/core/ext/filters/client_channel/proxy_mapper_registry.cc \ +- src/core/ext/filters/client_channel/resolver.cc \ +- src/core/ext/filters/client_channel/resolver_registry.cc \ +- src/core/ext/filters/client_channel/resolver_result_parsing.cc \ +- src/core/ext/filters/client_channel/resolving_lb_policy.cc \ +- src/core/ext/filters/client_channel/retry_throttle.cc \ +- src/core/ext/filters/client_channel/server_address.cc \ +- src/core/ext/filters/client_channel/service_config.cc \ +- src/core/ext/filters/client_channel/subchannel.cc \ +- src/core/ext/filters/client_channel/subchannel_pool_interface.cc \ +- src/core/lib/avl/avl.cc \ +- src/core/lib/backoff/backoff.cc \ +- src/core/lib/channel/channel_args.cc \ +- src/core/lib/channel/channel_stack.cc \ +- src/core/lib/channel/channel_stack_builder.cc \ +- src/core/lib/channel/channel_trace.cc \ +- src/core/lib/channel/channelz.cc \ +- src/core/lib/channel/channelz_registry.cc \ +- src/core/lib/channel/connected_channel.cc \ +- src/core/lib/channel/handshaker.cc \ +- src/core/lib/channel/handshaker_registry.cc \ +- src/core/lib/channel/status_util.cc \ +- src/core/lib/compression/compression.cc \ +- src/core/lib/compression/compression_args.cc \ +- src/core/lib/compression/compression_internal.cc \ +- src/core/lib/compression/message_compress.cc \ +- src/core/lib/compression/stream_compression.cc \ +- src/core/lib/compression/stream_compression_gzip.cc \ +- src/core/lib/compression/stream_compression_identity.cc \ +- src/core/lib/debug/stats.cc \ +- src/core/lib/debug/stats_data.cc \ +- src/core/lib/http/format_request.cc \ +- src/core/lib/http/httpcli.cc \ +- src/core/lib/http/parser.cc \ +- src/core/lib/iomgr/buffer_list.cc \ +- src/core/lib/iomgr/call_combiner.cc \ +- src/core/lib/iomgr/cfstream_handle.cc \ +- src/core/lib/iomgr/combiner.cc \ +- src/core/lib/iomgr/endpoint.cc \ +- src/core/lib/iomgr/endpoint_cfstream.cc \ +- src/core/lib/iomgr/endpoint_pair_posix.cc \ +- src/core/lib/iomgr/endpoint_pair_uv.cc \ +- src/core/lib/iomgr/endpoint_pair_windows.cc \ +- src/core/lib/iomgr/error.cc \ +- src/core/lib/iomgr/error_cfstream.cc \ +- src/core/lib/iomgr/ev_epoll1_linux.cc \ +- src/core/lib/iomgr/ev_epollex_linux.cc \ +- src/core/lib/iomgr/ev_poll_posix.cc \ +- src/core/lib/iomgr/ev_posix.cc \ +- src/core/lib/iomgr/ev_windows.cc \ +- src/core/lib/iomgr/exec_ctx.cc \ +- src/core/lib/iomgr/executor.cc \ +- src/core/lib/iomgr/executor/mpmcqueue.cc \ +- src/core/lib/iomgr/executor/threadpool.cc \ +- src/core/lib/iomgr/fork_posix.cc \ +- src/core/lib/iomgr/fork_windows.cc \ +- src/core/lib/iomgr/gethostname_fallback.cc \ +- src/core/lib/iomgr/gethostname_host_name_max.cc \ +- src/core/lib/iomgr/gethostname_sysconf.cc \ +- src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \ +- src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \ +- src/core/lib/iomgr/internal_errqueue.cc \ +- src/core/lib/iomgr/iocp_windows.cc \ +- src/core/lib/iomgr/iomgr.cc \ +- src/core/lib/iomgr/iomgr_custom.cc \ +- src/core/lib/iomgr/iomgr_internal.cc \ +- src/core/lib/iomgr/iomgr_posix.cc \ +- src/core/lib/iomgr/iomgr_posix_cfstream.cc \ +- src/core/lib/iomgr/iomgr_uv.cc \ +- src/core/lib/iomgr/iomgr_windows.cc \ +- src/core/lib/iomgr/is_epollexclusive_available.cc \ +- src/core/lib/iomgr/load_file.cc \ +- src/core/lib/iomgr/lockfree_event.cc \ +- src/core/lib/iomgr/logical_thread.cc \ +- src/core/lib/iomgr/polling_entity.cc \ +- src/core/lib/iomgr/pollset.cc \ +- src/core/lib/iomgr/pollset_custom.cc \ +- src/core/lib/iomgr/pollset_set.cc \ +- src/core/lib/iomgr/pollset_set_custom.cc \ +- src/core/lib/iomgr/pollset_set_windows.cc \ +- src/core/lib/iomgr/pollset_uv.cc \ +- src/core/lib/iomgr/pollset_windows.cc \ +- src/core/lib/iomgr/resolve_address.cc \ +- src/core/lib/iomgr/resolve_address_custom.cc \ +- src/core/lib/iomgr/resolve_address_posix.cc \ +- src/core/lib/iomgr/resolve_address_windows.cc \ +- src/core/lib/iomgr/resource_quota.cc \ +- src/core/lib/iomgr/sockaddr_utils.cc \ +- src/core/lib/iomgr/socket_factory_posix.cc \ +- src/core/lib/iomgr/socket_mutator.cc \ +- src/core/lib/iomgr/socket_utils_common_posix.cc \ +- src/core/lib/iomgr/socket_utils_linux.cc \ +- src/core/lib/iomgr/socket_utils_posix.cc \ +- src/core/lib/iomgr/socket_utils_uv.cc \ +- src/core/lib/iomgr/socket_utils_windows.cc \ +- src/core/lib/iomgr/socket_windows.cc \ +- src/core/lib/iomgr/tcp_client.cc \ +- src/core/lib/iomgr/tcp_client_cfstream.cc \ +- src/core/lib/iomgr/tcp_client_custom.cc \ +- src/core/lib/iomgr/tcp_client_posix.cc \ +- src/core/lib/iomgr/tcp_client_windows.cc \ +- src/core/lib/iomgr/tcp_custom.cc \ +- src/core/lib/iomgr/tcp_posix.cc \ +- src/core/lib/iomgr/tcp_server.cc \ +- src/core/lib/iomgr/tcp_server_custom.cc \ +- src/core/lib/iomgr/tcp_server_posix.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_common.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \ +- src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc \ +- src/core/lib/iomgr/tcp_server_windows.cc \ +- src/core/lib/iomgr/tcp_uv.cc \ +- src/core/lib/iomgr/tcp_windows.cc \ +- src/core/lib/iomgr/time_averaged_stats.cc \ +- src/core/lib/iomgr/timer.cc \ +- src/core/lib/iomgr/timer_custom.cc \ +- src/core/lib/iomgr/timer_generic.cc \ +- src/core/lib/iomgr/timer_heap.cc \ +- src/core/lib/iomgr/timer_manager.cc \ +- src/core/lib/iomgr/timer_uv.cc \ +- src/core/lib/iomgr/udp_server.cc \ +- src/core/lib/iomgr/unix_sockets_posix.cc \ +- src/core/lib/iomgr/unix_sockets_posix_noop.cc \ +- src/core/lib/iomgr/wakeup_fd_eventfd.cc \ +- src/core/lib/iomgr/wakeup_fd_nospecial.cc \ +- src/core/lib/iomgr/wakeup_fd_pipe.cc \ +- src/core/lib/iomgr/wakeup_fd_posix.cc \ +- src/core/lib/json/json.cc \ +- src/core/lib/json/json_reader.cc \ +- src/core/lib/json/json_string.cc \ +- src/core/lib/json/json_writer.cc \ +- src/core/lib/slice/b64.cc \ +- src/core/lib/slice/percent_encoding.cc \ +- src/core/lib/slice/slice.cc \ +- src/core/lib/slice/slice_buffer.cc \ +- src/core/lib/slice/slice_intern.cc \ +- src/core/lib/slice/slice_string_helpers.cc \ +- src/core/lib/surface/api_trace.cc \ +- src/core/lib/surface/byte_buffer.cc \ +- src/core/lib/surface/byte_buffer_reader.cc \ +- src/core/lib/surface/call.cc \ +- src/core/lib/surface/call_details.cc \ +- src/core/lib/surface/call_log_batch.cc \ +- src/core/lib/surface/channel.cc \ +- src/core/lib/surface/channel_init.cc \ +- src/core/lib/surface/channel_ping.cc \ +- src/core/lib/surface/channel_stack_type.cc \ +- src/core/lib/surface/completion_queue.cc \ +- src/core/lib/surface/completion_queue_factory.cc \ +- src/core/lib/surface/event_string.cc \ +- src/core/lib/surface/lame_client.cc \ +- src/core/lib/surface/metadata_array.cc \ +- src/core/lib/surface/server.cc \ +- src/core/lib/surface/validate_metadata.cc \ +- src/core/lib/surface/version.cc \ +- src/core/lib/transport/bdp_estimator.cc \ +- src/core/lib/transport/byte_stream.cc \ +- src/core/lib/transport/connectivity_state.cc \ +- src/core/lib/transport/error_utils.cc \ +- src/core/lib/transport/metadata.cc \ +- src/core/lib/transport/metadata_batch.cc \ +- src/core/lib/transport/pid_controller.cc \ +- src/core/lib/transport/static_metadata.cc \ +- src/core/lib/transport/status_conversion.cc \ +- src/core/lib/transport/status_metadata.cc \ +- src/core/lib/transport/timeout_encoding.cc \ +- src/core/lib/transport/transport.cc \ +- src/core/lib/transport/transport_op_string.cc \ +- src/core/lib/uri/uri_parser.cc \ +- src/core/lib/debug/trace.cc \ +- src/core/ext/filters/deadline/deadline_filter.cc \ + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \ +- src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c \ +- src/core/ext/upb-generated/gogoproto/gogo.upb.c \ +- src/core/ext/upb-generated/validate/validate.upb.c \ +- src/core/ext/upb-generated/google/api/annotations.upb.c \ +- src/core/ext/upb-generated/google/api/http.upb.c \ +- src/core/ext/upb-generated/google/protobuf/any.upb.c \ +- src/core/ext/upb-generated/google/protobuf/descriptor.upb.c \ +- src/core/ext/upb-generated/google/protobuf/duration.upb.c \ +- src/core/ext/upb-generated/google/protobuf/empty.upb.c \ +- src/core/ext/upb-generated/google/protobuf/struct.upb.c \ +- src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \ +- src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \ +- src/core/ext/upb-generated/google/rpc/status.upb.c \ + src/cpp/codegen/codegen_init.cc \ + + PUBLIC_HEADERS_CXX += \ +diff --git a/build.yaml b/build.yaml +index 003ff5038de..214fbc619de 100644 +--- a/build.yaml ++++ b/build.yaml +@@ -601,7 +601,6 @@ filegroups: + uses: + - gpr_base_headers + - grpc_base_headers +- - grpc_client_channel + - grpc_health_upb + - grpc_transport_inproc_headers + - grpc++_codegen_base +diff --git a/grpc.gyp b/grpc.gyp +index 1dbb8e61295..7e2e0ead0a4 100644 +--- a/grpc.gyp ++++ b/grpc.gyp +@@ -1547,205 +1547,7 @@ + 'src/cpp/util/status.cc', + 'src/cpp/util/string_ref.cc', + 'src/cpp/util/time_cc.cc', +- 'src/core/ext/filters/client_channel/backend_metric.cc', +- 'src/core/ext/filters/client_channel/backup_poller.cc', +- 'src/core/ext/filters/client_channel/channel_connectivity.cc', +- 'src/core/ext/filters/client_channel/client_channel.cc', +- 'src/core/ext/filters/client_channel/client_channel_channelz.cc', +- 'src/core/ext/filters/client_channel/client_channel_factory.cc', +- 'src/core/ext/filters/client_channel/client_channel_plugin.cc', +- 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', +- 'src/core/ext/filters/client_channel/health/health_check_client.cc', +- 'src/core/ext/filters/client_channel/http_connect_handshaker.cc', +- 'src/core/ext/filters/client_channel/http_proxy.cc', +- 'src/core/ext/filters/client_channel/lb_policy.cc', +- 'src/core/ext/filters/client_channel/lb_policy_registry.cc', +- 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', +- 'src/core/ext/filters/client_channel/parse_address.cc', +- 'src/core/ext/filters/client_channel/proxy_mapper_registry.cc', +- 'src/core/ext/filters/client_channel/resolver.cc', +- 'src/core/ext/filters/client_channel/resolver_registry.cc', +- 'src/core/ext/filters/client_channel/resolver_result_parsing.cc', +- 'src/core/ext/filters/client_channel/resolving_lb_policy.cc', +- 'src/core/ext/filters/client_channel/retry_throttle.cc', +- 'src/core/ext/filters/client_channel/server_address.cc', +- 'src/core/ext/filters/client_channel/service_config.cc', +- 'src/core/ext/filters/client_channel/subchannel.cc', +- 'src/core/ext/filters/client_channel/subchannel_pool_interface.cc', +- 'src/core/lib/avl/avl.cc', +- 'src/core/lib/backoff/backoff.cc', +- 'src/core/lib/channel/channel_args.cc', +- 'src/core/lib/channel/channel_stack.cc', +- 'src/core/lib/channel/channel_stack_builder.cc', +- 'src/core/lib/channel/channel_trace.cc', +- 'src/core/lib/channel/channelz.cc', +- 'src/core/lib/channel/channelz_registry.cc', +- 'src/core/lib/channel/connected_channel.cc', +- 'src/core/lib/channel/handshaker.cc', +- 'src/core/lib/channel/handshaker_registry.cc', +- 'src/core/lib/channel/status_util.cc', +- 'src/core/lib/compression/compression.cc', +- 'src/core/lib/compression/compression_args.cc', +- 'src/core/lib/compression/compression_internal.cc', +- 'src/core/lib/compression/message_compress.cc', +- 'src/core/lib/compression/stream_compression.cc', +- 'src/core/lib/compression/stream_compression_gzip.cc', +- 'src/core/lib/compression/stream_compression_identity.cc', +- 'src/core/lib/debug/stats.cc', +- 'src/core/lib/debug/stats_data.cc', +- 'src/core/lib/http/format_request.cc', +- 'src/core/lib/http/httpcli.cc', +- 'src/core/lib/http/parser.cc', +- 'src/core/lib/iomgr/buffer_list.cc', +- 'src/core/lib/iomgr/call_combiner.cc', +- 'src/core/lib/iomgr/cfstream_handle.cc', +- 'src/core/lib/iomgr/combiner.cc', +- 'src/core/lib/iomgr/endpoint.cc', +- 'src/core/lib/iomgr/endpoint_cfstream.cc', +- 'src/core/lib/iomgr/endpoint_pair_posix.cc', +- 'src/core/lib/iomgr/endpoint_pair_uv.cc', +- 'src/core/lib/iomgr/endpoint_pair_windows.cc', +- 'src/core/lib/iomgr/error.cc', +- 'src/core/lib/iomgr/error_cfstream.cc', +- 'src/core/lib/iomgr/ev_epoll1_linux.cc', +- 'src/core/lib/iomgr/ev_epollex_linux.cc', +- 'src/core/lib/iomgr/ev_poll_posix.cc', +- 'src/core/lib/iomgr/ev_posix.cc', +- 'src/core/lib/iomgr/ev_windows.cc', +- 'src/core/lib/iomgr/exec_ctx.cc', +- 'src/core/lib/iomgr/executor.cc', +- 'src/core/lib/iomgr/executor/mpmcqueue.cc', +- 'src/core/lib/iomgr/executor/threadpool.cc', +- 'src/core/lib/iomgr/fork_posix.cc', +- 'src/core/lib/iomgr/fork_windows.cc', +- 'src/core/lib/iomgr/gethostname_fallback.cc', +- 'src/core/lib/iomgr/gethostname_host_name_max.cc', +- 'src/core/lib/iomgr/gethostname_sysconf.cc', +- 'src/core/lib/iomgr/grpc_if_nametoindex_posix.cc', +- 'src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc', +- 'src/core/lib/iomgr/internal_errqueue.cc', +- 'src/core/lib/iomgr/iocp_windows.cc', +- 'src/core/lib/iomgr/iomgr.cc', +- 'src/core/lib/iomgr/iomgr_custom.cc', +- 'src/core/lib/iomgr/iomgr_internal.cc', +- 'src/core/lib/iomgr/iomgr_posix.cc', +- 'src/core/lib/iomgr/iomgr_posix_cfstream.cc', +- 'src/core/lib/iomgr/iomgr_uv.cc', +- 'src/core/lib/iomgr/iomgr_windows.cc', +- 'src/core/lib/iomgr/is_epollexclusive_available.cc', +- 'src/core/lib/iomgr/load_file.cc', +- 'src/core/lib/iomgr/lockfree_event.cc', +- 'src/core/lib/iomgr/logical_thread.cc', +- 'src/core/lib/iomgr/polling_entity.cc', +- 'src/core/lib/iomgr/pollset.cc', +- 'src/core/lib/iomgr/pollset_custom.cc', +- 'src/core/lib/iomgr/pollset_set.cc', +- 'src/core/lib/iomgr/pollset_set_custom.cc', +- 'src/core/lib/iomgr/pollset_set_windows.cc', +- 'src/core/lib/iomgr/pollset_uv.cc', +- 'src/core/lib/iomgr/pollset_windows.cc', +- 'src/core/lib/iomgr/resolve_address.cc', +- 'src/core/lib/iomgr/resolve_address_custom.cc', +- 'src/core/lib/iomgr/resolve_address_posix.cc', +- 'src/core/lib/iomgr/resolve_address_windows.cc', +- 'src/core/lib/iomgr/resource_quota.cc', +- 'src/core/lib/iomgr/sockaddr_utils.cc', +- 'src/core/lib/iomgr/socket_factory_posix.cc', +- 'src/core/lib/iomgr/socket_mutator.cc', +- 'src/core/lib/iomgr/socket_utils_common_posix.cc', +- 'src/core/lib/iomgr/socket_utils_linux.cc', +- 'src/core/lib/iomgr/socket_utils_posix.cc', +- 'src/core/lib/iomgr/socket_utils_uv.cc', +- 'src/core/lib/iomgr/socket_utils_windows.cc', +- 'src/core/lib/iomgr/socket_windows.cc', +- 'src/core/lib/iomgr/tcp_client.cc', +- 'src/core/lib/iomgr/tcp_client_cfstream.cc', +- 'src/core/lib/iomgr/tcp_client_custom.cc', +- 'src/core/lib/iomgr/tcp_client_posix.cc', +- 'src/core/lib/iomgr/tcp_client_windows.cc', +- 'src/core/lib/iomgr/tcp_custom.cc', +- 'src/core/lib/iomgr/tcp_posix.cc', +- 'src/core/lib/iomgr/tcp_server.cc', +- 'src/core/lib/iomgr/tcp_server_custom.cc', +- 'src/core/lib/iomgr/tcp_server_posix.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_common.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc', +- 'src/core/lib/iomgr/tcp_server_windows.cc', +- 'src/core/lib/iomgr/tcp_uv.cc', +- 'src/core/lib/iomgr/tcp_windows.cc', +- 'src/core/lib/iomgr/time_averaged_stats.cc', +- 'src/core/lib/iomgr/timer.cc', +- 'src/core/lib/iomgr/timer_custom.cc', +- 'src/core/lib/iomgr/timer_generic.cc', +- 'src/core/lib/iomgr/timer_heap.cc', +- 'src/core/lib/iomgr/timer_manager.cc', +- 'src/core/lib/iomgr/timer_uv.cc', +- 'src/core/lib/iomgr/udp_server.cc', +- 'src/core/lib/iomgr/unix_sockets_posix.cc', +- 'src/core/lib/iomgr/unix_sockets_posix_noop.cc', +- 'src/core/lib/iomgr/wakeup_fd_eventfd.cc', +- 'src/core/lib/iomgr/wakeup_fd_nospecial.cc', +- 'src/core/lib/iomgr/wakeup_fd_pipe.cc', +- 'src/core/lib/iomgr/wakeup_fd_posix.cc', +- 'src/core/lib/json/json.cc', +- 'src/core/lib/json/json_reader.cc', +- 'src/core/lib/json/json_string.cc', +- 'src/core/lib/json/json_writer.cc', +- 'src/core/lib/slice/b64.cc', +- 'src/core/lib/slice/percent_encoding.cc', +- 'src/core/lib/slice/slice.cc', +- 'src/core/lib/slice/slice_buffer.cc', +- 'src/core/lib/slice/slice_intern.cc', +- 'src/core/lib/slice/slice_string_helpers.cc', +- 'src/core/lib/surface/api_trace.cc', +- 'src/core/lib/surface/byte_buffer.cc', +- 'src/core/lib/surface/byte_buffer_reader.cc', +- 'src/core/lib/surface/call.cc', +- 'src/core/lib/surface/call_details.cc', +- 'src/core/lib/surface/call_log_batch.cc', +- 'src/core/lib/surface/channel.cc', +- 'src/core/lib/surface/channel_init.cc', +- 'src/core/lib/surface/channel_ping.cc', +- 'src/core/lib/surface/channel_stack_type.cc', +- 'src/core/lib/surface/completion_queue.cc', +- 'src/core/lib/surface/completion_queue_factory.cc', +- 'src/core/lib/surface/event_string.cc', +- 'src/core/lib/surface/lame_client.cc', +- 'src/core/lib/surface/metadata_array.cc', +- 'src/core/lib/surface/server.cc', +- 'src/core/lib/surface/validate_metadata.cc', +- 'src/core/lib/surface/version.cc', +- 'src/core/lib/transport/bdp_estimator.cc', +- 'src/core/lib/transport/byte_stream.cc', +- 'src/core/lib/transport/connectivity_state.cc', +- 'src/core/lib/transport/error_utils.cc', +- 'src/core/lib/transport/metadata.cc', +- 'src/core/lib/transport/metadata_batch.cc', +- 'src/core/lib/transport/pid_controller.cc', +- 'src/core/lib/transport/static_metadata.cc', +- 'src/core/lib/transport/status_conversion.cc', +- 'src/core/lib/transport/status_metadata.cc', +- 'src/core/lib/transport/timeout_encoding.cc', +- 'src/core/lib/transport/transport.cc', +- 'src/core/lib/transport/transport_op_string.cc', +- 'src/core/lib/uri/uri_parser.cc', +- 'src/core/lib/debug/trace.cc', +- 'src/core/ext/filters/deadline/deadline_filter.cc', + 'src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c', +- 'src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c', +- 'src/core/ext/upb-generated/gogoproto/gogo.upb.c', +- 'src/core/ext/upb-generated/validate/validate.upb.c', +- 'src/core/ext/upb-generated/google/api/annotations.upb.c', +- 'src/core/ext/upb-generated/google/api/http.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/any.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/duration.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/empty.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/struct.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.c', +- 'src/core/ext/upb-generated/google/rpc/status.upb.c', + 'src/cpp/codegen/codegen_init.cc', + ], + }, +@@ -1901,205 +1703,7 @@ + 'src/cpp/util/status.cc', + 'src/cpp/util/string_ref.cc', + 'src/cpp/util/time_cc.cc', +- 'src/core/ext/filters/client_channel/backend_metric.cc', +- 'src/core/ext/filters/client_channel/backup_poller.cc', +- 'src/core/ext/filters/client_channel/channel_connectivity.cc', +- 'src/core/ext/filters/client_channel/client_channel.cc', +- 'src/core/ext/filters/client_channel/client_channel_channelz.cc', +- 'src/core/ext/filters/client_channel/client_channel_factory.cc', +- 'src/core/ext/filters/client_channel/client_channel_plugin.cc', +- 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', +- 'src/core/ext/filters/client_channel/health/health_check_client.cc', +- 'src/core/ext/filters/client_channel/http_connect_handshaker.cc', +- 'src/core/ext/filters/client_channel/http_proxy.cc', +- 'src/core/ext/filters/client_channel/lb_policy.cc', +- 'src/core/ext/filters/client_channel/lb_policy_registry.cc', +- 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', +- 'src/core/ext/filters/client_channel/parse_address.cc', +- 'src/core/ext/filters/client_channel/proxy_mapper_registry.cc', +- 'src/core/ext/filters/client_channel/resolver.cc', +- 'src/core/ext/filters/client_channel/resolver_registry.cc', +- 'src/core/ext/filters/client_channel/resolver_result_parsing.cc', +- 'src/core/ext/filters/client_channel/resolving_lb_policy.cc', +- 'src/core/ext/filters/client_channel/retry_throttle.cc', +- 'src/core/ext/filters/client_channel/server_address.cc', +- 'src/core/ext/filters/client_channel/service_config.cc', +- 'src/core/ext/filters/client_channel/subchannel.cc', +- 'src/core/ext/filters/client_channel/subchannel_pool_interface.cc', +- 'src/core/lib/avl/avl.cc', +- 'src/core/lib/backoff/backoff.cc', +- 'src/core/lib/channel/channel_args.cc', +- 'src/core/lib/channel/channel_stack.cc', +- 'src/core/lib/channel/channel_stack_builder.cc', +- 'src/core/lib/channel/channel_trace.cc', +- 'src/core/lib/channel/channelz.cc', +- 'src/core/lib/channel/channelz_registry.cc', +- 'src/core/lib/channel/connected_channel.cc', +- 'src/core/lib/channel/handshaker.cc', +- 'src/core/lib/channel/handshaker_registry.cc', +- 'src/core/lib/channel/status_util.cc', +- 'src/core/lib/compression/compression.cc', +- 'src/core/lib/compression/compression_args.cc', +- 'src/core/lib/compression/compression_internal.cc', +- 'src/core/lib/compression/message_compress.cc', +- 'src/core/lib/compression/stream_compression.cc', +- 'src/core/lib/compression/stream_compression_gzip.cc', +- 'src/core/lib/compression/stream_compression_identity.cc', +- 'src/core/lib/debug/stats.cc', +- 'src/core/lib/debug/stats_data.cc', +- 'src/core/lib/http/format_request.cc', +- 'src/core/lib/http/httpcli.cc', +- 'src/core/lib/http/parser.cc', +- 'src/core/lib/iomgr/buffer_list.cc', +- 'src/core/lib/iomgr/call_combiner.cc', +- 'src/core/lib/iomgr/cfstream_handle.cc', +- 'src/core/lib/iomgr/combiner.cc', +- 'src/core/lib/iomgr/endpoint.cc', +- 'src/core/lib/iomgr/endpoint_cfstream.cc', +- 'src/core/lib/iomgr/endpoint_pair_posix.cc', +- 'src/core/lib/iomgr/endpoint_pair_uv.cc', +- 'src/core/lib/iomgr/endpoint_pair_windows.cc', +- 'src/core/lib/iomgr/error.cc', +- 'src/core/lib/iomgr/error_cfstream.cc', +- 'src/core/lib/iomgr/ev_epoll1_linux.cc', +- 'src/core/lib/iomgr/ev_epollex_linux.cc', +- 'src/core/lib/iomgr/ev_poll_posix.cc', +- 'src/core/lib/iomgr/ev_posix.cc', +- 'src/core/lib/iomgr/ev_windows.cc', +- 'src/core/lib/iomgr/exec_ctx.cc', +- 'src/core/lib/iomgr/executor.cc', +- 'src/core/lib/iomgr/executor/mpmcqueue.cc', +- 'src/core/lib/iomgr/executor/threadpool.cc', +- 'src/core/lib/iomgr/fork_posix.cc', +- 'src/core/lib/iomgr/fork_windows.cc', +- 'src/core/lib/iomgr/gethostname_fallback.cc', +- 'src/core/lib/iomgr/gethostname_host_name_max.cc', +- 'src/core/lib/iomgr/gethostname_sysconf.cc', +- 'src/core/lib/iomgr/grpc_if_nametoindex_posix.cc', +- 'src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc', +- 'src/core/lib/iomgr/internal_errqueue.cc', +- 'src/core/lib/iomgr/iocp_windows.cc', +- 'src/core/lib/iomgr/iomgr.cc', +- 'src/core/lib/iomgr/iomgr_custom.cc', +- 'src/core/lib/iomgr/iomgr_internal.cc', +- 'src/core/lib/iomgr/iomgr_posix.cc', +- 'src/core/lib/iomgr/iomgr_posix_cfstream.cc', +- 'src/core/lib/iomgr/iomgr_uv.cc', +- 'src/core/lib/iomgr/iomgr_windows.cc', +- 'src/core/lib/iomgr/is_epollexclusive_available.cc', +- 'src/core/lib/iomgr/load_file.cc', +- 'src/core/lib/iomgr/lockfree_event.cc', +- 'src/core/lib/iomgr/logical_thread.cc', +- 'src/core/lib/iomgr/polling_entity.cc', +- 'src/core/lib/iomgr/pollset.cc', +- 'src/core/lib/iomgr/pollset_custom.cc', +- 'src/core/lib/iomgr/pollset_set.cc', +- 'src/core/lib/iomgr/pollset_set_custom.cc', +- 'src/core/lib/iomgr/pollset_set_windows.cc', +- 'src/core/lib/iomgr/pollset_uv.cc', +- 'src/core/lib/iomgr/pollset_windows.cc', +- 'src/core/lib/iomgr/resolve_address.cc', +- 'src/core/lib/iomgr/resolve_address_custom.cc', +- 'src/core/lib/iomgr/resolve_address_posix.cc', +- 'src/core/lib/iomgr/resolve_address_windows.cc', +- 'src/core/lib/iomgr/resource_quota.cc', +- 'src/core/lib/iomgr/sockaddr_utils.cc', +- 'src/core/lib/iomgr/socket_factory_posix.cc', +- 'src/core/lib/iomgr/socket_mutator.cc', +- 'src/core/lib/iomgr/socket_utils_common_posix.cc', +- 'src/core/lib/iomgr/socket_utils_linux.cc', +- 'src/core/lib/iomgr/socket_utils_posix.cc', +- 'src/core/lib/iomgr/socket_utils_uv.cc', +- 'src/core/lib/iomgr/socket_utils_windows.cc', +- 'src/core/lib/iomgr/socket_windows.cc', +- 'src/core/lib/iomgr/tcp_client.cc', +- 'src/core/lib/iomgr/tcp_client_cfstream.cc', +- 'src/core/lib/iomgr/tcp_client_custom.cc', +- 'src/core/lib/iomgr/tcp_client_posix.cc', +- 'src/core/lib/iomgr/tcp_client_windows.cc', +- 'src/core/lib/iomgr/tcp_custom.cc', +- 'src/core/lib/iomgr/tcp_posix.cc', +- 'src/core/lib/iomgr/tcp_server.cc', +- 'src/core/lib/iomgr/tcp_server_custom.cc', +- 'src/core/lib/iomgr/tcp_server_posix.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_common.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc', +- 'src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc', +- 'src/core/lib/iomgr/tcp_server_windows.cc', +- 'src/core/lib/iomgr/tcp_uv.cc', +- 'src/core/lib/iomgr/tcp_windows.cc', +- 'src/core/lib/iomgr/time_averaged_stats.cc', +- 'src/core/lib/iomgr/timer.cc', +- 'src/core/lib/iomgr/timer_custom.cc', +- 'src/core/lib/iomgr/timer_generic.cc', +- 'src/core/lib/iomgr/timer_heap.cc', +- 'src/core/lib/iomgr/timer_manager.cc', +- 'src/core/lib/iomgr/timer_uv.cc', +- 'src/core/lib/iomgr/udp_server.cc', +- 'src/core/lib/iomgr/unix_sockets_posix.cc', +- 'src/core/lib/iomgr/unix_sockets_posix_noop.cc', +- 'src/core/lib/iomgr/wakeup_fd_eventfd.cc', +- 'src/core/lib/iomgr/wakeup_fd_nospecial.cc', +- 'src/core/lib/iomgr/wakeup_fd_pipe.cc', +- 'src/core/lib/iomgr/wakeup_fd_posix.cc', +- 'src/core/lib/json/json.cc', +- 'src/core/lib/json/json_reader.cc', +- 'src/core/lib/json/json_string.cc', +- 'src/core/lib/json/json_writer.cc', +- 'src/core/lib/slice/b64.cc', +- 'src/core/lib/slice/percent_encoding.cc', +- 'src/core/lib/slice/slice.cc', +- 'src/core/lib/slice/slice_buffer.cc', +- 'src/core/lib/slice/slice_intern.cc', +- 'src/core/lib/slice/slice_string_helpers.cc', +- 'src/core/lib/surface/api_trace.cc', +- 'src/core/lib/surface/byte_buffer.cc', +- 'src/core/lib/surface/byte_buffer_reader.cc', +- 'src/core/lib/surface/call.cc', +- 'src/core/lib/surface/call_details.cc', +- 'src/core/lib/surface/call_log_batch.cc', +- 'src/core/lib/surface/channel.cc', +- 'src/core/lib/surface/channel_init.cc', +- 'src/core/lib/surface/channel_ping.cc', +- 'src/core/lib/surface/channel_stack_type.cc', +- 'src/core/lib/surface/completion_queue.cc', +- 'src/core/lib/surface/completion_queue_factory.cc', +- 'src/core/lib/surface/event_string.cc', +- 'src/core/lib/surface/lame_client.cc', +- 'src/core/lib/surface/metadata_array.cc', +- 'src/core/lib/surface/server.cc', +- 'src/core/lib/surface/validate_metadata.cc', +- 'src/core/lib/surface/version.cc', +- 'src/core/lib/transport/bdp_estimator.cc', +- 'src/core/lib/transport/byte_stream.cc', +- 'src/core/lib/transport/connectivity_state.cc', +- 'src/core/lib/transport/error_utils.cc', +- 'src/core/lib/transport/metadata.cc', +- 'src/core/lib/transport/metadata_batch.cc', +- 'src/core/lib/transport/pid_controller.cc', +- 'src/core/lib/transport/static_metadata.cc', +- 'src/core/lib/transport/status_conversion.cc', +- 'src/core/lib/transport/status_metadata.cc', +- 'src/core/lib/transport/timeout_encoding.cc', +- 'src/core/lib/transport/transport.cc', +- 'src/core/lib/transport/transport_op_string.cc', +- 'src/core/lib/uri/uri_parser.cc', +- 'src/core/lib/debug/trace.cc', +- 'src/core/ext/filters/deadline/deadline_filter.cc', + 'src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c', +- 'src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c', +- 'src/core/ext/upb-generated/gogoproto/gogo.upb.c', +- 'src/core/ext/upb-generated/validate/validate.upb.c', +- 'src/core/ext/upb-generated/google/api/annotations.upb.c', +- 'src/core/ext/upb-generated/google/api/http.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/any.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/duration.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/empty.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/struct.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.c', +- 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.c', +- 'src/core/ext/upb-generated/google/rpc/status.upb.c', + 'src/cpp/codegen/codegen_init.cc', + ], + }, +diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal +index dc84a6f3fd7..f3c1bad6b7a 100644 +--- a/tools/doxygen/Doxyfile.c++.internal ++++ b/tools/doxygen/Doxyfile.c++.internal +@@ -1063,135 +1063,32 @@ include/grpcpp/support/sync_stream.h \ + include/grpcpp/support/sync_stream_impl.h \ + include/grpcpp/support/time.h \ + include/grpcpp/support/validate_service_config.h \ +-src/core/ext/filters/client_channel/backend_metric.cc \ +-src/core/ext/filters/client_channel/backend_metric.h \ +-src/core/ext/filters/client_channel/backup_poller.cc \ +-src/core/ext/filters/client_channel/backup_poller.h \ +-src/core/ext/filters/client_channel/channel_connectivity.cc \ +-src/core/ext/filters/client_channel/client_channel.cc \ +-src/core/ext/filters/client_channel/client_channel.h \ +-src/core/ext/filters/client_channel/client_channel_channelz.cc \ +-src/core/ext/filters/client_channel/client_channel_channelz.h \ +-src/core/ext/filters/client_channel/client_channel_factory.cc \ +-src/core/ext/filters/client_channel/client_channel_factory.h \ +-src/core/ext/filters/client_channel/client_channel_plugin.cc \ +-src/core/ext/filters/client_channel/connector.h \ +-src/core/ext/filters/client_channel/global_subchannel_pool.cc \ +-src/core/ext/filters/client_channel/global_subchannel_pool.h \ +-src/core/ext/filters/client_channel/health/health_check_client.cc \ +-src/core/ext/filters/client_channel/health/health_check_client.h \ +-src/core/ext/filters/client_channel/http_connect_handshaker.cc \ +-src/core/ext/filters/client_channel/http_connect_handshaker.h \ +-src/core/ext/filters/client_channel/http_proxy.cc \ +-src/core/ext/filters/client_channel/http_proxy.h \ +-src/core/ext/filters/client_channel/lb_policy.cc \ +-src/core/ext/filters/client_channel/lb_policy.h \ +-src/core/ext/filters/client_channel/lb_policy_factory.h \ +-src/core/ext/filters/client_channel/lb_policy_registry.cc \ +-src/core/ext/filters/client_channel/lb_policy_registry.h \ +-src/core/ext/filters/client_channel/local_subchannel_pool.cc \ +-src/core/ext/filters/client_channel/local_subchannel_pool.h \ +-src/core/ext/filters/client_channel/parse_address.cc \ +-src/core/ext/filters/client_channel/parse_address.h \ +-src/core/ext/filters/client_channel/proxy_mapper.h \ +-src/core/ext/filters/client_channel/proxy_mapper_registry.cc \ +-src/core/ext/filters/client_channel/proxy_mapper_registry.h \ +-src/core/ext/filters/client_channel/resolver.cc \ +-src/core/ext/filters/client_channel/resolver.h \ +-src/core/ext/filters/client_channel/resolver_factory.h \ +-src/core/ext/filters/client_channel/resolver_registry.cc \ +-src/core/ext/filters/client_channel/resolver_registry.h \ +-src/core/ext/filters/client_channel/resolver_result_parsing.cc \ +-src/core/ext/filters/client_channel/resolver_result_parsing.h \ +-src/core/ext/filters/client_channel/resolving_lb_policy.cc \ +-src/core/ext/filters/client_channel/resolving_lb_policy.h \ +-src/core/ext/filters/client_channel/retry_throttle.cc \ +-src/core/ext/filters/client_channel/retry_throttle.h \ +-src/core/ext/filters/client_channel/server_address.cc \ +-src/core/ext/filters/client_channel/server_address.h \ +-src/core/ext/filters/client_channel/service_config.cc \ +-src/core/ext/filters/client_channel/service_config.h \ +-src/core/ext/filters/client_channel/subchannel.cc \ +-src/core/ext/filters/client_channel/subchannel.h \ +-src/core/ext/filters/client_channel/subchannel_interface.h \ +-src/core/ext/filters/client_channel/subchannel_pool_interface.cc \ +-src/core/ext/filters/client_channel/subchannel_pool_interface.h \ +-src/core/ext/filters/deadline/deadline_filter.cc \ +-src/core/ext/filters/deadline/deadline_filter.h \ + src/core/ext/transport/inproc/inproc_transport.h \ +-src/core/ext/upb-generated/gogoproto/gogo.upb.c \ +-src/core/ext/upb-generated/gogoproto/gogo.upb.h \ +-src/core/ext/upb-generated/google/api/annotations.upb.c \ +-src/core/ext/upb-generated/google/api/annotations.upb.h \ +-src/core/ext/upb-generated/google/api/http.upb.c \ +-src/core/ext/upb-generated/google/api/http.upb.h \ +-src/core/ext/upb-generated/google/protobuf/any.upb.c \ +-src/core/ext/upb-generated/google/protobuf/any.upb.h \ +-src/core/ext/upb-generated/google/protobuf/descriptor.upb.c \ +-src/core/ext/upb-generated/google/protobuf/descriptor.upb.h \ +-src/core/ext/upb-generated/google/protobuf/duration.upb.c \ +-src/core/ext/upb-generated/google/protobuf/duration.upb.h \ +-src/core/ext/upb-generated/google/protobuf/empty.upb.c \ +-src/core/ext/upb-generated/google/protobuf/empty.upb.h \ +-src/core/ext/upb-generated/google/protobuf/struct.upb.c \ +-src/core/ext/upb-generated/google/protobuf/struct.upb.h \ +-src/core/ext/upb-generated/google/protobuf/timestamp.upb.c \ +-src/core/ext/upb-generated/google/protobuf/timestamp.upb.h \ +-src/core/ext/upb-generated/google/protobuf/wrappers.upb.c \ +-src/core/ext/upb-generated/google/protobuf/wrappers.upb.h \ +-src/core/ext/upb-generated/google/rpc/status.upb.c \ +-src/core/ext/upb-generated/google/rpc/status.upb.h \ + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c \ + src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h \ +-src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c \ +-src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h \ +-src/core/ext/upb-generated/validate/validate.upb.c \ +-src/core/ext/upb-generated/validate/validate.upb.h \ +-src/core/lib/avl/avl.cc \ + src/core/lib/avl/avl.h \ +-src/core/lib/backoff/backoff.cc \ + src/core/lib/backoff/backoff.h \ +-src/core/lib/channel/channel_args.cc \ + src/core/lib/channel/channel_args.h \ +-src/core/lib/channel/channel_stack.cc \ + src/core/lib/channel/channel_stack.h \ +-src/core/lib/channel/channel_stack_builder.cc \ + src/core/lib/channel/channel_stack_builder.h \ +-src/core/lib/channel/channel_trace.cc \ + src/core/lib/channel/channel_trace.h \ +-src/core/lib/channel/channelz.cc \ + src/core/lib/channel/channelz.h \ +-src/core/lib/channel/channelz_registry.cc \ + src/core/lib/channel/channelz_registry.h \ +-src/core/lib/channel/connected_channel.cc \ + src/core/lib/channel/connected_channel.h \ + src/core/lib/channel/context.h \ +-src/core/lib/channel/handshaker.cc \ + src/core/lib/channel/handshaker.h \ + src/core/lib/channel/handshaker_factory.h \ +-src/core/lib/channel/handshaker_registry.cc \ + src/core/lib/channel/handshaker_registry.h \ +-src/core/lib/channel/status_util.cc \ + src/core/lib/channel/status_util.h \ + src/core/lib/compression/algorithm_metadata.h \ +-src/core/lib/compression/compression.cc \ +-src/core/lib/compression/compression_args.cc \ + src/core/lib/compression/compression_args.h \ +-src/core/lib/compression/compression_internal.cc \ + src/core/lib/compression/compression_internal.h \ +-src/core/lib/compression/message_compress.cc \ + src/core/lib/compression/message_compress.h \ +-src/core/lib/compression/stream_compression.cc \ + src/core/lib/compression/stream_compression.h \ +-src/core/lib/compression/stream_compression_gzip.cc \ + src/core/lib/compression/stream_compression_gzip.h \ +-src/core/lib/compression/stream_compression_identity.cc \ + src/core/lib/compression/stream_compression_identity.h \ +-src/core/lib/debug/stats.cc \ + src/core/lib/debug/stats.h \ +-src/core/lib/debug/stats_data.cc \ + src/core/lib/debug/stats_data.h \ +-src/core/lib/debug/trace.cc \ + src/core/lib/debug/trace.h \ + src/core/lib/gpr/alloc.h \ + src/core/lib/gpr/arena.h \ +@@ -1228,257 +1125,120 @@ src/core/lib/gprpp/ref_counted_ptr.h \ + src/core/lib/gprpp/string_view.h \ + src/core/lib/gprpp/sync.h \ + src/core/lib/gprpp/thd.h \ +-src/core/lib/http/format_request.cc \ + src/core/lib/http/format_request.h \ +-src/core/lib/http/httpcli.cc \ + src/core/lib/http/httpcli.h \ +-src/core/lib/http/parser.cc \ + src/core/lib/http/parser.h \ + src/core/lib/iomgr/block_annotate.h \ +-src/core/lib/iomgr/buffer_list.cc \ + src/core/lib/iomgr/buffer_list.h \ +-src/core/lib/iomgr/call_combiner.cc \ + src/core/lib/iomgr/call_combiner.h \ +-src/core/lib/iomgr/cfstream_handle.cc \ + src/core/lib/iomgr/cfstream_handle.h \ + src/core/lib/iomgr/closure.h \ +-src/core/lib/iomgr/combiner.cc \ + src/core/lib/iomgr/combiner.h \ + src/core/lib/iomgr/dynamic_annotations.h \ +-src/core/lib/iomgr/endpoint.cc \ + src/core/lib/iomgr/endpoint.h \ +-src/core/lib/iomgr/endpoint_cfstream.cc \ + src/core/lib/iomgr/endpoint_cfstream.h \ + src/core/lib/iomgr/endpoint_pair.h \ +-src/core/lib/iomgr/endpoint_pair_posix.cc \ +-src/core/lib/iomgr/endpoint_pair_uv.cc \ +-src/core/lib/iomgr/endpoint_pair_windows.cc \ +-src/core/lib/iomgr/error.cc \ + src/core/lib/iomgr/error.h \ +-src/core/lib/iomgr/error_cfstream.cc \ + src/core/lib/iomgr/error_cfstream.h \ + src/core/lib/iomgr/error_internal.h \ +-src/core/lib/iomgr/ev_epoll1_linux.cc \ + src/core/lib/iomgr/ev_epoll1_linux.h \ +-src/core/lib/iomgr/ev_epollex_linux.cc \ + src/core/lib/iomgr/ev_epollex_linux.h \ +-src/core/lib/iomgr/ev_poll_posix.cc \ + src/core/lib/iomgr/ev_poll_posix.h \ +-src/core/lib/iomgr/ev_posix.cc \ + src/core/lib/iomgr/ev_posix.h \ +-src/core/lib/iomgr/ev_windows.cc \ +-src/core/lib/iomgr/exec_ctx.cc \ + src/core/lib/iomgr/exec_ctx.h \ +-src/core/lib/iomgr/executor.cc \ + src/core/lib/iomgr/executor.h \ +-src/core/lib/iomgr/executor/mpmcqueue.cc \ + src/core/lib/iomgr/executor/mpmcqueue.h \ +-src/core/lib/iomgr/executor/threadpool.cc \ + src/core/lib/iomgr/executor/threadpool.h \ +-src/core/lib/iomgr/fork_posix.cc \ +-src/core/lib/iomgr/fork_windows.cc \ + src/core/lib/iomgr/gethostname.h \ +-src/core/lib/iomgr/gethostname_fallback.cc \ +-src/core/lib/iomgr/gethostname_host_name_max.cc \ +-src/core/lib/iomgr/gethostname_sysconf.cc \ + src/core/lib/iomgr/grpc_if_nametoindex.h \ +-src/core/lib/iomgr/grpc_if_nametoindex_posix.cc \ +-src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc \ +-src/core/lib/iomgr/internal_errqueue.cc \ + src/core/lib/iomgr/internal_errqueue.h \ +-src/core/lib/iomgr/iocp_windows.cc \ + src/core/lib/iomgr/iocp_windows.h \ +-src/core/lib/iomgr/iomgr.cc \ + src/core/lib/iomgr/iomgr.h \ +-src/core/lib/iomgr/iomgr_custom.cc \ + src/core/lib/iomgr/iomgr_custom.h \ +-src/core/lib/iomgr/iomgr_internal.cc \ + src/core/lib/iomgr/iomgr_internal.h \ +-src/core/lib/iomgr/iomgr_posix.cc \ + src/core/lib/iomgr/iomgr_posix.h \ +-src/core/lib/iomgr/iomgr_posix_cfstream.cc \ +-src/core/lib/iomgr/iomgr_uv.cc \ +-src/core/lib/iomgr/iomgr_windows.cc \ +-src/core/lib/iomgr/is_epollexclusive_available.cc \ + src/core/lib/iomgr/is_epollexclusive_available.h \ +-src/core/lib/iomgr/load_file.cc \ + src/core/lib/iomgr/load_file.h \ +-src/core/lib/iomgr/lockfree_event.cc \ + src/core/lib/iomgr/lockfree_event.h \ +-src/core/lib/iomgr/logical_thread.cc \ + src/core/lib/iomgr/logical_thread.h \ + src/core/lib/iomgr/nameser.h \ +-src/core/lib/iomgr/polling_entity.cc \ + src/core/lib/iomgr/polling_entity.h \ +-src/core/lib/iomgr/pollset.cc \ + src/core/lib/iomgr/pollset.h \ +-src/core/lib/iomgr/pollset_custom.cc \ + src/core/lib/iomgr/pollset_custom.h \ +-src/core/lib/iomgr/pollset_set.cc \ + src/core/lib/iomgr/pollset_set.h \ +-src/core/lib/iomgr/pollset_set_custom.cc \ + src/core/lib/iomgr/pollset_set_custom.h \ +-src/core/lib/iomgr/pollset_set_windows.cc \ + src/core/lib/iomgr/pollset_set_windows.h \ +-src/core/lib/iomgr/pollset_uv.cc \ +-src/core/lib/iomgr/pollset_windows.cc \ + src/core/lib/iomgr/pollset_windows.h \ + src/core/lib/iomgr/port.h \ +-src/core/lib/iomgr/resolve_address.cc \ + src/core/lib/iomgr/resolve_address.h \ +-src/core/lib/iomgr/resolve_address_custom.cc \ + src/core/lib/iomgr/resolve_address_custom.h \ +-src/core/lib/iomgr/resolve_address_posix.cc \ +-src/core/lib/iomgr/resolve_address_windows.cc \ +-src/core/lib/iomgr/resource_quota.cc \ + src/core/lib/iomgr/resource_quota.h \ + src/core/lib/iomgr/sockaddr.h \ + src/core/lib/iomgr/sockaddr_custom.h \ + src/core/lib/iomgr/sockaddr_posix.h \ +-src/core/lib/iomgr/sockaddr_utils.cc \ + src/core/lib/iomgr/sockaddr_utils.h \ + src/core/lib/iomgr/sockaddr_windows.h \ +-src/core/lib/iomgr/socket_factory_posix.cc \ + src/core/lib/iomgr/socket_factory_posix.h \ +-src/core/lib/iomgr/socket_mutator.cc \ + src/core/lib/iomgr/socket_mutator.h \ + src/core/lib/iomgr/socket_utils.h \ +-src/core/lib/iomgr/socket_utils_common_posix.cc \ +-src/core/lib/iomgr/socket_utils_linux.cc \ +-src/core/lib/iomgr/socket_utils_posix.cc \ + src/core/lib/iomgr/socket_utils_posix.h \ +-src/core/lib/iomgr/socket_utils_uv.cc \ +-src/core/lib/iomgr/socket_utils_windows.cc \ +-src/core/lib/iomgr/socket_windows.cc \ + src/core/lib/iomgr/socket_windows.h \ + src/core/lib/iomgr/sys_epoll_wrapper.h \ +-src/core/lib/iomgr/tcp_client.cc \ + src/core/lib/iomgr/tcp_client.h \ +-src/core/lib/iomgr/tcp_client_cfstream.cc \ +-src/core/lib/iomgr/tcp_client_custom.cc \ +-src/core/lib/iomgr/tcp_client_posix.cc \ + src/core/lib/iomgr/tcp_client_posix.h \ +-src/core/lib/iomgr/tcp_client_windows.cc \ +-src/core/lib/iomgr/tcp_custom.cc \ + src/core/lib/iomgr/tcp_custom.h \ +-src/core/lib/iomgr/tcp_posix.cc \ + src/core/lib/iomgr/tcp_posix.h \ +-src/core/lib/iomgr/tcp_server.cc \ + src/core/lib/iomgr/tcp_server.h \ +-src/core/lib/iomgr/tcp_server_custom.cc \ +-src/core/lib/iomgr/tcp_server_posix.cc \ + src/core/lib/iomgr/tcp_server_utils_posix.h \ +-src/core/lib/iomgr/tcp_server_utils_posix_common.cc \ +-src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc \ +-src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc \ +-src/core/lib/iomgr/tcp_server_windows.cc \ +-src/core/lib/iomgr/tcp_uv.cc \ +-src/core/lib/iomgr/tcp_windows.cc \ + src/core/lib/iomgr/tcp_windows.h \ +-src/core/lib/iomgr/time_averaged_stats.cc \ + src/core/lib/iomgr/time_averaged_stats.h \ +-src/core/lib/iomgr/timer.cc \ + src/core/lib/iomgr/timer.h \ +-src/core/lib/iomgr/timer_custom.cc \ + src/core/lib/iomgr/timer_custom.h \ +-src/core/lib/iomgr/timer_generic.cc \ +-src/core/lib/iomgr/timer_heap.cc \ + src/core/lib/iomgr/timer_heap.h \ +-src/core/lib/iomgr/timer_manager.cc \ + src/core/lib/iomgr/timer_manager.h \ +-src/core/lib/iomgr/timer_uv.cc \ +-src/core/lib/iomgr/udp_server.cc \ + src/core/lib/iomgr/udp_server.h \ +-src/core/lib/iomgr/unix_sockets_posix.cc \ + src/core/lib/iomgr/unix_sockets_posix.h \ +-src/core/lib/iomgr/unix_sockets_posix_noop.cc \ +-src/core/lib/iomgr/wakeup_fd_eventfd.cc \ +-src/core/lib/iomgr/wakeup_fd_nospecial.cc \ +-src/core/lib/iomgr/wakeup_fd_pipe.cc \ + src/core/lib/iomgr/wakeup_fd_pipe.h \ +-src/core/lib/iomgr/wakeup_fd_posix.cc \ + src/core/lib/iomgr/wakeup_fd_posix.h \ +-src/core/lib/json/json.cc \ + src/core/lib/json/json.h \ + src/core/lib/json/json_common.h \ +-src/core/lib/json/json_reader.cc \ + src/core/lib/json/json_reader.h \ +-src/core/lib/json/json_string.cc \ +-src/core/lib/json/json_writer.cc \ + src/core/lib/json/json_writer.h \ + src/core/lib/profiling/timers.h \ +-src/core/lib/slice/b64.cc \ + src/core/lib/slice/b64.h \ +-src/core/lib/slice/percent_encoding.cc \ + src/core/lib/slice/percent_encoding.h \ +-src/core/lib/slice/slice.cc \ +-src/core/lib/slice/slice_buffer.cc \ + src/core/lib/slice/slice_hash_table.h \ +-src/core/lib/slice/slice_intern.cc \ + src/core/lib/slice/slice_internal.h \ +-src/core/lib/slice/slice_string_helpers.cc \ + src/core/lib/slice/slice_string_helpers.h \ + src/core/lib/slice/slice_utils.h \ + src/core/lib/slice/slice_weak_hash_table.h \ +-src/core/lib/surface/api_trace.cc \ + src/core/lib/surface/api_trace.h \ +-src/core/lib/surface/byte_buffer.cc \ +-src/core/lib/surface/byte_buffer_reader.cc \ +-src/core/lib/surface/call.cc \ + src/core/lib/surface/call.h \ +-src/core/lib/surface/call_details.cc \ +-src/core/lib/surface/call_log_batch.cc \ + src/core/lib/surface/call_test_only.h \ +-src/core/lib/surface/channel.cc \ + src/core/lib/surface/channel.h \ +-src/core/lib/surface/channel_init.cc \ + src/core/lib/surface/channel_init.h \ +-src/core/lib/surface/channel_ping.cc \ +-src/core/lib/surface/channel_stack_type.cc \ + src/core/lib/surface/channel_stack_type.h \ +-src/core/lib/surface/completion_queue.cc \ + src/core/lib/surface/completion_queue.h \ +-src/core/lib/surface/completion_queue_factory.cc \ + src/core/lib/surface/completion_queue_factory.h \ +-src/core/lib/surface/event_string.cc \ + src/core/lib/surface/event_string.h \ + src/core/lib/surface/init.h \ +-src/core/lib/surface/lame_client.cc \ + src/core/lib/surface/lame_client.h \ +-src/core/lib/surface/metadata_array.cc \ +-src/core/lib/surface/server.cc \ + src/core/lib/surface/server.h \ +-src/core/lib/surface/validate_metadata.cc \ + src/core/lib/surface/validate_metadata.h \ +-src/core/lib/surface/version.cc \ +-src/core/lib/transport/bdp_estimator.cc \ + src/core/lib/transport/bdp_estimator.h \ +-src/core/lib/transport/byte_stream.cc \ + src/core/lib/transport/byte_stream.h \ +-src/core/lib/transport/connectivity_state.cc \ + src/core/lib/transport/connectivity_state.h \ +-src/core/lib/transport/error_utils.cc \ + src/core/lib/transport/error_utils.h \ + src/core/lib/transport/http2_errors.h \ +-src/core/lib/transport/metadata.cc \ + src/core/lib/transport/metadata.h \ +-src/core/lib/transport/metadata_batch.cc \ + src/core/lib/transport/metadata_batch.h \ +-src/core/lib/transport/pid_controller.cc \ + src/core/lib/transport/pid_controller.h \ +-src/core/lib/transport/static_metadata.cc \ + src/core/lib/transport/static_metadata.h \ +-src/core/lib/transport/status_conversion.cc \ + src/core/lib/transport/status_conversion.h \ +-src/core/lib/transport/status_metadata.cc \ + src/core/lib/transport/status_metadata.h \ +-src/core/lib/transport/timeout_encoding.cc \ + src/core/lib/transport/timeout_encoding.h \ +-src/core/lib/transport/transport.cc \ + src/core/lib/transport/transport.h \ + src/core/lib/transport/transport_impl.h \ +-src/core/lib/transport/transport_op_string.cc \ +-src/core/lib/uri/uri_parser.cc \ + src/core/lib/uri/uri_parser.h \ + src/cpp/README.md \ + src/cpp/client/channel_cc.cc \ diff --git a/SOURCES/99f8a10aec994a8957fbb6787768b444ef34d6a2.patch b/SOURCES/99f8a10aec994a8957fbb6787768b444ef34d6a2.patch new file mode 100644 index 0000000..cb3c9f6 --- /dev/null +++ b/SOURCES/99f8a10aec994a8957fbb6787768b444ef34d6a2.patch @@ -0,0 +1,1025 @@ +From 99f8a10aec994a8957fbb6787768b444ef34d6a2 Mon Sep 17 00:00:00 2001 +From: Esun Kim +Date: Tue, 10 Dec 2019 22:48:33 -0800 +Subject: [PATCH] Make gRPC podspec template more robust + +--- + gRPC-C++.podspec | 360 ++++++--------------------- + gRPC-Core.podspec | 105 ++++---- + templates/gRPC-C++.podspec.template | 179 ++++++------- + templates/gRPC-Core.podspec.template | 132 +++++----- + 4 files changed, 268 insertions(+), 508 deletions(-) + +diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec +index 5a9a2c0add2..3eafd3550d6 100644 +--- a/gRPC-C++.podspec ++++ b/gRPC-C++.podspec +@@ -19,7 +19,6 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + +- + Pod::Spec.new do |s| + s.name = 'gRPC-C++' + # TODO (mxyan): use version that match gRPC version when pod is stabilized +@@ -65,6 +64,7 @@ Pod::Spec.new do |s| + } + + s.libraries = 'c++' ++ s.compiler_flags = '-Wno-comma' + + s.default_subspecs = 'Interface', 'Implementation' + +@@ -213,66 +213,9 @@ Pod::Spec.new do |s| + ss.header_mappings_dir = '.' + ss.dependency "#{s.name}/Interface", version + ss.dependency 'gRPC-Core', version ++ abseil_version = '0.20190808.1' + + ss.source_files = 'include/grpcpp/impl/codegen/core_codegen.h', +- 'src/cpp/client/channel_cc.cc', +- 'src/cpp/client/client_context.cc', +- 'src/cpp/client/client_interceptor.cc', +- 'src/cpp/client/create_channel.cc', +- 'src/cpp/client/create_channel_internal.cc', +- 'src/cpp/client/create_channel_internal.h', +- 'src/cpp/client/create_channel_posix.cc', +- 'src/cpp/client/credentials_cc.cc', +- 'src/cpp/client/generic_stub.cc', +- 'src/cpp/client/insecure_credentials.cc', +- 'src/cpp/client/secure_credentials.cc', +- 'src/cpp/client/secure_credentials.h', +- 'src/cpp/codegen/codegen_init.cc', +- 'src/cpp/common/alarm.cc', +- 'src/cpp/common/auth_property_iterator.cc', +- 'src/cpp/common/channel_arguments.cc', +- 'src/cpp/common/channel_filter.cc', +- 'src/cpp/common/channel_filter.h', +- 'src/cpp/common/completion_queue_cc.cc', +- 'src/cpp/common/core_codegen.cc', +- 'src/cpp/common/resource_quota_cc.cc', +- 'src/cpp/common/rpc_method.cc', +- 'src/cpp/common/secure_auth_context.cc', +- 'src/cpp/common/secure_auth_context.h', +- 'src/cpp/common/secure_channel_arguments.cc', +- 'src/cpp/common/secure_create_auth_context.cc', +- 'src/cpp/common/tls_credentials_options.cc', +- 'src/cpp/common/tls_credentials_options_util.cc', +- 'src/cpp/common/tls_credentials_options_util.h', +- 'src/cpp/common/validate_service_config.cc', +- 'src/cpp/common/version_cc.cc', +- 'src/cpp/server/async_generic_service.cc', +- 'src/cpp/server/channel_argument_option.cc', +- 'src/cpp/server/create_default_thread_pool.cc', +- 'src/cpp/server/dynamic_thread_pool.cc', +- 'src/cpp/server/dynamic_thread_pool.h', +- 'src/cpp/server/external_connection_acceptor_impl.cc', +- 'src/cpp/server/external_connection_acceptor_impl.h', +- 'src/cpp/server/health/default_health_check_service.cc', +- 'src/cpp/server/health/default_health_check_service.h', +- 'src/cpp/server/health/health_check_service.cc', +- 'src/cpp/server/health/health_check_service_server_builder_option.cc', +- 'src/cpp/server/insecure_server_credentials.cc', +- 'src/cpp/server/secure_server_credentials.cc', +- 'src/cpp/server/secure_server_credentials.h', +- 'src/cpp/server/server_builder.cc', +- 'src/cpp/server/server_callback.cc', +- 'src/cpp/server/server_cc.cc', +- 'src/cpp/server/server_context.cc', +- 'src/cpp/server/server_credentials.cc', +- 'src/cpp/server/server_posix.cc', +- 'src/cpp/server/thread_pool_interface.h', +- 'src/cpp/thread_manager/thread_manager.cc', +- 'src/cpp/thread_manager/thread_manager.h', +- 'src/cpp/util/byte_buffer_cc.cc', +- 'src/cpp/util/status.cc', +- 'src/cpp/util/string_ref.cc', +- 'src/cpp/util/time_cc.cc', + 'src/core/ext/filters/client_channel/backend_metric.h', + 'src/core/ext/filters/client_channel/backup_poller.h', + 'src/core/ext/filters/client_channel/client_channel.h', +@@ -628,6 +571,64 @@ Pod::Spec.new do |s| + 'src/core/tsi/transport_security.h', + 'src/core/tsi/transport_security_grpc.h', + 'src/core/tsi/transport_security_interface.h', ++ 'src/cpp/client/channel_cc.cc', ++ 'src/cpp/client/client_context.cc', ++ 'src/cpp/client/client_interceptor.cc', ++ 'src/cpp/client/create_channel.cc', ++ 'src/cpp/client/create_channel_internal.cc', ++ 'src/cpp/client/create_channel_internal.h', ++ 'src/cpp/client/create_channel_posix.cc', ++ 'src/cpp/client/credentials_cc.cc', ++ 'src/cpp/client/generic_stub.cc', ++ 'src/cpp/client/insecure_credentials.cc', ++ 'src/cpp/client/secure_credentials.cc', ++ 'src/cpp/client/secure_credentials.h', ++ 'src/cpp/codegen/codegen_init.cc', ++ 'src/cpp/common/alarm.cc', ++ 'src/cpp/common/auth_property_iterator.cc', ++ 'src/cpp/common/channel_arguments.cc', ++ 'src/cpp/common/channel_filter.cc', ++ 'src/cpp/common/channel_filter.h', ++ 'src/cpp/common/completion_queue_cc.cc', ++ 'src/cpp/common/core_codegen.cc', ++ 'src/cpp/common/resource_quota_cc.cc', ++ 'src/cpp/common/rpc_method.cc', ++ 'src/cpp/common/secure_auth_context.cc', ++ 'src/cpp/common/secure_auth_context.h', ++ 'src/cpp/common/secure_channel_arguments.cc', ++ 'src/cpp/common/secure_create_auth_context.cc', ++ 'src/cpp/common/tls_credentials_options.cc', ++ 'src/cpp/common/tls_credentials_options_util.cc', ++ 'src/cpp/common/tls_credentials_options_util.h', ++ 'src/cpp/common/validate_service_config.cc', ++ 'src/cpp/common/version_cc.cc', ++ 'src/cpp/server/async_generic_service.cc', ++ 'src/cpp/server/channel_argument_option.cc', ++ 'src/cpp/server/create_default_thread_pool.cc', ++ 'src/cpp/server/dynamic_thread_pool.cc', ++ 'src/cpp/server/dynamic_thread_pool.h', ++ 'src/cpp/server/external_connection_acceptor_impl.cc', ++ 'src/cpp/server/external_connection_acceptor_impl.h', ++ 'src/cpp/server/health/default_health_check_service.cc', ++ 'src/cpp/server/health/default_health_check_service.h', ++ 'src/cpp/server/health/health_check_service.cc', ++ 'src/cpp/server/health/health_check_service_server_builder_option.cc', ++ 'src/cpp/server/insecure_server_credentials.cc', ++ 'src/cpp/server/secure_server_credentials.cc', ++ 'src/cpp/server/secure_server_credentials.h', ++ 'src/cpp/server/server_builder.cc', ++ 'src/cpp/server/server_callback.cc', ++ 'src/cpp/server/server_cc.cc', ++ 'src/cpp/server/server_context.cc', ++ 'src/cpp/server/server_credentials.cc', ++ 'src/cpp/server/server_posix.cc', ++ 'src/cpp/server/thread_pool_interface.h', ++ 'src/cpp/thread_manager/thread_manager.cc', ++ 'src/cpp/thread_manager/thread_manager.h', ++ 'src/cpp/util/byte_buffer_cc.cc', ++ 'src/cpp/util/status.cc', ++ 'src/cpp/util/string_ref.cc', ++ 'src/cpp/util/time_cc.cc', + 'third_party/upb/upb/decode.h', + 'third_party/upb/upb/encode.h', + 'third_party/upb/upb/generated_util.h', +@@ -638,235 +639,6 @@ Pod::Spec.new do |s| + 'third_party/upb/upb/upb.h' + + ss.private_header_files = 'include/grpcpp/impl/codegen/core_codegen.h', +- 'src/core/ext/filters/client_channel/backend_metric.h', +- 'src/core/ext/filters/client_channel/backup_poller.h', +- 'src/core/ext/filters/client_channel/client_channel.h', +- 'src/core/ext/filters/client_channel/client_channel_channelz.h', +- 'src/core/ext/filters/client_channel/client_channel_factory.h', +- 'src/core/ext/filters/client_channel/connector.h', +- 'src/core/ext/filters/client_channel/global_subchannel_pool.h', +- 'src/core/ext/filters/client_channel/health/health_check_client.h', +- 'src/core/ext/filters/client_channel/http_connect_handshaker.h', +- 'src/core/ext/filters/client_channel/http_proxy.h', +- 'src/core/ext/filters/client_channel/lb_policy.h', +- 'src/core/ext/filters/client_channel/lb_policy_factory.h', +- 'src/core/ext/filters/client_channel/lb_policy_registry.h', +- 'src/core/ext/filters/client_channel/local_subchannel_pool.h', +- 'src/core/ext/filters/client_channel/parse_address.h', +- 'src/core/ext/filters/client_channel/proxy_mapper.h', +- 'src/core/ext/filters/client_channel/proxy_mapper_registry.h', +- 'src/core/ext/filters/client_channel/resolver.h', +- 'src/core/ext/filters/client_channel/resolver_factory.h', +- 'src/core/ext/filters/client_channel/resolver_registry.h', +- 'src/core/ext/filters/client_channel/resolver_result_parsing.h', +- 'src/core/ext/filters/client_channel/resolving_lb_policy.h', +- 'src/core/ext/filters/client_channel/retry_throttle.h', +- 'src/core/ext/filters/client_channel/server_address.h', +- 'src/core/ext/filters/client_channel/service_config.h', +- 'src/core/ext/filters/client_channel/subchannel.h', +- 'src/core/ext/filters/client_channel/subchannel_interface.h', +- 'src/core/ext/filters/client_channel/subchannel_pool_interface.h', +- 'src/core/ext/filters/deadline/deadline_filter.h', +- 'src/core/ext/transport/inproc/inproc_transport.h', +- 'src/core/ext/upb-generated/gogoproto/gogo.upb.h', +- 'src/core/ext/upb-generated/google/api/annotations.upb.h', +- 'src/core/ext/upb-generated/google/api/http.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/any.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/duration.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/empty.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/struct.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.h', +- 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.h', +- 'src/core/ext/upb-generated/google/rpc/status.upb.h', +- 'src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h', +- 'src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h', +- 'src/core/ext/upb-generated/validate/validate.upb.h', +- 'src/core/lib/avl/avl.h', +- 'src/core/lib/backoff/backoff.h', +- 'src/core/lib/channel/channel_args.h', +- 'src/core/lib/channel/channel_stack.h', +- 'src/core/lib/channel/channel_stack_builder.h', +- 'src/core/lib/channel/channel_trace.h', +- 'src/core/lib/channel/channelz.h', +- 'src/core/lib/channel/channelz_registry.h', +- 'src/core/lib/channel/connected_channel.h', +- 'src/core/lib/channel/context.h', +- 'src/core/lib/channel/handshaker.h', +- 'src/core/lib/channel/handshaker_factory.h', +- 'src/core/lib/channel/handshaker_registry.h', +- 'src/core/lib/channel/status_util.h', +- 'src/core/lib/compression/algorithm_metadata.h', +- 'src/core/lib/compression/compression_args.h', +- 'src/core/lib/compression/compression_internal.h', +- 'src/core/lib/compression/message_compress.h', +- 'src/core/lib/compression/stream_compression.h', +- 'src/core/lib/compression/stream_compression_gzip.h', +- 'src/core/lib/compression/stream_compression_identity.h', +- 'src/core/lib/debug/stats.h', +- 'src/core/lib/debug/stats_data.h', +- 'src/core/lib/debug/trace.h', +- 'src/core/lib/gpr/alloc.h', +- 'src/core/lib/gpr/arena.h', +- 'src/core/lib/gpr/env.h', +- 'src/core/lib/gpr/murmur_hash.h', +- 'src/core/lib/gpr/spinlock.h', +- 'src/core/lib/gpr/string.h', +- 'src/core/lib/gpr/string_windows.h', +- 'src/core/lib/gpr/time_precise.h', +- 'src/core/lib/gpr/tls.h', +- 'src/core/lib/gpr/tls_gcc.h', +- 'src/core/lib/gpr/tls_msvc.h', +- 'src/core/lib/gpr/tls_pthread.h', +- 'src/core/lib/gpr/tmpfile.h', +- 'src/core/lib/gpr/useful.h', +- 'src/core/lib/gprpp/arena.h', +- 'src/core/lib/gprpp/atomic.h', +- 'src/core/lib/gprpp/debug_location.h', +- 'src/core/lib/gprpp/fork.h', +- 'src/core/lib/gprpp/global_config.h', +- 'src/core/lib/gprpp/global_config_custom.h', +- 'src/core/lib/gprpp/global_config_env.h', +- 'src/core/lib/gprpp/global_config_generic.h', +- 'src/core/lib/gprpp/host_port.h', +- 'src/core/lib/gprpp/inlined_vector.h', +- 'src/core/lib/gprpp/manual_constructor.h', +- 'src/core/lib/gprpp/map.h', +- 'src/core/lib/gprpp/memory.h', +- 'src/core/lib/gprpp/mpscq.h', +- 'src/core/lib/gprpp/optional.h', +- 'src/core/lib/gprpp/orphanable.h', +- 'src/core/lib/gprpp/ref_counted.h', +- 'src/core/lib/gprpp/ref_counted_ptr.h', +- 'src/core/lib/gprpp/string_view.h', +- 'src/core/lib/gprpp/sync.h', +- 'src/core/lib/gprpp/thd.h', +- 'src/core/lib/http/format_request.h', +- 'src/core/lib/http/httpcli.h', +- 'src/core/lib/http/parser.h', +- 'src/core/lib/iomgr/block_annotate.h', +- 'src/core/lib/iomgr/buffer_list.h', +- 'src/core/lib/iomgr/call_combiner.h', +- 'src/core/lib/iomgr/cfstream_handle.h', +- 'src/core/lib/iomgr/closure.h', +- 'src/core/lib/iomgr/combiner.h', +- 'src/core/lib/iomgr/dynamic_annotations.h', +- 'src/core/lib/iomgr/endpoint.h', +- 'src/core/lib/iomgr/endpoint_cfstream.h', +- 'src/core/lib/iomgr/endpoint_pair.h', +- 'src/core/lib/iomgr/error.h', +- 'src/core/lib/iomgr/error_cfstream.h', +- 'src/core/lib/iomgr/error_internal.h', +- 'src/core/lib/iomgr/ev_epoll1_linux.h', +- 'src/core/lib/iomgr/ev_epollex_linux.h', +- 'src/core/lib/iomgr/ev_poll_posix.h', +- 'src/core/lib/iomgr/ev_posix.h', +- 'src/core/lib/iomgr/exec_ctx.h', +- 'src/core/lib/iomgr/executor.h', +- 'src/core/lib/iomgr/executor/mpmcqueue.h', +- 'src/core/lib/iomgr/executor/threadpool.h', +- 'src/core/lib/iomgr/gethostname.h', +- 'src/core/lib/iomgr/grpc_if_nametoindex.h', +- 'src/core/lib/iomgr/internal_errqueue.h', +- 'src/core/lib/iomgr/iocp_windows.h', +- 'src/core/lib/iomgr/iomgr.h', +- 'src/core/lib/iomgr/iomgr_custom.h', +- 'src/core/lib/iomgr/iomgr_internal.h', +- 'src/core/lib/iomgr/iomgr_posix.h', +- 'src/core/lib/iomgr/is_epollexclusive_available.h', +- 'src/core/lib/iomgr/load_file.h', +- 'src/core/lib/iomgr/lockfree_event.h', +- 'src/core/lib/iomgr/logical_thread.h', +- 'src/core/lib/iomgr/nameser.h', +- 'src/core/lib/iomgr/polling_entity.h', +- 'src/core/lib/iomgr/pollset.h', +- 'src/core/lib/iomgr/pollset_custom.h', +- 'src/core/lib/iomgr/pollset_set.h', +- 'src/core/lib/iomgr/pollset_set_custom.h', +- 'src/core/lib/iomgr/pollset_set_windows.h', +- 'src/core/lib/iomgr/pollset_windows.h', +- 'src/core/lib/iomgr/port.h', +- 'src/core/lib/iomgr/resolve_address.h', +- 'src/core/lib/iomgr/resolve_address_custom.h', +- 'src/core/lib/iomgr/resource_quota.h', +- 'src/core/lib/iomgr/sockaddr.h', +- 'src/core/lib/iomgr/sockaddr_custom.h', +- 'src/core/lib/iomgr/sockaddr_posix.h', +- 'src/core/lib/iomgr/sockaddr_utils.h', +- 'src/core/lib/iomgr/sockaddr_windows.h', +- 'src/core/lib/iomgr/socket_factory_posix.h', +- 'src/core/lib/iomgr/socket_mutator.h', +- 'src/core/lib/iomgr/socket_utils.h', +- 'src/core/lib/iomgr/socket_utils_posix.h', +- 'src/core/lib/iomgr/socket_windows.h', +- 'src/core/lib/iomgr/sys_epoll_wrapper.h', +- 'src/core/lib/iomgr/tcp_client.h', +- 'src/core/lib/iomgr/tcp_client_posix.h', +- 'src/core/lib/iomgr/tcp_custom.h', +- 'src/core/lib/iomgr/tcp_posix.h', +- 'src/core/lib/iomgr/tcp_server.h', +- 'src/core/lib/iomgr/tcp_server_utils_posix.h', +- 'src/core/lib/iomgr/tcp_windows.h', +- 'src/core/lib/iomgr/time_averaged_stats.h', +- 'src/core/lib/iomgr/timer.h', +- 'src/core/lib/iomgr/timer_custom.h', +- 'src/core/lib/iomgr/timer_heap.h', +- 'src/core/lib/iomgr/timer_manager.h', +- 'src/core/lib/iomgr/udp_server.h', +- 'src/core/lib/iomgr/unix_sockets_posix.h', +- 'src/core/lib/iomgr/wakeup_fd_pipe.h', +- 'src/core/lib/iomgr/wakeup_fd_posix.h', +- 'src/core/lib/json/json.h', +- 'src/core/lib/json/json_common.h', +- 'src/core/lib/json/json_reader.h', +- 'src/core/lib/json/json_writer.h', +- 'src/core/lib/profiling/timers.h', +- 'src/core/lib/slice/b64.h', +- 'src/core/lib/slice/percent_encoding.h', +- 'src/core/lib/slice/slice_hash_table.h', +- 'src/core/lib/slice/slice_internal.h', +- 'src/core/lib/slice/slice_string_helpers.h', +- 'src/core/lib/slice/slice_utils.h', +- 'src/core/lib/slice/slice_weak_hash_table.h', +- 'src/core/lib/surface/api_trace.h', +- 'src/core/lib/surface/call.h', +- 'src/core/lib/surface/call_test_only.h', +- 'src/core/lib/surface/channel.h', +- 'src/core/lib/surface/channel_init.h', +- 'src/core/lib/surface/channel_stack_type.h', +- 'src/core/lib/surface/completion_queue.h', +- 'src/core/lib/surface/completion_queue_factory.h', +- 'src/core/lib/surface/event_string.h', +- 'src/core/lib/surface/init.h', +- 'src/core/lib/surface/lame_client.h', +- 'src/core/lib/surface/server.h', +- 'src/core/lib/surface/validate_metadata.h', +- 'src/core/lib/transport/bdp_estimator.h', +- 'src/core/lib/transport/byte_stream.h', +- 'src/core/lib/transport/connectivity_state.h', +- 'src/core/lib/transport/error_utils.h', +- 'src/core/lib/transport/http2_errors.h', +- 'src/core/lib/transport/metadata.h', +- 'src/core/lib/transport/metadata_batch.h', +- 'src/core/lib/transport/pid_controller.h', +- 'src/core/lib/transport/static_metadata.h', +- 'src/core/lib/transport/status_conversion.h', +- 'src/core/lib/transport/status_metadata.h', +- 'src/core/lib/transport/timeout_encoding.h', +- 'src/core/lib/transport/transport.h', +- 'src/core/lib/transport/transport_impl.h', +- 'src/core/lib/uri/uri_parser.h', +- 'src/cpp/client/create_channel_internal.h', +- 'src/cpp/client/secure_credentials.h', +- 'src/cpp/common/channel_filter.h', +- 'src/cpp/common/secure_auth_context.h', +- 'src/cpp/common/tls_credentials_options_util.h', +- 'src/cpp/server/dynamic_thread_pool.h', +- 'src/cpp/server/external_connection_acceptor_impl.h', +- 'src/cpp/server/health/default_health_check_service.h', +- 'src/cpp/server/secure_server_credentials.h', +- 'src/cpp/server/thread_pool_interface.h', +- 'src/cpp/thread_manager/thread_manager.h', + 'src/core/ext/filters/client_channel/backend_metric.h', + 'src/core/ext/filters/client_channel/backup_poller.h', + 'src/core/ext/filters/client_channel/client_channel.h', +@@ -1222,6 +994,17 @@ Pod::Spec.new do |s| + 'src/core/tsi/transport_security.h', + 'src/core/tsi/transport_security_grpc.h', + 'src/core/tsi/transport_security_interface.h', ++ 'src/cpp/client/create_channel_internal.h', ++ 'src/cpp/client/secure_credentials.h', ++ 'src/cpp/common/channel_filter.h', ++ 'src/cpp/common/secure_auth_context.h', ++ 'src/cpp/common/tls_credentials_options_util.h', ++ 'src/cpp/server/dynamic_thread_pool.h', ++ 'src/cpp/server/external_connection_acceptor_impl.h', ++ 'src/cpp/server/health/default_health_check_service.h', ++ 'src/cpp/server/secure_server_credentials.h', ++ 'src/cpp/server/thread_pool_interface.h', ++ 'src/cpp/thread_manager/thread_manager.h', + 'third_party/upb/upb/decode.h', + 'third_party/upb/upb/encode.h', + 'third_party/upb/upb/generated_util.h', +@@ -1237,7 +1020,6 @@ Pod::Spec.new do |s| + ss.dependency "#{s.name}/Interface", version + + ss.source_files = 'include/grpcpp/impl/codegen/config_protobuf.h', +- 'include/grpcpp/impl/codegen/config_protobuf.h', + 'include/grpcpp/impl/codegen/proto_buffer_reader.h', + 'include/grpcpp/impl/codegen/proto_buffer_writer.h', + 'include/grpcpp/impl/codegen/proto_utils.h' +diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec +index 5b306628b20..ec4a29465de 100644 +--- a/gRPC-Core.podspec ++++ b/gRPC-Core.podspec +@@ -19,7 +19,6 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + +- + Pod::Spec.new do |s| + s.name = 'gRPC-Core' + version = '1.26.0' +@@ -97,7 +96,7 @@ Pod::Spec.new do |s| + } + + s.default_subspecs = 'Interface', 'Implementation' +- s.compiler_flags = '-DGRPC_ARES=0' ++ s.compiler_flags = '-DGRPC_ARES=0 -Wno-comma' + s.libraries = 'c++' + + # Like many other C libraries, gRPC-Core has its public headers under `include//` and its +@@ -123,40 +122,26 @@ Pod::Spec.new do |s| + 'include/grpc/grpc_security.h', + 'include/grpc/grpc_security_constants.h', + 'include/grpc/impl/codegen/atm.h', +- 'include/grpc/impl/codegen/atm.h', + 'include/grpc/impl/codegen/atm_gcc_atomic.h', +- 'include/grpc/impl/codegen/atm_gcc_atomic.h', +- 'include/grpc/impl/codegen/atm_gcc_sync.h', + 'include/grpc/impl/codegen/atm_gcc_sync.h', + 'include/grpc/impl/codegen/atm_windows.h', +- 'include/grpc/impl/codegen/atm_windows.h', + 'include/grpc/impl/codegen/byte_buffer.h', + 'include/grpc/impl/codegen/byte_buffer_reader.h', + 'include/grpc/impl/codegen/compression_types.h', + 'include/grpc/impl/codegen/connectivity_state.h', + 'include/grpc/impl/codegen/fork.h', +- 'include/grpc/impl/codegen/fork.h', +- 'include/grpc/impl/codegen/gpr_slice.h', + 'include/grpc/impl/codegen/gpr_slice.h', + 'include/grpc/impl/codegen/gpr_types.h', +- 'include/grpc/impl/codegen/gpr_types.h', + 'include/grpc/impl/codegen/grpc_types.h', + 'include/grpc/impl/codegen/log.h', +- 'include/grpc/impl/codegen/log.h', +- 'include/grpc/impl/codegen/port_platform.h', + 'include/grpc/impl/codegen/port_platform.h', + 'include/grpc/impl/codegen/propagation_bits.h', + 'include/grpc/impl/codegen/slice.h', + 'include/grpc/impl/codegen/status.h', + 'include/grpc/impl/codegen/sync.h', +- 'include/grpc/impl/codegen/sync.h', +- 'include/grpc/impl/codegen/sync_custom.h', + 'include/grpc/impl/codegen/sync_custom.h', + 'include/grpc/impl/codegen/sync_generic.h', +- 'include/grpc/impl/codegen/sync_generic.h', + 'include/grpc/impl/codegen/sync_posix.h', +- 'include/grpc/impl/codegen/sync_posix.h', +- 'include/grpc/impl/codegen/sync_windows.h', + 'include/grpc/impl/codegen/sync_windows.h', + 'include/grpc/load_reporting.h', + 'include/grpc/slice.h', +@@ -186,6 +171,7 @@ Pod::Spec.new do |s| + ss.libraries = 'z' + ss.dependency "#{s.name}/Interface", version + ss.dependency 'BoringSSL-GRPC', '0.0.5' ++ abseil_version = '0.20190808.1' + ss.compiler_flags = '-DGRPC_SHADOW_BORINGSSL_SYMBOLS' + + ss.source_files = 'src/core/ext/filters/census/grpc_context.cc', +@@ -969,7 +955,6 @@ Pod::Spec.new do |s| + 'third_party/upb/upb/table.int.h', + 'third_party/upb/upb/upb.c', + 'third_party/upb/upb/upb.h' +- + ss.private_header_files = 'src/core/ext/filters/client_channel/backend_metric.h', + 'src/core/ext/filters/client_channel/backup_poller.h', + 'src/core/ext/filters/client_channel/client_channel.h', +@@ -1372,54 +1357,15 @@ Pod::Spec.new do |s| + 'test/core/end2end/data/server1_key.cc', + 'test/core/end2end/data/ssl_test_data.h', + 'test/core/end2end/data/test_root_cert.cc', ++ 'test/core/end2end/end2end_test_utils.cc', ++ 'test/core/end2end/end2end_tests.cc', ++ 'test/core/end2end/end2end_tests.h', + 'test/core/end2end/fixtures/http_proxy_fixture.cc', + 'test/core/end2end/fixtures/http_proxy_fixture.h', + 'test/core/end2end/fixtures/local_util.cc', + 'test/core/end2end/fixtures/local_util.h', + 'test/core/end2end/fixtures/proxy.cc', + 'test/core/end2end/fixtures/proxy.h', +- 'test/core/iomgr/endpoint_tests.cc', +- 'test/core/iomgr/endpoint_tests.h', +- 'test/core/security/oauth2_utils.cc', +- 'test/core/security/oauth2_utils.h', +- 'test/core/util/cmdline.cc', +- 'test/core/util/cmdline.h', +- 'test/core/util/debugger_macros.cc', +- 'test/core/util/debugger_macros.h', +- 'test/core/util/fuzzer_util.cc', +- 'test/core/util/fuzzer_util.h', +- 'test/core/util/grpc_profiler.cc', +- 'test/core/util/grpc_profiler.h', +- 'test/core/util/histogram.cc', +- 'test/core/util/histogram.h', +- 'test/core/util/memory_counters.cc', +- 'test/core/util/memory_counters.h', +- 'test/core/util/mock_endpoint.cc', +- 'test/core/util/mock_endpoint.h', +- 'test/core/util/parse_hexstring.cc', +- 'test/core/util/parse_hexstring.h', +- 'test/core/util/passthru_endpoint.cc', +- 'test/core/util/passthru_endpoint.h', +- 'test/core/util/port.cc', +- 'test/core/util/port.h', +- 'test/core/util/port_isolated_runtime_environment.cc', +- 'test/core/util/port_server_client.cc', +- 'test/core/util/port_server_client.h', +- 'test/core/util/slice_splitter.cc', +- 'test/core/util/slice_splitter.h', +- 'test/core/util/subprocess.h', +- 'test/core/util/subprocess_windows.cc', +- 'test/core/util/test_config.cc', +- 'test/core/util/test_config.h', +- 'test/core/util/test_lb_policies.cc', +- 'test/core/util/test_lb_policies.h', +- 'test/core/util/tracer_util.cc', +- 'test/core/util/tracer_util.h', +- 'test/core/util/trickle_endpoint.cc', +- 'test/core/util/trickle_endpoint.h', +- 'test/core/end2end/end2end_test_utils.cc', +- 'test/core/end2end/end2end_tests.cc', +- 'test/core/end2end/end2end_tests.h', + 'test/core/end2end/tests/authority_not_supported.cc', + 'test/core/end2end/tests/bad_hostname.cc', + 'test/core/end2end/tests/bad_ping.cc', +@@ -1498,7 +1444,46 @@ Pod::Spec.new do |s| + 'test/core/end2end/tests/trailing_metadata.cc', + 'test/core/end2end/tests/workaround_cronet_compression.cc', + 'test/core/end2end/tests/write_buffering.cc', +- 'test/core/end2end/tests/write_buffering_at_end.cc' ++ 'test/core/end2end/tests/write_buffering_at_end.cc', ++ 'test/core/iomgr/endpoint_tests.cc', ++ 'test/core/iomgr/endpoint_tests.h', ++ 'test/core/security/oauth2_utils.cc', ++ 'test/core/security/oauth2_utils.h', ++ 'test/core/util/cmdline.cc', ++ 'test/core/util/cmdline.h', ++ 'test/core/util/debugger_macros.cc', ++ 'test/core/util/debugger_macros.h', ++ 'test/core/util/fuzzer_util.cc', ++ 'test/core/util/fuzzer_util.h', ++ 'test/core/util/grpc_profiler.cc', ++ 'test/core/util/grpc_profiler.h', ++ 'test/core/util/histogram.cc', ++ 'test/core/util/histogram.h', ++ 'test/core/util/memory_counters.cc', ++ 'test/core/util/memory_counters.h', ++ 'test/core/util/mock_endpoint.cc', ++ 'test/core/util/mock_endpoint.h', ++ 'test/core/util/parse_hexstring.cc', ++ 'test/core/util/parse_hexstring.h', ++ 'test/core/util/passthru_endpoint.cc', ++ 'test/core/util/passthru_endpoint.h', ++ 'test/core/util/port.cc', ++ 'test/core/util/port.h', ++ 'test/core/util/port_isolated_runtime_environment.cc', ++ 'test/core/util/port_server_client.cc', ++ 'test/core/util/port_server_client.h', ++ 'test/core/util/slice_splitter.cc', ++ 'test/core/util/slice_splitter.h', ++ 'test/core/util/subprocess.h', ++ 'test/core/util/subprocess_windows.cc', ++ 'test/core/util/test_config.cc', ++ 'test/core/util/test_config.h', ++ 'test/core/util/test_lb_policies.cc', ++ 'test/core/util/test_lb_policies.h', ++ 'test/core/util/tracer_util.cc', ++ 'test/core/util/tracer_util.h', ++ 'test/core/util/trickle_endpoint.cc', ++ 'test/core/util/trickle_endpoint.h' + end + + # TODO (mxyan): Instead of this hack, add include path "third_party" to C core's include path? +diff --git a/templates/gRPC-C++.podspec.template b/templates/gRPC-C++.podspec.template +index 0a31cc5066b..ef0801c6735 100644 +--- a/templates/gRPC-C++.podspec.template ++++ b/templates/gRPC-C++.podspec.template +@@ -20,108 +20,84 @@ + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. ++ <% ++ lib_maps = {lib.name: lib for lib in libs} ++ filegroup_maps = {filegroup.name: filegroup for filegroup in filegroups} + +- <%! +- def grpc_lib_files(libs, expect_libs, groups): ++ def ruby_multiline_list(files, indent): ++ return (',\n' + indent*' ').join('\'%s\'' % f for f in files) ++ ++ def is_absl_lib(target_name): ++ return target_name.startswith("absl/") ++ ++ def get_absl_spec_name(label): ++ # e.g. absl/apple:banana -> abseil/apple/banana ++ return "abseil/" + label[5:].replace(":", "/") ++ ++ def lib_and_transitive_deps(lib): ++ return list(sorted(set({lib} | lib_maps[lib].transitive_deps))) ++ ++ def non_abseil_lib_and_transitive_deps(lib): ++ return [l for l in lib_and_transitive_deps(lib) if not is_absl_lib(l)] ++ ++ def list_abseil_specs(lib): ++ # This returns a list of abseil specs which the given lib and ++ # its non-abseil transitive dependencies depend on. ++ # As a result, internal abseil libraries are excluded from the result. ++ absl_specs = set() ++ for lib_name in lib_and_transitive_deps(lib): ++ if is_absl_lib(lib_name): continue ++ for dep in lib_maps[lib_name].deps: ++ if is_absl_lib(dep): ++ absl_specs.add(get_absl_spec_name(dep)) ++ return list(sorted(absl_specs)) ++ ++ def list_lib_files(lib, fields): ++ files = set() ++ for lib_name in non_abseil_lib_and_transitive_deps(lib): ++ lib = lib_maps[lib_name] ++ for field in fields: ++ files.update(lib.get(field, [])) ++ return list(sorted(files)) ++ ++ def list_filegroup_files(expect_filegroups, groups): + out = [] +- for lib in libs: +- if lib.name in expect_libs: +- for group in groups: +- out += lib.get(group, []) +- return sorted(out) ++ for filegroup_name in expect_filegroups: ++ filegroup = filegroup_maps[filegroup_name] ++ for group in groups: ++ out += filegroup.get(group, []) ++ return list(sorted(set(out))) + + def filter_grpcpp(files): +- return [file for file in files if not file.startswith("include/grpc++")] +- +- grpc_libs = ("grpc", "gpr", "upb") +- +- def grpc_private_files(libs): +- out = grpc_lib_files(libs, grpc_libs, ("headers", "src")) +- return out +- +- def grpc_private_headers(libs): +- out = grpc_lib_files(libs, grpc_libs, ("headers",)) +- return out +- +- def grpc_public_headers(libs): +- out = grpc_lib_files(libs, grpc_libs, ("public_headers",)) +- return out +- +- def grpcpp_proto_files(filegroups): +- out = grpc_lib_files(filegroups, ("grpc++_codegen_proto", "grpc++_config_proto"), ("headers", "src", "public_headers")) +- excl_files = grpc_lib_files(filegroups, ("grpc++_codegen_base",), ("headers", "src", "public_headers")) +- out = [file for file in out if file not in excl_files] +- out = filter_grpcpp(out) +- return out +- +- def grpcpp_private_files(libs, filegroups): +- out = grpc_lib_files(libs, ("grpc++",), ("headers", "src")) +- excl_files = grpc_private_files(libs) +- ++ return sorted([file for file in files if not file.startswith("include/grpc++")]) ++ ++ grpc_private_files = list_lib_files("grpc", ("headers", "src")) ++ grpc_public_headers = list_lib_files("grpc", ("public_headers",)) ++ grpc_private_headers = list_lib_files("grpc", ("headers",)) ++ ++ grpcpp_proto_files = filter_grpcpp( ++ set(list_filegroup_files(("grpc++_codegen_proto", "grpc++_config_proto"), ("headers", "src", "public_headers"))) ++ - set(list_filegroup_files(("grpc++_codegen_base",), ("headers", "src", "public_headers"))) ++ ) ++ grpcpp_private_files = filter_grpcpp( ++ set(list_lib_files("grpc++", ("headers", "src"))) ++ - set(grpc_private_files) + # We exclude proto related files in this particular podspec so that we can provide a protobuf-independent lib +- excl_files += grpcpp_proto_files(filegroups) +- out = [file for file in out if file not in excl_files] +- +- out = filter_grpcpp(out) +- return out +- +- def grpcpp_private_headers(libs, filegroups): +- out = grpc_lib_files(libs, ("grpc++",), ("headers",)) +- excl_files = grpc_private_headers(libs) +- ++ - set(grpcpp_proto_files) ++ ) ++ grpcpp_private_headers = filter_grpcpp( ++ set(list_lib_files("grpc++", ("headers",))) ++ - set(grpc_private_headers) + # We exclude proto related files in this particular podspec so that we can provide a protobuf-independent lib +- excl_files = grpcpp_proto_files(filegroups) +- out = [file for file in out if file not in excl_files] +- +- out = filter_grpcpp(out) +- return out +- +- def grpcpp_public_headers(libs, filegroups): +- out = grpc_lib_files(libs, ("grpc++",), ("public_headers",)) +- excl_files = grpc_public_headers(libs) +- ++ - set(grpcpp_proto_files) ++ ) ++ grpcpp_public_headers = filter_grpcpp( ++ set(list_lib_files("grpc++", ("public_headers",))) ++ - set(grpc_public_headers) + # We exclude proto related files in this particular podspec so that we can provide a protobuf-independent lib +- excl_files += grpcpp_proto_files(filegroups) +- +- out = [file for file in out if file not in excl_files] +- +- out = filter_grpcpp(out) +- +- return out +- +- def grpc_test_util_files(libs): +- out = grpc_lib_files(libs, ("grpc_test_util",), ("src", "headers")) +- return out +- +- def grpc_test_util_headers(libs): +- out = grpc_lib_files(libs, ("grpc_test_util",), ("headers",)) +- return out +- +- # Tests subspec is currently disabled since the tests currently use `grpc++` include style instead of `grpcpp`. +- # TODO (mxyan): enable Tests subspec after the inclusion style is updated in `test/` directory. +- def grpcpp_test_util_files(libs, filegroups): +- out = grpc_lib_files(libs, ("grpc++_test_util",), ("src", "headers")) +- excl_files = grpc_test_util_files(libs) + grpcpp_private_files(libs, filegroups) +- +- # We exclude proto related files in this particular podspec so that we can provide a protobuf-independent lib +- excl_files += grpc_lib_files(filegroups, ("grpc++_codegen_proto", "grpc++_config_proto"), ("headers", "src")) +- excl_files += ["test/cpp/util/byte_buffer_proto_helper.cc", +- "test/cpp/util/byte_buffer_proto_helper.h", +- "test/cpp/end2end/test_service_impl.cc", +- "test/cpp/end2end/test_service_impl.h"] +- excl_files += [file for file in out if file.endswith(".proto")] +- +- out = [file for file in out if not file in excl_files] +- +- # Since some C++ test files directly included private headers in C core, we intentionally add these header +- # files to this subspec +- out += grpc_test_util_headers(libs) +- +- return out +- +- def ruby_multiline_list(files, indent): +- return (',\n' + indent*' ').join('\'%s\'' % f for f in files) +- ++ - set(grpcpp_proto_files) ++ ) ++ grpcpp_abseil_specs = list_abseil_specs("grpc++") + %> + Pod::Spec.new do |s| + s.name = 'gRPC-C++' +@@ -168,6 +144,7 @@ + } + + s.libraries = 'c++' ++ s.compiler_flags = '-Wno-comma' + + s.default_subspecs = 'Interface', 'Implementation' + +@@ -179,24 +156,28 @@ + s.subspec 'Interface' do |ss| + ss.header_mappings_dir = 'include/grpcpp' + +- ss.source_files = ${ruby_multiline_list(grpcpp_public_headers(libs, filegroups), 22)} ++ ss.source_files = ${ruby_multiline_list(grpcpp_public_headers, 22)} + end + + s.subspec 'Implementation' do |ss| + ss.header_mappings_dir = '.' + ss.dependency "#{s.name}/Interface", version + ss.dependency 'gRPC-Core', version ++ abseil_version = '0.20190808.1' ++ % for abseil_spec in grpcpp_abseil_specs: ++ ss.dependency '${abseil_spec}', abseil_version ++ % endfor + +- ss.source_files = ${ruby_multiline_list(grpcpp_private_files(libs, filegroups) + grpc_private_headers(libs), 22)} ++ ss.source_files = ${ruby_multiline_list(sorted(grpcpp_private_files + grpc_private_headers), 22)} + +- ss.private_header_files = ${ruby_multiline_list(grpcpp_private_headers(libs, filegroups) + grpc_private_headers(libs), 30)} ++ ss.private_header_files = ${ruby_multiline_list(sorted(grpcpp_private_headers + grpc_private_headers), 30)} + end + + s.subspec 'Protobuf' do |ss| + ss.header_mappings_dir = 'include/grpcpp' + ss.dependency "#{s.name}/Interface", version + +- ss.source_files = ${ruby_multiline_list(grpcpp_proto_files(filegroups), 22)} ++ ss.source_files = ${ruby_multiline_list(grpcpp_proto_files, 22)} + end + + s.subspec 'Cronet-Interface' do |ss| +diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template +index 9bebbdf4097..847aabc41d7 100644 +--- a/templates/gRPC-Core.podspec.template ++++ b/templates/gRPC-Core.podspec.template +@@ -20,60 +20,70 @@ + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. +- +- <%! +- def grpc_lib_files(libs, expect_libs, groups): +- out = [] +- for lib in libs: +- if lib.name in expect_libs: +- for group in groups: +- out += lib.get(group, []) +- return sorted(out) +- +- grpc_libs = ("grpc", "gpr", "upb") +- +- def grpc_private_files(libs): +- out = grpc_lib_files(libs, grpc_libs, ("headers", "src")) +- return out +- +- def grpc_public_headers(libs): +- out = grpc_lib_files(libs, grpc_libs, ("public_headers",)) +- return out +- +- def grpc_private_headers(libs): +- out = grpc_lib_files(libs, grpc_libs, ("headers",)) +- return out +- +- def grpc_cronet_files(libs): +- out = grpc_lib_files(libs, ("grpc_cronet",), ("src", "headers")) +- excl = grpc_private_files(libs) +- excl += [ +- # We do not need cronet dedicated plugin registry +- "src/core/ext/transport/cronet/plugin_registry/grpc_cronet_plugin_registry.cc", +- # We do not need dummy cronet API for ObjC +- "src/core/ext/transport/cronet/transport/cronet_api_dummy.cc", +- ] +- return [file for file in out if not file in excl] +- +- def grpc_cronet_public_headers(libs): +- out = grpc_lib_files(libs, ("grpc_cronet",), ("public_headers",)) +- excl = grpc_public_headers(libs) +- return [file for file in out if not file in excl] +- +- def grpc_test_util_files(libs): +- out = grpc_lib_files(libs, ("grpc_test_util",), ("src", "headers")) +- excl = grpc_private_files(libs) +- # Subprocess is not supported in tvOS and not needed by our tests. +- excl += ["test/core/util/subprocess_posix.cc"] +- return [file for file in out if not file in excl] +- +- def end2end_tests_files(libs): +- out = grpc_lib_files(libs, ("end2end_tests",), ("src", "headers")) +- excl = grpc_private_files(libs) +- return [file for file in out if not file in excl] ++ <% ++ lib_maps = {lib.name: lib for lib in libs} + + def ruby_multiline_list(files, indent): + return (',\n' + indent*' ').join('\'%s\'' % f for f in files) ++ ++ def is_absl_lib(target_name): ++ return target_name.startswith("absl/") ++ ++ def get_absl_spec_name(label): ++ # e.g. absl/apple:banana -> abseil/apple/banana ++ return "abseil/" + label[5:].replace(":", "/") ++ ++ def lib_and_transitive_deps(lib): ++ return list(sorted(set({lib} | lib_maps[lib].transitive_deps))) ++ ++ def non_abseil_lib_and_transitive_deps(lib): ++ return [l for l in lib_and_transitive_deps(lib) if not is_absl_lib(l)] ++ ++ def list_abseil_specs(lib): ++ # This returns a list of abseil specs which the given lib and ++ # its non-abseil transitive dependencies depend on. ++ # As a result, internal abseil libraries are excluded from the result. ++ absl_specs = set() ++ for lib_name in lib_and_transitive_deps(lib): ++ if is_absl_lib(lib_name): continue ++ for dep in lib_maps[lib_name].deps: ++ if is_absl_lib(dep): ++ absl_specs.add(get_absl_spec_name(dep)) ++ return list(sorted(absl_specs)) ++ ++ def list_lib_files(lib, fields): ++ files = set() ++ for lib_name in non_abseil_lib_and_transitive_deps(lib): ++ lib = lib_maps[lib_name] ++ for field in fields: ++ files.update(lib.get(field, [])) ++ return list(sorted(files)) ++ ++ grpc_private_files = list_lib_files("grpc", ("headers", "src")) ++ grpc_public_headers = list_lib_files("grpc", ("public_headers",)) ++ grpc_private_headers = list_lib_files("grpc", ("headers",)) ++ grpc_abseil_specs = list_abseil_specs("grpc") ++ ++ grpc_cronet_files = list(sorted( ++ set(list_lib_files("grpc_cronet", ("src", "headers"))) ++ - set(grpc_private_files) ++ - set([ ++ # We do not need cronet dedicated plugin registry ++ "src/core/ext/transport/cronet/plugin_registry/grpc_cronet_plugin_registry.cc", ++ # We do not need dummy cronet API for ObjC ++ "src/core/ext/transport/cronet/transport/cronet_api_dummy.cc", ++ ]))) ++ grpc_cronet_public_headers = list(sorted( ++ set(list_lib_files("grpc_cronet", ("public_headers",))) ++ - set(grpc_public_headers))) ++ ++ grpc_test_util_files = list(sorted( ++ set(list_lib_files("end2end_tests", ("src", "headers"))) ++ - set(grpc_private_files) ++ - set([ ++ # Subprocess is not supported in tvOS and not needed by our tests. ++ "test/core/util/subprocess_posix.cc", ++ ]))) + %> + Pod::Spec.new do |s| + s.name = 'gRPC-Core' +@@ -152,7 +162,7 @@ + } + + s.default_subspecs = 'Interface', 'Implementation' +- s.compiler_flags = '-DGRPC_ARES=0' ++ s.compiler_flags = '-DGRPC_ARES=0 -Wno-comma' + s.libraries = 'c++' + + # Like many other C libraries, gRPC-Core has its public headers under `include//` and its +@@ -168,18 +178,21 @@ + s.subspec 'Interface' do |ss| + ss.header_mappings_dir = 'include/grpc' + +- ss.source_files = ${ruby_multiline_list(grpc_public_headers(libs), 22)} ++ ss.source_files = ${ruby_multiline_list(grpc_public_headers, 22)} + end + s.subspec 'Implementation' do |ss| + ss.header_mappings_dir = '.' + ss.libraries = 'z' + ss.dependency "#{s.name}/Interface", version + ss.dependency 'BoringSSL-GRPC', '0.0.5' ++ abseil_version = '0.20190808.1' ++ % for abseil_spec in grpc_abseil_specs: ++ ss.dependency '${abseil_spec}', abseil_version ++ % endfor + ss.compiler_flags = '-DGRPC_SHADOW_BORINGSSL_SYMBOLS' + +- ss.source_files = ${ruby_multiline_list(grpc_private_files(libs), 22)} +- +- ss.private_header_files = ${ruby_multiline_list(grpc_private_headers(libs), 30)} ++ ss.source_files = ${ruby_multiline_list(grpc_private_files, 22)} ++ ss.private_header_files = ${ruby_multiline_list(grpc_private_headers, 30)} + end + + # CFStream is now default. Leaving this subspec only for compatibility purpose. +@@ -189,7 +202,7 @@ + + s.subspec 'Cronet-Interface' do |ss| + ss.header_mappings_dir = 'include/grpc' +- ss.source_files = ${ruby_multiline_list(grpc_cronet_public_headers(libs), 22)} ++ ss.source_files = ${ruby_multiline_list(grpc_cronet_public_headers, 22)} + end + + s.subspec 'Cronet-Implementation' do |ss| +@@ -199,7 +212,7 @@ + ss.dependency "#{s.name}/Implementation", version + ss.dependency "#{s.name}/Cronet-Interface", version + +- ss.source_files = ${ruby_multiline_list(grpc_cronet_files(libs), 22)} ++ ss.source_files = ${ruby_multiline_list(grpc_cronet_files, 22)} + end + + s.subspec 'Tests' do |ss| +@@ -208,8 +221,7 @@ + ss.dependency "#{s.name}/Interface", version + ss.dependency "#{s.name}/Implementation", version + +- ss.source_files = ${ruby_multiline_list(grpc_test_util_files(libs), 22)}, +- ${ruby_multiline_list(end2end_tests_files(libs), 22)} ++ ss.source_files = ${ruby_multiline_list(grpc_test_util_files, 22)} + end + + # TODO (mxyan): Instead of this hack, add include path "third_party" to C core's include path? diff --git a/SOURCES/README.md b/SOURCES/README.md new file mode 100644 index 0000000..7955d69 --- /dev/null +++ b/SOURCES/README.md @@ -0,0 +1,3 @@ +# grpc + +The grpc package \ No newline at end of file diff --git a/SOURCES/grpc-0001-enforce-system-crypto-policies.patch b/SOURCES/grpc-0001-enforce-system-crypto-policies.patch new file mode 100644 index 0000000..14add7d --- /dev/null +++ b/SOURCES/grpc-0001-enforce-system-crypto-policies.patch @@ -0,0 +1,41 @@ +From 5d56d52e0829e503e403568de66bb6cebfec3202 Mon Sep 17 00:00:00 2001 +From: Sergey Avseyev +Date: Wed, 28 Nov 2018 18:53:22 +0300 +Subject: [PATCH 1/4] enforce system crypto policies + +--- + test/core/handshake/client_ssl.cc | 3 +-- + test/core/handshake/server_ssl_common.cc | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/test/core/handshake/client_ssl.cc b/test/core/handshake/client_ssl.cc +index 467df6e229..b31934e51b 100644 +--- a/test/core/handshake/client_ssl.cc ++++ b/test/core/handshake/client_ssl.cc +@@ -161,8 +161,7 @@ static void server_thread(void* arg) { + // Set the cipher list to match the one expressed in + // src/core/tsi/ssl_transport_security.c. + const char* cipher_list = +- "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-" +- "SHA384:ECDHE-RSA-AES256-GCM-SHA384"; ++ "PROFILE=SYSTEM"; + if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Couldn't set server cipher list."); +diff --git a/test/core/handshake/server_ssl_common.cc b/test/core/handshake/server_ssl_common.cc +index 41b2829d8b..8b21ea7c73 100644 +--- a/test/core/handshake/server_ssl_common.cc ++++ b/test/core/handshake/server_ssl_common.cc +@@ -167,8 +167,7 @@ bool server_ssl_test(const char* alpn_list[], unsigned int alpn_list_len, + // Set the cipher list to match the one expressed in + // src/core/tsi/ssl_transport_security.c. + const char* cipher_list = +- "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-" +- "SHA384:ECDHE-RSA-AES256-GCM-SHA384"; ++ "PROFILE=SYSTEM"; + if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Couldn't set server cipher list."); +-- +2.21.0 + diff --git a/SOURCES/grpc-1.26.0-core-tests-link-errors.patch b/SOURCES/grpc-1.26.0-core-tests-link-errors.patch new file mode 100644 index 0000000..48e6521 --- /dev/null +++ b/SOURCES/grpc-1.26.0-core-tests-link-errors.patch @@ -0,0 +1,11 @@ +diff -Naur grpc-1.26.0-original/CMakeLists.txt grpc-1.26.0/CMakeLists.txt +--- grpc-1.26.0-original/CMakeLists.txt 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/CMakeLists.txt 2021-03-15 09:17:35.873493405 -0400 +@@ -2609,6 +2609,7 @@ + ${_gRPC_ALLTARGETS_LIBRARIES} + gpr + grpc_unsecure ++ grpc + upb + ) + if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC) diff --git a/SOURCES/grpc-1.26.0-grpcio-tests-conditionalize-enum34.patch b/SOURCES/grpc-1.26.0-grpcio-tests-conditionalize-enum34.patch new file mode 100644 index 0000000..2a90d4f --- /dev/null +++ b/SOURCES/grpc-1.26.0-grpcio-tests-conditionalize-enum34.patch @@ -0,0 +1,21 @@ +diff -Naur grpc-1.26.0-original/src/python/grpcio_tests/setup.py grpc-1.26.0/src/python/grpcio_tests/setup.py +--- grpc-1.26.0-original/src/python/grpcio_tests/setup.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/src/python/grpcio_tests/setup.py 2021-02-02 09:11:20.236194502 -0500 +@@ -37,7 +37,7 @@ + } + + INSTALL_REQUIRES = ( +- 'coverage>=4.0', 'enum34>=1.0.4', ++ 'coverage>=4.0', + 'grpcio>={version}'.format(version=grpc_version.VERSION), + 'grpcio-channelz>={version}'.format(version=grpc_version.VERSION), + 'grpcio-status>={version}'.format(version=grpc_version.VERSION), +@@ -48,6 +48,8 @@ + + if not PY3: + INSTALL_REQUIRES += ('futures>=2.2.0',) ++if sys.version_info < (3, 4): ++ INSTALL_REQUIRES += ('enum34>=1.0.4',) + + COMMAND_CLASS = { + # Run `preprocess` *before* doing any packaging! diff --git a/SOURCES/grpc-1.26.0-grpcio_tests-make-network-tests-skippable.patch b/SOURCES/grpc-1.26.0-grpcio_tests-make-network-tests-skippable.patch new file mode 100644 index 0000000..a9307dd --- /dev/null +++ b/SOURCES/grpc-1.26.0-grpcio_tests-make-network-tests-skippable.patch @@ -0,0 +1,40 @@ +diff -Naur grpc-1.26.0-original/src/python/grpcio_tests/tests/interop/_secure_intraop_test.py grpc-1.26.0/src/python/grpcio_tests/tests/interop/_secure_intraop_test.py +--- grpc-1.26.0-original/src/python/grpcio_tests/tests/interop/_secure_intraop_test.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/src/python/grpcio_tests/tests/interop/_secure_intraop_test.py 2021-03-15 10:09:54.802317262 -0400 +@@ -13,6 +13,7 @@ + # limitations under the License. + """Secure client-server interoperability as a unit test.""" + ++import os + import unittest + + import grpc +@@ -29,6 +30,8 @@ + class SecureIntraopTest(_intraop_test_case.IntraopTestCase, unittest.TestCase): + + def setUp(self): ++ if 'FEDORA_NO_NETWORK_TESTS' in os.environ: ++ self.skipTest('Network tests disabled') + self.server = test_common.test_server() + test_pb2_grpc.add_TestServiceServicer_to_server(service.TestService(), + self.server) +diff -Naur grpc-1.26.0-original/src/python/grpcio_tests/tests/unit/_dns_resolver_test.py grpc-1.26.0/src/python/grpcio_tests/tests/unit/_dns_resolver_test.py +--- grpc-1.26.0-original/src/python/grpcio_tests/tests/unit/_dns_resolver_test.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/src/python/grpcio_tests/tests/unit/_dns_resolver_test.py 2021-03-15 10:08:08.159649736 -0400 +@@ -13,6 +13,7 @@ + # limitations under the License. + """Tests for an actual dns resolution.""" + ++import os + import unittest + import logging + import six +@@ -45,6 +46,8 @@ + def tearDown(self): + self._server.stop(None) + ++ @unittest.skipIf('FEDORA_NO_NETWORK_TESTS' in os.environ, ++ 'Network tests disabled') + def test_connect_loopback(self): + # NOTE(https://github.com/grpc/grpc/issues/18422) + # In short, Gevent + C-Ares = Segfault. The C-Ares driver is not diff --git a/SOURCES/grpc-1.26.0-python-SyntaxWarning.patch b/SOURCES/grpc-1.26.0-python-SyntaxWarning.patch new file mode 100644 index 0000000..1509310 --- /dev/null +++ b/SOURCES/grpc-1.26.0-python-SyntaxWarning.patch @@ -0,0 +1,14 @@ +Backport upstream commit 9e0b427893b65b220faf8a31a6afdc67f6f41364 “Use != with literals” + +diff -Naur grpc-1.26.0-original/src/python/grpcio/commands.py grpc-1.26.0/src/python/grpcio/commands.py +--- grpc-1.26.0-original/src/python/grpcio/commands.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/src/python/grpcio/commands.py 2021-01-28 12:51:33.635142522 -0500 +@@ -99,7 +99,7 @@ + target_dir = os.path.join(GRPC_STEM, 'doc', 'build') + exit_code = sphinx.cmd.build.build_main( + ['-b', 'html', '-W', '--keep-going', source_dir, target_dir]) +- if exit_code is not 0: ++ if exit_code: + raise CommandError( + "Documentation generation has warnings or errors") + diff --git a/SOURCES/grpc-1.26.0-python-grpcio_tests-fixture-super.patch b/SOURCES/grpc-1.26.0-python-grpcio_tests-fixture-super.patch new file mode 100644 index 0000000..ed99b1c --- /dev/null +++ b/SOURCES/grpc-1.26.0-python-grpcio_tests-fixture-super.patch @@ -0,0 +1,23 @@ +diff -Naur grpc-1.26.0-original/src/python/grpcio_tests/tests/health_check/_health_servicer_test.py grpc-1.26.0/src/python/grpcio_tests/tests/health_check/_health_servicer_test.py +--- grpc-1.26.0-original/src/python/grpcio_tests/tests/health_check/_health_servicer_test.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/src/python/grpcio_tests/tests/health_check/_health_servicer_test.py 2021-03-15 09:15:08.419558680 -0400 +@@ -235,8 +235,7 @@ + + def setUp(self): + self._thread_pool = thread_pool.RecordingThreadPool(max_workers=None) +- super(HealthServicerTest, self).start_server( +- non_blocking=True, thread_pool=self._thread_pool) ++ super().start_server(non_blocking=True, thread_pool=self._thread_pool) + + def test_check_empty_service(self): + request = health_pb2.HealthCheckRequest() +@@ -273,8 +272,7 @@ + class HealthServicerBackwardsCompatibleWatchTest(BaseWatchTests.WatchTests): + + def setUp(self): +- super(HealthServicerBackwardsCompatibleWatchTest, self).start_server( +- non_blocking=False, thread_pool=None) ++ super().start_server(non_blocking=False, thread_pool=None) + + + if __name__ == '__main__': diff --git a/SOURCES/grpc-1.26.0-python-grpcio_tools-use-system-protobuf.patch b/SOURCES/grpc-1.26.0-python-grpcio_tools-use-system-protobuf.patch new file mode 100644 index 0000000..6b42770 --- /dev/null +++ b/SOURCES/grpc-1.26.0-python-grpcio_tools-use-system-protobuf.patch @@ -0,0 +1,18 @@ +diff -Naur grpc-1.26.0-original/tools/distrib/python/grpcio_tools/protoc_lib_deps.py grpc-1.26.0/tools/distrib/python/grpcio_tools/protoc_lib_deps.py +--- grpc-1.26.0-original/tools/distrib/python/grpcio_tools/protoc_lib_deps.py 2019-12-17 20:29:27.000000000 -0500 ++++ grpc-1.26.0/tools/distrib/python/grpcio_tools/protoc_lib_deps.py 2021-01-29 09:37:57.182365074 -0500 +@@ -14,10 +14,9 @@ + # limitations under the License. + + # AUTO-GENERATED BY make_grpcio_tools.py! +-CC_FILES=['google/protobuf/compiler/zip_writer.cc', 'google/protobuf/compiler/subprocess.cc', 'google/protobuf/compiler/ruby/ruby_generator.cc', 'google/protobuf/compiler/python/python_generator.cc', 'google/protobuf/compiler/plugin.pb.cc', 'google/protobuf/compiler/plugin.cc', 'google/protobuf/compiler/php/php_generator.cc', 'google/protobuf/compiler/objectivec/objectivec_primitive_field.cc', 'google/protobuf/compiler/objectivec/objectivec_oneof.cc', 'google/protobuf/compiler/objectivec/objectivec_message_field.cc', 'google/protobuf/compiler/objectivec/objectivec_message.cc', 'google/protobuf/compiler/objectivec/objectivec_map_field.cc', 'google/protobuf/compiler/objectivec/objectivec_helpers.cc', 'google/protobuf/compiler/objectivec/objectivec_generator.cc', 'google/protobuf/compiler/objectivec/objectivec_file.cc', 'google/protobuf/compiler/objectivec/objectivec_field.cc', 'google/protobuf/compiler/objectivec/objectivec_extension.cc', 'google/protobuf/compiler/objectivec/objectivec_enum_field.cc', 'google/protobuf/compiler/objectivec/objectivec_enum.cc', 'google/protobuf/compiler/js/well_known_types_embed.cc', 'google/protobuf/compiler/js/js_generator.cc', 'google/protobuf/compiler/java/java_string_field_lite.cc', 'google/protobuf/compiler/java/java_string_field.cc', 'google/protobuf/compiler/java/java_shared_code_generator.cc', 'google/protobuf/compiler/java/java_service.cc', 'google/protobuf/compiler/java/java_primitive_field_lite.cc', 'google/protobuf/compiler/java/java_primitive_field.cc', 'google/protobuf/compiler/java/java_name_resolver.cc', 'google/protobuf/compiler/java/java_message_lite.cc', 'google/protobuf/compiler/java/java_message_field_lite.cc', 'google/protobuf/compiler/java/java_message_field.cc', 'google/protobuf/compiler/java/java_message_builder_lite.cc', 'google/protobuf/compiler/java/java_message_builder.cc', 'google/protobuf/compiler/java/java_message.cc', 'google/protobuf/compiler/java/java_map_field_lite.cc', 'google/protobuf/compiler/java/java_map_field.cc', 'google/protobuf/compiler/java/java_helpers.cc', 'google/protobuf/compiler/java/java_generator_factory.cc', 'google/protobuf/compiler/java/java_generator.cc', 'google/protobuf/compiler/java/java_file.cc', 'google/protobuf/compiler/java/java_field.cc', 'google/protobuf/compiler/java/java_extension_lite.cc', 'google/protobuf/compiler/java/java_extension.cc', 'google/protobuf/compiler/java/java_enum_lite.cc', 'google/protobuf/compiler/java/java_enum_field_lite.cc', 'google/protobuf/compiler/java/java_enum_field.cc', 'google/protobuf/compiler/java/java_enum.cc', 'google/protobuf/compiler/java/java_doc_comment.cc', 'google/protobuf/compiler/java/java_context.cc', 'google/protobuf/compiler/csharp/csharp_wrapper_field.cc', 'google/protobuf/compiler/csharp/csharp_source_generator_base.cc', 'google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_message_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_reflection_class.cc', 'google/protobuf/compiler/csharp/csharp_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_message_field.cc', 'google/protobuf/compiler/csharp/csharp_message.cc', 'google/protobuf/compiler/csharp/csharp_map_field.cc', 'google/protobuf/compiler/csharp/csharp_helpers.cc', 'google/protobuf/compiler/csharp/csharp_generator.cc', 'google/protobuf/compiler/csharp/csharp_field_base.cc', 'google/protobuf/compiler/csharp/csharp_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_enum.cc', 'google/protobuf/compiler/csharp/csharp_doc_comment.cc', 'google/protobuf/compiler/cpp/cpp_string_field.cc', 'google/protobuf/compiler/cpp/cpp_service.cc', 'google/protobuf/compiler/cpp/cpp_primitive_field.cc', 'google/protobuf/compiler/cpp/cpp_padding_optimizer.cc', 'google/protobuf/compiler/cpp/cpp_message_field.cc', 'google/protobuf/compiler/cpp/cpp_message.cc', 'google/protobuf/compiler/cpp/cpp_map_field.cc', 'google/protobuf/compiler/cpp/cpp_helpers.cc', 'google/protobuf/compiler/cpp/cpp_generator.cc', 'google/protobuf/compiler/cpp/cpp_file.cc', 'google/protobuf/compiler/cpp/cpp_field.cc', 'google/protobuf/compiler/cpp/cpp_extension.cc', 'google/protobuf/compiler/cpp/cpp_enum_field.cc', 'google/protobuf/compiler/cpp/cpp_enum.cc', 'google/protobuf/compiler/command_line_interface.cc', 'google/protobuf/compiler/code_generator.cc', 'google/protobuf/wrappers.pb.cc', 'google/protobuf/wire_format.cc', 'google/protobuf/util/type_resolver_util.cc', 'google/protobuf/util/time_util.cc', 'google/protobuf/util/message_differencer.cc', 'google/protobuf/util/json_util.cc', 'google/protobuf/util/internal/utility.cc', 'google/protobuf/util/internal/type_info_test_helper.cc', 'google/protobuf/util/internal/type_info.cc', 'google/protobuf/util/internal/protostream_objectwriter.cc', 'google/protobuf/util/internal/protostream_objectsource.cc', 'google/protobuf/util/internal/proto_writer.cc', 'google/protobuf/util/internal/object_writer.cc', 'google/protobuf/util/internal/json_stream_parser.cc', 'google/protobuf/util/internal/json_objectwriter.cc', 'google/protobuf/util/internal/json_escaping.cc', 'google/protobuf/util/internal/field_mask_utility.cc', 'google/protobuf/util/internal/error_listener.cc', 'google/protobuf/util/internal/default_value_objectwriter.cc', 'google/protobuf/util/internal/datapiece.cc', 'google/protobuf/util/field_mask_util.cc', 'google/protobuf/util/field_comparator.cc', 'google/protobuf/util/delimited_message_util.cc', 'google/protobuf/unknown_field_set.cc', 'google/protobuf/type.pb.cc', 'google/protobuf/timestamp.pb.cc', 'google/protobuf/text_format.cc', 'google/protobuf/stubs/substitute.cc', 'google/protobuf/stubs/mathlimits.cc', 'google/protobuf/struct.pb.cc', 'google/protobuf/source_context.pb.cc', 'google/protobuf/service.cc', 'google/protobuf/reflection_ops.cc', 'google/protobuf/message.cc', 'google/protobuf/map_field.cc', 'google/protobuf/io/zero_copy_stream_impl.cc', 'google/protobuf/io/tokenizer.cc', 'google/protobuf/io/printer.cc', 'google/protobuf/io/gzip_stream.cc', 'google/protobuf/generated_message_table_driven.cc', 'google/protobuf/generated_message_reflection.cc', 'google/protobuf/field_mask.pb.cc', 'google/protobuf/extension_set_heavy.cc', 'google/protobuf/empty.pb.cc', 'google/protobuf/dynamic_message.cc', 'google/protobuf/duration.pb.cc', 'google/protobuf/descriptor_database.cc', 'google/protobuf/descriptor.pb.cc', 'google/protobuf/descriptor.cc', 'google/protobuf/compiler/parser.cc', 'google/protobuf/compiler/importer.cc', 'google/protobuf/api.pb.cc', 'google/protobuf/any.pb.cc', 'google/protobuf/any.cc', 'google/protobuf/wire_format_lite.cc', 'google/protobuf/stubs/time.cc', 'google/protobuf/stubs/strutil.cc', 'google/protobuf/stubs/structurally_valid.cc', 'google/protobuf/stubs/stringprintf.cc', 'google/protobuf/stubs/stringpiece.cc', 'google/protobuf/stubs/statusor.cc', 'google/protobuf/stubs/status.cc', 'google/protobuf/stubs/int128.cc', 'google/protobuf/stubs/common.cc', 'google/protobuf/stubs/bytestream.cc', 'google/protobuf/repeated_field.cc', 'google/protobuf/parse_context.cc', 'google/protobuf/message_lite.cc', 'google/protobuf/io/zero_copy_stream_impl_lite.cc', 'google/protobuf/io/zero_copy_stream.cc', 'google/protobuf/io/strtod.cc', 'google/protobuf/io/io_win32.cc', 'google/protobuf/io/coded_stream.cc', 'google/protobuf/implicit_weak_message.cc', 'google/protobuf/generated_message_util.cc', 'google/protobuf/generated_message_table_driven_lite.cc', 'google/protobuf/extension_set.cc', 'google/protobuf/arena.cc', 'google/protobuf/any_lite.cc'] ++# Then, modified by hand to build with an external system protobuf installation. ++CC_FILES=[] + PROTO_FILES=['google/protobuf/wrappers.proto', 'google/protobuf/type.proto', 'google/protobuf/timestamp.proto', 'google/protobuf/struct.proto', 'google/protobuf/source_context.proto', 'google/protobuf/field_mask.proto', 'google/protobuf/empty.proto', 'google/protobuf/duration.proto', 'google/protobuf/descriptor.proto', 'google/protobuf/compiler/plugin.proto', 'google/protobuf/api.proto', 'google/protobuf/any.proto'] + +-CC_INCLUDE='third_party/protobuf/src' +-PROTO_INCLUDE='third_party/protobuf/src' +- +-PROTOBUF_SUBMODULE_VERSION="09745575a923640154bcf307fba8aedff47f240a" ++CC_INCLUDE='/usr/include' ++PROTO_INCLUDE='/usr/include' diff --git a/SOURCES/grpc-1.36.0-python-grpcio_tests-skip-compression-tests.patch b/SOURCES/grpc-1.36.0-python-grpcio_tests-skip-compression-tests.patch new file mode 100644 index 0000000..08f1892 --- /dev/null +++ b/SOURCES/grpc-1.36.0-python-grpcio_tests-skip-compression-tests.patch @@ -0,0 +1,21 @@ +diff -Naur grpc-1.36.0-original/src/python/grpcio_tests/tests/unit/_compression_test.py grpc-1.36.0/src/python/grpcio_tests/tests/unit/_compression_test.py +--- grpc-1.36.0-original/src/python/grpcio_tests/tests/unit/_compression_test.py 2021-02-23 16:34:43.000000000 -0500 ++++ grpc-1.36.0/src/python/grpcio_tests/tests/unit/_compression_test.py 2021-03-03 09:41:03.076816980 -0500 +@@ -318,6 +318,7 @@ + else: + self.assertNotCompressed(received_ratio) + ++ @unittest.skip('Wrong compression ratio may occur; unknown cause') + def testDisableNextCompressionStreaming(self): + server_kwargs = { + 'compression': grpc.Compression.Deflate, +@@ -372,6 +373,9 @@ + def _test_compression(self): + self.assertConfigurationCompressed(**kwargs) + ++ _test_compression = unittest.skip( ++ 'Wrong compression ratio may occur; unknown cause' ++ )(_test_compression) + return _test_compression + + setattr(CompressionTest, _get_compression_test_name(**options), diff --git a/SOURCES/grpc.rpmlintrc b/SOURCES/grpc.rpmlintrc new file mode 100644 index 0000000..5f9e915 --- /dev/null +++ b/SOURCES/grpc.rpmlintrc @@ -0,0 +1,16 @@ +# These are not real spelling errors... +addFilter(r' spelling-error .*[ \(]en_US\)? (microservices|auth|gRPC|' + r'channelz|proto(buf)?|unary|rpc)|grpcio ') +# Maybe some of these are supposed to be CRNL-terminated: +addFilter(r' wrong-file-end-of-line-encoding ' + r'/usr/share/doc/grpc/examples/csharp/') +# We generally follow upstream package metadata for these: +addFilter(r' description-shorter-than-summary') +# Many subpackages do not have their own documentation! +addFilter(r' no-documentation') +# We believe we have patched all calls to SSL_CTX_set_cipher_list with +# hard-coded values to use "PROFILE=SYSTEM" instead, thereby complying with the +# system policy. +addFilter(r' crypto-policy-non-compliance-openssl .* SSL_CTX_set_cipher_list') +# These will not dangle after the ca-certificates dependency is installed: +addFilter(r' dangling-relative-symlink .*\.pem$') diff --git a/SPECS/grpc.spec b/SPECS/grpc.spec new file mode 100644 index 0000000..757bc9b --- /dev/null +++ b/SPECS/grpc.spec @@ -0,0 +1,1292 @@ +# In gtest 1.36, we must link against the system abseil-cpp. We get linker +# errors here if we are not using C++17. + +# However, gtest in Fedora uses the C++11 ABI, so we get linker errors building +# the tests if we use C++17. We must therefore bundle a copy of gtest in the +# source RPM rather than using the system copy. This is to be discouraged, but +# there is no alternative in this case. It is not treated as a bundled library +# because it is used only at build time, and is not installed. +%global gtest_version 1.10.0 +%bcond_without system_gtest + +# The CMake build works, except grpc_cli is only built with the tests. +%bcond_with cmake + +# Note that, in this spec file, building the tests requires using CMake. +%bcond_with core_tests + +# A few failing Python “test_lite” tests are skipped without understanding. +# This lets us easily re-enable them to try to work toward a fix or a useful +# upstream bug report. +%bcond_with unexplained_failing_python_lite_tests + +# A great many of these tests (over 20%) fail. Any help in understanding these +# well enough to fix them or report them upstream is welcome. +%bcond_with python_aio_tests + +# Several of these still fail. We should try to work toward re-enabling this. +%bcond_with python_gevent_tests + +Name: grpc +Version: 1.26.0 +Release: 15%{?dist} +Summary: RPC library and framework + +# CMakeLists.txt: gRPC_CORE_SOVERSION +%global c_so_version 9 +# CMakeLists.txt: gRPC_CPP_SOVERSION +%global cpp_so_version 1 +# CMakeLists.txt: gRPC_CSHARP_SOVERSION +%global csharp_so_version 2 + +# The entire source is ASL 2.0 except the following: +# +# BSD: +# - third_party/upb/, except third_party/upb/third_party/lunit/ +# * Potentially linked into any compiled subpackage (but not -doc, +# pure-Python subpackages, etc.) +# - third_party/address_sorting/ +# * Potentially linked into any compiled subpackage (but not -doc, +# pure-Python subpackages, etc.) +# +# as well as the following which do not contribute to the base License field or +# any subpackage License field for the reasons noted: +# +# MPLv2.0: +# - etc/roots.pem +# * Truncated to an empty file in prep; a symlink to the shared system +# certificates is used instead +# - src/android/test/interop/app/src/main/assets/roots.pem +# * Truncated to an empty file in prep +# ISC: +# - src/boringssl/crypto_test_data.cc and src/boringssl/err_data.c +# * Removed in prep; not used when building with system OpenSSL +# BSD: +# - src/objective-c/*.podspec and templates/src/objective-c/*.podspec.template +# * Unused since the Objective-C bindings are not currently built +# MIT: +# - third_party/cares/ares_build.h +# * Removed in prep; header from system C-Ares used instead +# - third_party/rake-compiler-dock/ +# * Removed in prep, since we build no containers +# - third_party/upb/third_party/lunit/ +# * Removed in prep, since there is no obvious way to run the upb tests +License: ASL 2.0 and BSD +URL: https://www.%{name}.io +%global forgeurl https://github.com/%{name}/%{name}/ +Source0: %{forgeurl}/archive/v%{version}/%{name}-%{version}.tar.gz +# Used only at build time (not a bundled library); see notes at definition of +# gtest_version macro for explanation and justification. +%global gtest_url https://github.com/google/googletest +%global gtest_archivename googletest-release-%{gtest_version} +Source1: https://github.com/google/googletest/archive/release-%{gtest_version}/%{gtest_archivename}.tar.gz + +# ~~~~ C (core) and C++ (cpp) ~~~~ + +BuildRequires: gcc-c++ +%if %{with cmake} +BuildRequires: cmake +BuildRequires: ninja-build +%else +BuildRequires: make +%endif +BuildRequires: chrpath + +BuildRequires: pkgconfig(zlib) +BuildRequires: cmake(gflags) +BuildRequires: pkgconfig(protobuf) +BuildRequires: protobuf-compiler + +BuildRequires: pkgconfig(openssl) +BuildRequires: cmake(c-ares) + +%if %{with core_tests} +BuildRequires: cmake(benchmark) +%if %{with system_gtest} +BuildRequires: cmake(gtest) +BuildRequires: pkgconfig(gmock) +BuildRequires: pkgconfig(libprofiler) +%endif +%endif + +# ~~~~ Python ~~~~ + +%global set_grpc_python_environment %{expand: +export GRPC_PYTHON_BUILD_WITH_CYTHON='True' +export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL='True' +export GRPC_PYTHON_BUILD_SYSTEM_ZLIB='True' +export GRPC_PYTHON_BUILD_SYSTEM_CARES='True' +export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY='True' +export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD='True' +} + +BuildRequires: python3-devel +BuildRequires: python3dist(setuptools) + +# grpcio (setup.py) setup_requires (with +# GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD): +BuildRequires: python3dist(sphinx) + +# grpcio (setup.py) setup_requires (with +# GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD): +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(six) >= 1.10 +# grpcio (setup.py) install_requires also has: +# six>=1.5.2 + +# grpcio (setup.py) setup_requires (with GRPC_PYTHON_BUILD_WITH_CYTHON, or +# absent generated sources); also needed for grpcio_tools +# (tools/distrib/python/grpcio_tools/setup.py) +BuildRequires: python3dist(cython) + +# grpcio (setup.py) install_requires: +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +# futures>=2.2.0; python_version<'3.2' + +# grpcio (setup.py) install_requires: +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +# enum34>=1.0.4; python_version<'3.4' + +# grpcio_channelz (src/python/grpcio_channelz/setup.py) install_requires: +# grpcio_health_checking (src/python/grpcio_health_checking/setup.py) +# install_requires: +# grpcio_reflection (src/python/grpcio_reflection/setup.py) install_requires: +# grpcio_status (src/python/grpcio_status/setup.py) install_requires: +# grpcio_testing (src/python/grpcio_testing/setup.py) install_requires: +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(protobuf) >= 3.6.0 +# grpcio_tools (tools/distrib/python/grpcio_tools/setup.py) install_requires +# also has: +# protobuf>=3.5.0.post1 +# which is written as +# python3dist(protobuf) >= 3.5^post1 + +# grpcio_status (src/python/grpcio_status/setup.py) install_requires: +BuildRequires: python3dist(googleapis-common-protos) >= 1.5.5 + +# Several packages have dependencies on grpcio or grpcio_tools—and grpcio-tests +# depends on all of the other Python packages—which are satisfied within this +# package. + +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(coverage) >= 4.0 + +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(oauth2client) >= 1.4.7 + +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(google-auth) >= 1.0.0 + +# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires: +BuildRequires: python3dist(requests) >= 2.4.12 + +# Required for “test_gevent” tests: +BuildRequires: python3dist(gevent) + +# ~~~~ Miscellaneous ~~~~ + +# https://bugzilla.redhat.com/show_bug.cgi?id=1893533 +%global _lto_cflags %{nil} + +# Reference documentation +BuildRequires: doxygen + +BuildRequires: ca-certificates +# For converting absolute symlinks in the buildroot to relative ones +BuildRequires: symlinks + +BuildRequires: dos2unix + +# Apply Fedora system crypto policies. Since this is Fedora-specific, the patch +# is not suitable for upstream. +# https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications +Patch0: %{name}-0001-enforce-system-crypto-policies.patch +# Make gRPC podspec template more robust +# https://github.com/grpc/grpc/pull/21445 +Patch3: 99f8a10aec994a8957fbb6787768b444ef34d6a2.patch +# Remove grpc sources from grpc++ +# https://github.com/grpc/grpc/pull/21662 +Patch4: 72351f63fd650cc7acfcd2d0307e8e8e8f777283.patch +# Backport upstream commit 9e0b427893b65b220faf8a31a6afdc67f6f41364 “Use != +# with literals” +Patch6: %{name}-1.26.0-python-SyntaxWarning.patch +# Build python3-grpcio_tools against system protobuf packages instead of +# expecting a git submodule. Must also add requisite linker flags using +# GRPC_PYTHON_LDFLAGS. +Patch8: %{name}-1.26.0-python-grpcio_tools-use-system-protobuf.patch +# In grpcio-tests, require enum34 for install only on those ancient Pythons +# that require it; we are not using such a Python! +Patch10: %{name}-1.26.0-grpcio-tests-conditionalize-enum34.patch +# Fix errors like: +# TypeError: super(type, obj): obj must be an instance or subtype of type +# It is not clear why these occur. +Patch11: %{name}-1.26.0-python-grpcio_tests-fixture-super.patch +# Skip tests requiring non-loopback network access when the +# FEDORA_NO_NETWORK_TESTS environment variable is set. +Patch12: %{name}-1.26.0-grpcio_tests-make-network-tests-skippable.patch +# Fix link errors in the core tests: the test library grpc_test_util_unsecure +# does require the “secure” library “grpc” +Patch13: %{name}-1.26.0-core-tests-link-errors.patch +# A handful of compression tests miss the compression ratio threshold. It seems +# to be inconsistent which particular combinations fail in a particular test +# run. It is not clear that this is a real problem. Any help in understanding +# the actual cause well enough to fix this or usefully report it upstream is +# welcome. +Patch14: %{name}-1.36.0-python-grpcio_tests-skip-compression-tests.patch + +Requires: %{name}-data = %{version}-%{release} + +# Upstream https://github.com/protocolbuffers/upb does not support building +# with anything other than Bazel, and Bazel is not likely to make it into +# Fedora anytime soon due to its nightmarish collection of dependencies. +# Monitor this at https://bugzilla.redhat.com/show_bug.cgi?id=1470842. +# Therefore upb cannot be packaged for Fedora, and we must use the bundled copy. +# +# Note that upstream has never chosen a version, and it is not clear from which +# commit the bundled copy was taken or forked. +# +# Note also that libupb is installed in the system-wide linker path, which will +# be a problem if upb is ever packaged separately. We will cross that bridge if +# we get there. +Provides: bundled(upb) + +# Regarding third_party/address_sorting: this looks a bit like a bundled +# library, but it is not. From a source file comment: +# This is an adaptation of Android's implementation of RFC 6724 (in Android’s +# getaddrinfo.c). It has some cosmetic differences from Android’s +# getaddrinfo.c, but Android’s getaddrinfo.c was used as a guide or example +# of a way to implement the RFC 6724 spec when this was written. + +%description +gRPC is a modern open source high performance RPC framework that can run in any +environment. It can efficiently connect services in and across data centers +with pluggable support for load balancing, tracing, health checking and +authentication. It is also applicable in last mile of distributed computing to +connect devices, mobile applications and browsers to backend services. + +The main usage scenarios: + + • Efficiently connecting polyglot services in microservices style architecture + • Connecting mobile devices, browser clients to backend services + • Generating efficient client libraries + +Core Features that make it awesome: + + • Idiomatic client libraries in 10 languages + • Highly efficient on wire and with a simple service definition framework + • Bi-directional streaming with http/2 based transport + • Pluggable auth, tracing, load balancing and health checking + +This package provides the shared C core library. + + +%package data +Summary: Data for gRPC bindings +License: ASL 2.0 +BuildArch: noarch + +Requires: ca-certificates + +%description data +Common data for gRPC bindings: currently, this contains only a symbolic link to +the system shared TLS certificates. + + +%package doc +Summary: Documentation and examples for gRPC +License: ASL 2.0 +BuildArch: noarch + +Obsoletes: python-grpcio-doc < 1.26.0-13 +Provides: python-grpcio-doc = %{version}-%{release} +Provides: python-grpcio-channelz-doc = %{version}-%{release} +Provides: python-grpcio-health-checking-doc = %{version}-%{release} +Provides: python-grpcio-reflection-doc = %{version}-%{release} +Provides: python-grpcio-status-doc = %{version}-%{release} +Provides: python-grpcio-testing-doc = %{version}-%{release} + +%description doc +Documentation and examples for gRPC, including documentation for the following: + + • C (core) + ○ API + ○ Internals + • C++ + ○ API + ○ Internals + • Objective C + ○ API + ○ Internals + • Python + ○ grpcio + ○ grpcio_channelz + ○ grpcio_health_checking + ○ grpcio_reflection + ○ grpcio_status + ○ grpcio_testing + + +%package cpp +Summary: C++ language bindings for gRPC +# License: same as base package +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description cpp +C++ language bindings for gRPC. + + +%package plugins +Summary: Protocol buffers compiler plugins for gRPC +# License: same as base package +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: protobuf-compiler + +%description plugins +Plugins to the protocol buffers compiler to generate gRPC sources. + + +%package cli +Summary: Command-line tool for gRPC +# License: same as base package +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description cli +The command line tool can do the following things: + + • Send unary rpc. + • Attach metadata and display received metadata. + • Handle common authentication to server. + • Infer request/response types from server reflection result. + • Find the request/response types from a given proto file. + • Read proto request in text form. + • Read request in wire form (for protobuf messages, this means serialized + binary form). + • Display proto response in text form. + • Write response in wire form to a file. + + +%package devel +Summary: Development files for gRPC library +# License: same as base package +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-cpp%{?_isa} = %{version}-%{release} +Requires: cmake-filesystem + +%description devel +Development headers and files for gRPC libraries (both C and C++). + + +%package -n python3-grpcio +Summary: Python language bindings for gRPC +# License: same as base package +%if 0%{?fedora} == 32 +%py_provides python3-grpcio +%endif + +# Note that the Python package has no runtime dependency on the base C library; +# everything it needs is bundled. +Requires: %{name}-data = %{version}-%{release} + +%description -n python3-grpcio +Python language bindings for gRPC (HTTP/2-based RPC framework). + + +%package -n python3-grpcio-tools +Summary: Package for gRPC Python tools +# License: same as base package +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-tools +%endif + +%description -n python3-grpcio-tools +Package for gRPC Python tools. + + +%package -n python3-grpcio-channelz +Summary: Channel Level Live Debug Information Service for gRPC +License: ASL 2.0 +BuildArch: noarch +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-channelz +%endif + +%description -n python3-grpcio-channelz +Channelz is a live debug tool in gRPC Python. + + +%package -n python3-grpcio-health-checking +Summary: Standard Health Checking Service for gRPC +License: ASL 2.0 +BuildArch: noarch +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-health-checking +%endif + +%description -n python3-grpcio-health-checking +Reference package for GRPC Python health checking. + + +%package -n python3-grpcio-reflection +Summary: Standard Protobuf Reflection Service for gRPC +License: ASL 2.0 +BuildArch: noarch +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-reflections +%endif + +%description -n python3-grpcio-reflection +Reference package for reflection in GRPC Python. + + +%package -n python3-grpcio-status +Summary: Status proto mapping for gRPC +License: ASL 2.0 +BuildArch: noarch +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-status +%endif + +%description -n python3-grpcio-status +Reference package for GRPC Python status proto mapping. + + +%package -n python3-grpcio-testing +Summary: Testing utilities for gRPC Python +License: ASL 2.0 +BuildArch: noarch +%if 0%{?fedora} == 32 +%py_provides python3-grpcio-testing +%endif + +%description -n python3-grpcio-testing +Testing utilities for gRPC Python. + + +%prep +%autosetup -p1 +%if %{without cmake} +sed -i \ + -e 's:^prefix ?= .*:prefix ?= %{_prefix}:' \ + -e 's:$(prefix)/lib:$(prefix)/%{_lib}:' \ + -e 's:^GTEST_LIB =.*::' Makefile +%endif + +%if %{without system_gtest} +# Copy in the needed gtest/gmock implementations. +%setup -q -T -D -b 1 +rm -rvf 'third_party/googletest' +mv '../%{gtest_archivename}' 'third_party/googletest' +%else +# Patch CMakeLists for external gtest/gmock. +# +# 1. Create dummy sources, adding a typedef so the translation unit is not +# empty, rather than removing references to these sources from +# CMakeLists.txt. This is so that we do not end up with executables with no +# sources, only libraries, which is a CMake error. +# 2. Either remove references to the corresponding include directories, or +# create the directories and leave them empty. +# 3. “Stuff” the external library into the target_link_libraries() for each +# test by noting that GMock/GTest/GFlags are always used together. +for gwhat in test mock +do + mkdir -p "third_party/googletest/google${gwhat}/src" \ + "third_party/googletest/google${gwhat}/include" + echo "typedef int dummy_${gwhat}_type;" \ + > "third_party/googletest/google${gwhat}/src/g${gwhat}-all.cc" +done +sed -r -i 's/^([[:blank:]]*)(\$\{_gRPC_GFLAGS_LIBRARIES\})/'\ +'\1\2\n\1gtest\n\1gmock/' CMakeLists.txt +%endif + +# Currently, the correct flags for linking against the gflags shared library +# are silently not found. Since the gflags dependency goes away in a later +# version of grpc, we just hack in the correct flags rather than taking the +# time to fix it properly. +sed -r -i 's/^([[:blank:]]*)(\$\{_gRPC_GFLAGS_LIBRARIES\})/'\ +'\1gflags_shared/' CMakeLists.txt + +# Fix some of the weirdest accidentally-executable files +find . -type f -name '*.md' -perm /0111 -execdir chmod -v a-x '{}' '+' + +# Allow building Python documentation with a newer Sphinx; the upstream version +# requirement is needlessly strict. (It is fine for upstream’s own purposes, as +# they are happy to build documentation with a pinned old version.) +sed -r -i "s/('Sphinx)~=.*'/\1'/" setup.py + +# Remove unused sources that have licenses not in the License field, to ensure +# they are not accidentally used in the build. See the comment above the base +# package License field for more details. +rm -rfv \ + src/boringssl/*.c src/boringssl/*.cc \ + third_party/cares/ares_build.h \ + third_party/rake-compiler-dock \ + third_party/upb/third_party/lunit +# Since we are replacing roots.pem with a symlink to the shared system +# certificates, we do not include its license (MPLv2.0) in any License field. +# We remove its contents so that, if we make a packaging mistake, we will have +# a bug but not an incorrect License field. +echo '' > etc/roots.pem + +# Remove Android sources and examples. We do not need these on Linux, and they +# have some issues that will be flagged when reviewing the package, such as: +# - Another copy of the MPLv2.0-licensed certificate bundle from +# etc/roots.pem, in src/android/test/interop/app/src/main/assets/roots.pem +# - Pre-built jar files at +# src/android/test/interop/gradle/wrapper/gradle-wrapper.jar and +# examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar +rm -rvf examples/android src/android + +# Remove unwanted .gitignore files, generally in examples. One could argue that +# a sample .gitignore file is part of the example, but, well, we’re not going +# to do that. +find . -type f -name .gitignore -print -delete + +# Find executables with /usr/bin/env shebangs in the examples, and fix them. +find examples -type f -perm /0111 | + while read -r fn + do + if head -n 1 "${fn}" | grep -E '^#!/usr/bin/env[[:blank:]]' + then + sed -r -i '1{s|^(#!/usr/bin/)env[[:blank:]]+([^[:blank:]]+)|\1\2|}' \ + "${fn}" + fi + done + +# Fix some CRNL line endings: +dos2unix \ + examples/cpp/helloworld/CMakeLists.txt \ + examples/cpp/helloworld/cmake_externalproject/CMakeLists.txt +# We leave those under examples/csharp alone. + +# Fix the install path for .pc files +# https://github.com/grpc/grpc/issues/25635 +sed -r -i 's|lib(/pkgconfig)|\${gRPC_INSTALL_LIBDIR}\1|' CMakeLists.txt + +%if %{without unexplained_failing_python_lite_tests} +%ifarch %{arm32} +# TODO figure out how to report this upstream in a useful/actionable way +sed -r -i "s/^([[:blank:]]*)(def test_concurrent_stream_stream)\\b/\ +\\1@unittest.skip('May hang unexplainedly')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/testing/_client_test.py' +%endif +%ifarch %{ix86} %{arm32} +# These tests fail with: +# OverflowError: Python int too large to convert to C ssize_t +# TODO figure out how to report this upstream in a useful/actionable way +sed -r -i \ + "s/^([[:blank:]]*)(def test(SSLSessionCacheLRU|SessionResumption))\\b/\ +\\1@unittest.skip('Unexplained overflow error on 32-bit')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/_auth_context_test.py' \ + 'src/python/grpcio_tests/tests/unit/_session_cache_test.py' +%endif + +# These will no longer be a problem on grpc 1.36: +sed -r -i \ + "s/^([[:blank:]]*)(class SecureServerSecureClient\(.*:)$/\ +\\1@unittest.skip('Unexplained hang')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/_cython/cygrpc_test.py' +sed -r -i \ + "s/^([[:blank:]]*)(def test_(stream_unary|unary_stream))\\b/\ +\\1@unittest.skip('Unexplained hang')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/beta/_beta_features_test.py' +sed -r -i \ + "s/^([[:blank:]]*)(def test(Secure(No|Client)Cert|SessionResumption))\\b/\ +\\1@unittest.skip('Invalid cert chain file')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/_auth_context_test.py' +%ifnarch %{ix86} %{arm32} +# (otherwise this was already done above) +sed -r -i \ + "s/^([[:blank:]]*)(def testSSLSessionCacheLRU)\\b/\ +\\1@unittest.skip('Invalid cert chain file')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/_session_cache_test.py' +%endif +sed -r -i \ + "s/^([[:blank:]]*)(def test_(stream_stream|unary_unary|stub_context))\\b/\ +\\1@unittest.skip('Invalid cert chain file')\\n\\1\\2/" \ + 'src/python/grpcio_tests/tests/unit/beta/_beta_features_test.py' +%endif + + +%build +# ~~~~ C (core) and C++ (cpp) ~~~~ + +%if %{with cmake} +# We could use either make or ninja as the backend; ninja is faster and has no +# disadvantages (except a small additional BR, given we already need Python) +%cmake \ + -DgRPC_INSTALL:BOOL=ON \ + -DgRPC_INSTALL_BINDIR:PATH=%{_bindir} \ + -DgRPC_INSTALL_LIBDIR:PATH=%{_libdir} \ + -DgRPC_INSTALL_INCLUDEDIR:PATH=%{_includedir} \ + -DgRPC_INSTALL_CMAKEDIR:PATH=%{_libdir}/cmake/%{name} \ + -DgRPC_INSTALL_SHAREDIR:PATH=%{_datadir}/%{name} \ + -DgRPC_BUILD_TESTS:BOOL=%{?with_core_tests:ON}%{?!with_core_tests:OFF} \ + -DgRPC_BUILD_CODEGEN:BOOL=ON \ + -DgRPC_BUILD_CSHARP_EXT:BOOL=ON \ + -DgRPC_BACKWARDS_COMPATIBILITY_MODE:BOOL=OFF \ + -DgRPC_ZLIB_PROVIDER:STRING='package' \ + -DgRPC_CARES_PROVIDER:STRING='package' \ + -DgRPC_SSL_PROVIDER:STRING='package' \ + -DgRPC_PROTOBUF_PROVIDER:STRING='package' \ + -DgRPC_PROTOBUF_PACKAGE_TYPE:STRING='MODULE' \ + -DgRPC_GFLAGS_PROVIDER:STRING='package' \ + -DgRPC_BENCHMARK_PROVIDER:STRING='package' \ + -DgRPC_USE_PROTO_LITE:BOOL=OFF \ + -DgRPC_BUILD_GRPC_CPP_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_CSHARP_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_NODE_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_PHP_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_PYTHON_PLUGIN:BOOL=ON \ + -DgRPC_BUILD_GRPC_RUBY_PLUGIN:BOOL=ON \ + -GNinja +%cmake_build +%else +%set_build_flags +# Default targets are: static shared plugins +%make_build shared plugins +%endif + +# ~~~~ Python ~~~~ + +# Since we will need all of the Python packages for the documentation build, +# and there are some other interdependencies (e.g., many have setup_requires: +# grpcio-tools), we do a temporary install of the built packages into a local +# directory, and add it to the PYTHONPATH. +PYROOT="${PWD}/%{_vpath_builddir}/pyroot" +if [ -n "${PYTHONPATH-}" ]; then PYTHONPATH="${PYTHONPATH}:"; fi +PYTHONPATH="${PYTHONPATH-}${PYROOT}%{python3_sitelib}" +PYTHONPATH="${PYTHONPATH}:${PYROOT}%{python3_sitearch}" +export PYTHONPATH + +# ~~ grpcio ~~ +%set_grpc_python_environment +# We must set GRPC_PYTHON_CFLAGS to avoid unwanted defaults. We take the +# upstream flags except that we remove -std=c99, which is inapplicable to the +# C++ parts of the extension. +# +# We must set GRPC_PYTHON_LDFLAGS to avoid unwanted defaults. The upstream +# flags attempt to statically link libgcc, so we do not need any of them. Since +# we forcibly unbundle protobuf, we need to add linker flags for protobuf +# ourselves. +export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions $( + pkg-config --cflags protobuf +)" +export GRPC_PYTHON_LDFLAGS="$(pkg-config --libs protobuf)" +%py3_build +%{__python3} %{py_setup} %{?py_setup_args} install \ + -O1 --skip-build --root "${PYROOT}" + +# ~~ grpcio-tools ~~ +pushd "tools/distrib/python/grpcio_tools/" >/dev/null +# When copying more things in here, make sure the subpackage License field +# stays correct. We need copies, not symlinks, so that the “graft” in +# MANIFEST.in works. +mkdir -p %{name}_root/src +for srcdir in compiler +do + cp -rp "../../../../src/${srcdir}" "%{name}_root/src/" +done +cp -rp '../../../../include' '%{name}_root/' +# We must set GRPC_PYTHON_CFLAGS and GRPC_PYTHON_LDFLAGS again; grpcio_tools +# does not have the same default upstream flags as grpcio does, and it needs to +# link the protobuf compiler library. +export GRPC_PYTHON_CFLAGS="-fno-wrapv -frtti $(pkg-config --cflags protobuf)" +export GRPC_PYTHON_LDFLAGS="$(pkg-config --libs protobuf) -lprotoc" +%py3_build +# Remove unwanted shebang from grpc_tools.protoc source file, which will be +# installed without an executable bit: +find . -type f -name protoc.py -execdir sed -r -i '1{/^#!/d}' '{}' '+' +%{__python3} %{py_setup} %{?py_setup_args} install \ + -O1 --skip-build --root "${PYROOT}" +popd >/dev/null + +# ~~ pure-python modules grpcio-* ~~ +for suffix in channelz health_checking reflection status testing tests +do + echo "----> grpcio_${suffix} <----" 1>&2 + pushd "src/python/grpcio_${suffix}/" >/dev/null + %{__python3} %{py_setup} %{?py_setup_args} preprocess + if [ "${suffix}" != 'testing' ] + then + %{__python3} %{py_setup} %{?py_setup_args} build_package_protos + fi + %py3_build + %{__python3} %{py_setup} %{?py_setup_args} install \ + -O1 --skip-build --root "${PYROOT}" + popd >/dev/null +done + +# ~~ documentation ~~ +# Doxygen (reference: C/core, C++, objc) +./tools/doxygen/run_doxygen.sh +# Sphinx (Python) +%{__python3} %{py_setup} %{?py_setup_args} doc +rm -vrf doc/build/.buildinfo doc/build/.doctrees + + +%install +# ~~~~ C (core) and C++ (cpp) ~~~~ +%if %{with cmake} +%cmake_install +# For some reason, grpc_cli is not installed. Do it manually. +install -t '%{buildroot}%{_bindir}' -p -D '%{_vpath_builddir}/%{name}_cli' +# grpc_cli build does not respect CMAKE_INSTALL_RPATH +# https://github.com/grpc/grpc/issues/25176 +chrpath --delete '%{buildroot}%{_bindir}/%{name}_cli' +%else +export STRIP=/bin/true +make install prefix='%{buildroot}%{_prefix}' +make install-grpc-cli prefix='%{buildroot}%{_prefix}' +chrpath --delete '%{buildroot}%{_bindir}/%{name}_cli' +%endif +# Remove any static libraries that may have been installed against our wishes +find %{buildroot} -type f -name '*.a' -print -delete +# Fix wrong permissions on installed headers +find %{buildroot}%{_includedir}/%{name}* -type f -name '*.h' -perm /0111 \ + -execdir chmod -v a-x '{}' '+' + +# ~~~~ Python ~~~~ + +# Since several packages have an install_requires: grpcio-tools, we must ensure +# the buildroot Python site-packages directories are in the PYTHONPATH. +pushd '%{buildroot}' +PYROOT="${PWD}" +popd +if [ -n "${PYTHONPATH-}" ]; then PYTHONPATH="${PYTHONPATH}:"; fi +PYTHONPATH="${PYTHONPATH-}${PYROOT}%{python3_sitelib}" +PYTHONPATH="${PYTHONPATH}:${PYROOT}%{python3_sitearch}" +export PYTHONPATH + +# ~~ grpcio ~~ +%py3_install + +# ~~ grpcio-tools ~~ +pushd "tools/distrib/python/grpcio_tools/" >/dev/null +%py3_install +popd >/dev/null + +# ~~ pure-python modules grpcio-* ~~ +for suffix in channelz health_checking reflection status testing +do + pushd "src/python/grpcio_${suffix}/" >/dev/null + %py3_install + popd >/dev/null +done +# The grpcio_tests package should not be installed; it would provide top-level +# packages with generic names like “tests” or “tests_aio”. + +# ~~~~ Miscellaneous ~~~~ + +# Replace copies of the certificate bundle with symlinks to the shared system +# certificates. This has the following benefits: +# - Reduces duplication and save space +# - Respects system-wide administrative trust configuration +# - Keeps “MPLv2.0” from having to be added to a number of License fields +%global sysbundle %{_sysconfdir}/pki/ca-trust/extracted/pem/tls-ca-bundle.pem +# We do not own this file; we temporarily install it in the buildroot so we do +# not have dangling symlinks. +install -D -t "%{buildroot}$(dirname '%{sysbundle}')" -m 0644 '%{sysbundle}' + +find '%{buildroot}' -type f -name 'roots.pem' | + while read -r fn + do + ln -s -f "%{buildroot}%{sysbundle}" "${fn}" + symlinks -c -o "${fn}" + done + +rm -rvf "%{buildroot}$(dirname '%{sysbundle}')" + +# ~~ documentation and examples ~~ + +install -D -t '%{buildroot}%{_pkgdocdir}' -m 0644 -p AUTHORS *.md +cp -rp doc/ref examples '%{buildroot}%{_pkgdocdir}' +install -d '%{buildroot}%{_pkgdocdir}/python' +cp -rp doc/build '%{buildroot}%{_pkgdocdir}/python/html' + + +%check +export FEDORA_NO_NETWORK_TESTS=1 + +%if %{with core_tests} && %{with cmake} +# Note that no tests are actually found by ctest: +%ctest + +# Exclude tests that are known to hang. Assistance welcome in figuring out what +# is wrong with these, especially if the hangs persist in the latest upstream +# version. Note, however, that we are running the tests very differently from +# upstream, which uses scripts in tools/run_tests/ that rebuild the entire +# source and use Docker, so it is likely to be difficult to get help from +# upstream for any failures here. Note that some of these tests would never +# work in an environment without Internet access. +( + cat <<'EOF' +address_sorting +alarm +algorithm +alts_concurrent_connectivity +backoff +badreq_bad_client +bad_server_response +bad_ssl_cert +bad_streaming_id_bad_client +bdp_estimator +bin_decoder +bin_encoder +buffer_list +byte_stream +cancel_ares_query +channel_create +channel_trace +channelz_service +channelz +chttp2_hpack_encoder +chttp2_settings_timeout +chttp2_varint +cli_call +client_callback_end2end +client_channel_stress +client_crash +client_interceptors_end2end +client_lb_end2end +close_fd +combiner +compression +concurrent_connectivity +connection_prefix_bad_client +connection_refused +context_list +cxx_byte_buffer +cxx_slice +delegating_channel +dns_resolver_connectivity +dns_resolver_cooldown_using_ares_resolver +dns_resolver_cooldown_using_native_resolver +dns_resolver +dualstack_socket +duplicate_header_bad_client +end2end +endpoint_pair +error +ev_epollex_linux +exception +fake_resolver +fake_transport_security +fd_conservation_posix +fd_posix +filter_end2end +fling_stream +fling +generic_end2end +goaway_server +grpc_b64 +grpc_byte_buffer_reader +grpc_channel_args +grpc_channel_stack_builder +grpc_channel_stack +grpc_completion_queue +grpc_completion_queue_threading +grpc_control_plane_credentials +grpc_credentials +grpc_ipv6_loopback_available +grpc_json_token +grpc_jwt_verifier +grpclb_api +grpclb_end2end +grpc_security_connector +grpc_spiffe_security_connector +grpc_ssl_credentials +grpc_tool +h2_census_nosec +h2_census +h2_compress_nosec +h2_compress +h2_fakesec +h2_fd_nosec +h2_fd +h2_full_nosec +h2_full+pipe_nosec +h2_full+pipe +h2_full +h2_full+trace_nosec +h2_full+trace +h2_full+workarounds_nosec +h2_full+workarounds +h2_http_proxy_nosec +h2_http_proxy +h2_local_ipv4 +h2_local_ipv6 +h2_local_uds +h2_oauth2 +h2_proxy_nosec +h2_proxy +h2_sockpair_1byte_nosec +h2_sockpair_1byte +h2_sockpair_nosec +h2_sockpair +h2_sockpair+trace_nosec +h2_sockpair+trace +h2_spiffe +h2_ssl_cert +h2_ssl_proxy +h2_ssl_session_reuse +h2_ssl +h2_uds_nosec +h2_uds +headers_bad_client +head_of_line_blocking_bad_client +health_service_end2end +hpack_parser +hpack_table +httpcli_format_request +httpcli +http_parser +httpscli +hybrid_end2end +initial_settings_frame_bad_client +init +inproc_callback +inproc +interop +invalid_call_argument +lame_client +large_metadata_bad_client +load_file +logical_thread +message_allocator_end2end +message_compress +minimal_stack_is_minimal +mock +mpmcqueue +multiple_server_queues +nonblocking +no_server +num_external_connectivity_watchers +out_of_bounds_bad_client +parse_address +parse_address_with_named_scope_id +percent_encoding +port_sharing_end2end +proto_server_reflection +raw_end2end +resolver_component +resource_quota +secure_channel_create +secure_endpoint +sequential_connectivity +server_builder_plugin +server_builder +server_chttp2 +server_crash +server_early_return +server_interceptors_end2end +server_registered_method_bad_client +server_request_call +server +service_config_end2end +service_config +shutdown +simple_request_bad_client +slice_buffer +slice +sockaddr_resolver +ssl_transport_security +stats +status_conversion +stream_compression +streaming_throughput +stream_owned_slice +tcp_client_posix +tcp_posix +tcp_server_posix +thread_manager +threadpool +thread_stress +time_change +timer +transport_connectivity_state +transport_metadata +udp_server +unknown_frame_bad_client +uri_parser +window_overflow_bad_client +writes_per_rpc +xds_bootstrap +xds_end2end +EOF +) | sed -r 's|^(.*)$|%{_vpath_builddir}/\1_test|' | xargs chmod a-x + +find %{_vpath_builddir} -type f -perm /0111 -name '*_test' | + while read -r testexe + do + echo "==== $(date -u --iso-8601=ns): $(basename "${testexe}") ====" + # We have tried to skip all tests that hang, but since this is a common + # problem, we use timeout so that a test that does hang breaks the build in + # a reasonable amount of time. + timeout -k 11m -v 10m "${testexe}" + done +%endif + +pushd src/python/grpcio_tests +for suite in \ + test_lite \ + %{?with_python_aio_tests:test_aio} \ + %{?with_python_gevent_tests:test_gevent} +do + # See the implementation of the %%pytest macro, upon which our environment + # setup is based: + env CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" \ + LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" \ + PATH="%{buildroot}%{_bindir}:$PATH" \ + PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \ + PYTHONDONTWRITEBYTECODE=1 \ + %{__python3} %{py_setup} %{?py_setup_args} "${suite}" +done +popd + +%if %{without system_gtest} +# As a sanity check for our claim that gtest/gmock are not bundled, check +# installed executables for symbols that appear to have come from gtest/gmock. +foundgtest=0 +if find %{buildroot} -type f -perm /0111 \ + -execdir objdump --syms --dynamic-syms --demangle '{}' '+' 2>/dev/null | + grep -E '[^:]testing::' +then + echo 'Found traces of gtest/gmock' 1>&2 + exit 1 +fi +%endif + + +%files +%license LICENSE NOTICE.txt +%{_libdir}/libaddress_sorting.so.%{c_so_version}* +%{_libdir}/libgpr.so.%{c_so_version}* +%{_libdir}/lib%{name}.so.%{c_so_version}* +%{_libdir}/lib%{name}_cronet.so.%{c_so_version}* +%{_libdir}/lib%{name}_unsecure.so.%{c_so_version}* +%{_libdir}/libupb.so.%{c_so_version}* + + +%files data +%license LICENSE NOTICE.txt +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/roots.pem + + +%files doc +%license LICENSE NOTICE.txt +%{_pkgdocdir} + + +%files cpp +%{_libdir}/lib%{name}++.so.%{cpp_so_version}* +%{_libdir}/lib%{name}++_error_details.so.%{cpp_so_version}* +%{_libdir}/lib%{name}++_reflection.so.%{cpp_so_version}* +%{_libdir}/lib%{name}++_unsecure.so.%{cpp_so_version}* + +%{_libdir}/lib%{name}pp_channelz.so.%{cpp_so_version}* + + +%files cli +%{_bindir}/%{name}_cli + + +%files plugins +%{_bindir}/%{name}_*_plugin + + +%files devel +%{_libdir}/libaddress_sorting.so +%{_libdir}/libgpr.so +%{_libdir}/lib%{name}.so +%{_libdir}/lib%{name}_cronet.so +%{_libdir}/lib%{name}_unsecure.so +%{_libdir}/libupb.so +%{_includedir}/%{name} +%{_libdir}/pkgconfig/gpr.pc +%{_libdir}/pkgconfig/%{name}.pc +%{_libdir}/pkgconfig/%{name}_unsecure.pc + +%{_libdir}/lib%{name}++.so +%{_libdir}/lib%{name}++_error_details.so +%{_libdir}/lib%{name}++_reflection.so +%{_libdir}/lib%{name}++_unsecure.so +%{_includedir}/%{name}++ +%{_libdir}/pkgconfig/%{name}++.pc +%{_libdir}/pkgconfig/%{name}++_unsecure.pc + +%{_libdir}/lib%{name}pp_channelz.so +%{_includedir}/%{name}pp + + +%files -n python3-grpcio +%license LICENSE NOTICE.txt +%{python3_sitearch}/grpc +%{python3_sitearch}/grpcio-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-tools +%{python3_sitearch}/grpc_tools +%{python3_sitearch}/grpcio_tools-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-channelz +%{python3_sitelib}/grpc_channelz +%{python3_sitelib}/grpcio_channelz-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-health-checking +%{python3_sitelib}/grpc_health +%{python3_sitelib}/grpcio_health_checking-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-reflection +%{python3_sitelib}/grpc_reflection +%{python3_sitelib}/grpcio_reflection-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-status +%{python3_sitelib}/grpc_status +%{python3_sitelib}/grpcio_status-%{version}-py%{python3_version}.egg-info + + +%files -n python3-grpcio-testing +%{python3_sitelib}/grpc_testing +%{python3_sitelib}/grpcio_testing-%{version}-py%{python3_version}.egg-info + + +%changelog +* Tue Apr 06 2021 Benjamin A. Beasley - 1.26.0-15 +- General: + * Do not use %%exclude for unpackaged files (RPM 4.17 compatibility) +- Python: + * Stop using %%pyproject_buildrequires, since it is difficult to fit the + pyproject-rpm-macros build and install macros into this package, and Miro + Hrončok has advised that “mixing %%pyproject_buildrequires with + %%py3_build/%%py3_install is generally not a supported way of building + Python packages.” + +* Thu Mar 25 2021 Benjamin A. Beasley - 1.26.0-14 +- General: + * Improved googletest source URL (better tarball name) + +* Tue Mar 23 2021 Benjamin A. Beasley - 1.26.0-13 +- General: + * Replace * with • in descriptions + * Use cmake() dependencies first, and pkgconfig() dependencies second, where + available + * Drop explicit pkgconfig BR + * Fix the directory in which CMake installs pkgconfig files + * Improved CMake options + * Build the Doxygen reference manuals +- C (core) and C++ (cpp): + * Let the -devel package require cmake-filesystem + * Allow building tests with our own copy of gtest/gmock, which will become + mandatory when we depend on abseil-cpp and switch to C++17 + * Fix a link error in the core tests when using CMake + * Manually install grpc_cli (CMake) + * Add CMake files to the files list for the -devel package + * Start running some of the core tests in %%check +- Python: + * Add several patches required for the tests + * BR gevent for gevent_tests + * Fix build; in particular, add missing preprocess and build_package_protos + steps, without which the packages were missing generated proto modules and + were not + usable! + * Add %%py_provides for Fedora 32 + * Drop python3dist(setuptools) BR, redundant with %%pyproject_buildrequires + * Start running most of the Python tests in %%check + * Merge the python-grpcio-doc subpackage into grpc-doc + +* Tue Feb 16 2021 Benjamin A. Beasley - 1.26.0-12 +- C (core) and C++ (cpp): + * Add CMake build support but do not enable it yet; there is still a problem + where grpc_cli is only built with the tests, and a linking problem when + building the tests + +* Tue Feb 02 2021 Benjamin A. Beasley - 1.26.0-11 +- General: + * Update summaries and descriptions + * Update License fields to include licenses from bundled components + * Fix failure to respect Fedora build flags + * Use the system shared certificate bundle instead of shipping our own +- CLI: + * No longer set rpath $ORIGIN +- C (core) and C++ (cpp): + * Add c_so_version/cpp_so_version macros + * Split out C++ bindings and shared data into subpackages + * Drop obsolete ldconfig_scriptlets macro + * Stop stripping debugging symbols +- Python: + * Use generated BR’s + * Build and package Python binding documentation + * Disable accommodations for older libc’s + * Patch out -std=gnu99 flag, which is inappropriate for C++ + * Build additional Python packages grpcio_tools, gprcio_channelz, + grpcio_health_checking, grpcio_reflection, grpcio_status, and + grpcio_testing + +* Tue Jan 26 2021 Fedora Release Engineering - 1.26.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 14 08:46:34 CET 2021 Adrian Reber - 1.26.0-9 +- Rebuilt for protobuf 3.14 + +* Fri Nov 13 2020 Artem Polishchuk - 1.26.0-8 +- build: disable LTO due to rh#1893533 + +* Thu Sep 24 2020 Adrian Reber - 1.26.0-7 +- Rebuilt for protobuf 3.13 + +* Mon Aug 03 2020 Gwyn Ciesla - 1.26.0-6 +- Patches for https://github.com/grpc/grpc/pull/21669 + +* Tue Jul 28 2020 Fedora Release Engineering - 1.26.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Jun 14 2020 Adrian Reber - 1.26.0-4 +- Rebuilt for protobuf 3.12 + +* Tue May 26 2020 Miro Hrončok - 1.26.0-3 +- Rebuilt for Python 3.9 + +* Wed Jan 29 2020 Fedora Release Engineering - 1.26.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 15 2020 Sergey Avseyev - 1.26.0-1 +- Update to 1.26.0 + +* Thu Dec 19 2019 Orion Poplawski - 1.20.1-5 +- Rebuild for protobuf 3.11 + +* Thu Oct 03 2019 Miro Hrončok - 1.20.1-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 1.20.1-3 +- Rebuilt for Python 3.8 + +* Thu Jul 25 2019 Fedora Release Engineering - 1.20.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 17 2019 Sergey Avseyev - 1.20.1-1 +- Update to 1.20.1 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.18.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Jan 16 2019 Sergey Avseyev - 1.18.0-1 +- Update to 1.18.0 + +* Mon Dec 17 2018 Igor Gnatenko - 1.17.1-3 +- Properly store patch in SRPM + +* Mon Dec 17 2018 Sergey Avseyev - 1.17.1-2 +- Build without ruby plugin for Fedora < 30 (Thanks to Mathieu Bridon) + +* Fri Dec 14 2018 Sergey Avseyev - 1.17.1-1 +- Update to 1.17.1 and package python bindings + +* Fri Dec 07 2018 Sergey Avseyev - 1.17.0-1 +- Initial revision