diff options
26 files changed, 2459 insertions, 193 deletions
diff --git a/build.yaml b/build.yaml index a838ef5690..bfa2efd94e 100644 --- a/build.yaml +++ b/build.yaml @@ -2816,6 +2816,34 @@ node_modules: - src/node/ext/server.cc - src/node/ext/server_credentials.cc - src/node/ext/timeval.cc +php_config_m4: + deps: + - grpc + - gpr + - boringssl + - z + headers: + - src/php/ext/grpc/byte_buffer.h + - src/php/ext/grpc/call.h + - src/php/ext/grpc/call_credentials.h + - src/php/ext/grpc/channel.h + - src/php/ext/grpc/channel_credentials.h + - src/php/ext/grpc/completion_queue.h + - src/php/ext/grpc/php_grpc.h + - src/php/ext/grpc/server.h + - src/php/ext/grpc/server_credentials.h + - src/php/ext/grpc/timeval.h + src: + - src/php/ext/grpc/byte_buffer.c + - src/php/ext/grpc/call.c + - src/php/ext/grpc/call_credentials.c + - src/php/ext/grpc/channel.c + - src/php/ext/grpc/channel_credentials.c + - src/php/ext/grpc/completion_queue.c + - src/php/ext/grpc/php_grpc.c + - src/php/ext/grpc/server.c + - src/php/ext/grpc/server_credentials.c + - src/php/ext/grpc/timeval.c python_dependencies: deps: - grpc diff --git a/config.m4 b/config.m4 new file mode 100644 index 0000000000..0323d5d2ad --- /dev/null +++ b/config.m4 @@ -0,0 +1,554 @@ +PHP_ARG_ENABLE(grpc, whether to enable grpc support, +[ --enable-grpc Enable grpc support]) + +if test "$PHP_GRPC" != "no"; then + dnl Write more examples of tests here... + + dnl # --with-grpc -> add include path + PHP_ADD_INCLUDE(../../grpc/include) + PHP_ADD_INCLUDE(../../grpc/src/php/ext/grpc) + PHP_ADD_INCLUDE(../../grpc/third_party/boringssl/include) + + LIBS="-lpthread $LIBS" + + GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" + PHP_ADD_LIBRARY(pthread) + + PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD) + PHP_ADD_LIBRARY(dl) + + case $host in + *darwin*) ;; + *) + PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD) + PHP_ADD_LIBRARY(rt) + ;; + esac + + PHP_NEW_EXTENSION(grpc, + src/php/ext/grpc/byte_buffer.c \ + src/php/ext/grpc/call.c \ + src/php/ext/grpc/call_credentials.c \ + src/php/ext/grpc/channel.c \ + src/php/ext/grpc/channel_credentials.c \ + src/php/ext/grpc/completion_queue.c \ + src/php/ext/grpc/php_grpc.c \ + src/php/ext/grpc/server.c \ + src/php/ext/grpc/server_credentials.c \ + src/php/ext/grpc/timeval.c \ + src/core/profiling/basic_timers.c \ + src/core/profiling/stap_timers.c \ + src/core/support/alloc.c \ + src/core/support/avl.c \ + src/core/support/cmdline.c \ + src/core/support/cpu_iphone.c \ + src/core/support/cpu_linux.c \ + src/core/support/cpu_posix.c \ + src/core/support/cpu_windows.c \ + src/core/support/env_linux.c \ + src/core/support/env_posix.c \ + src/core/support/env_win32.c \ + src/core/support/file.c \ + src/core/support/file_posix.c \ + src/core/support/file_win32.c \ + src/core/support/histogram.c \ + src/core/support/host_port.c \ + src/core/support/log.c \ + src/core/support/log_android.c \ + src/core/support/log_linux.c \ + src/core/support/log_posix.c \ + src/core/support/log_win32.c \ + src/core/support/murmur_hash.c \ + src/core/support/slice.c \ + src/core/support/slice_buffer.c \ + src/core/support/stack_lockfree.c \ + src/core/support/string.c \ + src/core/support/string_posix.c \ + src/core/support/string_win32.c \ + src/core/support/subprocess_posix.c \ + src/core/support/subprocess_windows.c \ + src/core/support/sync.c \ + src/core/support/sync_posix.c \ + src/core/support/sync_win32.c \ + src/core/support/thd.c \ + src/core/support/thd_posix.c \ + src/core/support/thd_win32.c \ + src/core/support/time.c \ + src/core/support/time_posix.c \ + src/core/support/time_precise.c \ + src/core/support/time_win32.c \ + src/core/support/tls_pthread.c \ + src/core/support/wrap_memcpy.c \ + src/core/census/grpc_context.c \ + src/core/census/grpc_filter.c \ + src/core/channel/channel_args.c \ + src/core/channel/channel_stack.c \ + src/core/channel/client_channel.c \ + src/core/channel/client_uchannel.c \ + src/core/channel/compress_filter.c \ + src/core/channel/connected_channel.c \ + src/core/channel/http_client_filter.c \ + src/core/channel/http_server_filter.c \ + src/core/channel/subchannel_call_holder.c \ + src/core/client_config/client_config.c \ + src/core/client_config/connector.c \ + src/core/client_config/default_initial_connect_string.c \ + src/core/client_config/initial_connect_string.c \ + src/core/client_config/lb_policies/load_balancer_api.c \ + src/core/client_config/lb_policies/pick_first.c \ + src/core/client_config/lb_policies/round_robin.c \ + src/core/client_config/lb_policy.c \ + src/core/client_config/lb_policy_factory.c \ + src/core/client_config/lb_policy_registry.c \ + src/core/client_config/resolver.c \ + src/core/client_config/resolver_factory.c \ + src/core/client_config/resolver_registry.c \ + src/core/client_config/resolvers/dns_resolver.c \ + src/core/client_config/resolvers/sockaddr_resolver.c \ + src/core/client_config/subchannel.c \ + src/core/client_config/subchannel_factory.c \ + src/core/client_config/subchannel_index.c \ + src/core/client_config/uri_parser.c \ + src/core/compression/algorithm.c \ + src/core/compression/message_compress.c \ + src/core/debug/trace.c \ + src/core/httpcli/format_request.c \ + src/core/httpcli/httpcli.c \ + src/core/httpcli/parser.c \ + src/core/iomgr/closure.c \ + src/core/iomgr/endpoint.c \ + src/core/iomgr/endpoint_pair_posix.c \ + src/core/iomgr/endpoint_pair_windows.c \ + src/core/iomgr/exec_ctx.c \ + src/core/iomgr/executor.c \ + src/core/iomgr/fd_posix.c \ + src/core/iomgr/iocp_windows.c \ + src/core/iomgr/iomgr.c \ + src/core/iomgr/iomgr_posix.c \ + src/core/iomgr/iomgr_windows.c \ + src/core/iomgr/pollset_multipoller_with_epoll.c \ + src/core/iomgr/pollset_multipoller_with_poll_posix.c \ + src/core/iomgr/pollset_posix.c \ + src/core/iomgr/pollset_set_posix.c \ + src/core/iomgr/pollset_set_windows.c \ + src/core/iomgr/pollset_windows.c \ + src/core/iomgr/resolve_address_posix.c \ + src/core/iomgr/resolve_address_windows.c \ + src/core/iomgr/sockaddr_utils.c \ + src/core/iomgr/socket_utils_common_posix.c \ + src/core/iomgr/socket_utils_linux.c \ + src/core/iomgr/socket_utils_posix.c \ + src/core/iomgr/socket_windows.c \ + src/core/iomgr/tcp_client_posix.c \ + src/core/iomgr/tcp_client_windows.c \ + src/core/iomgr/tcp_posix.c \ + src/core/iomgr/tcp_server_posix.c \ + src/core/iomgr/tcp_server_windows.c \ + src/core/iomgr/tcp_windows.c \ + src/core/iomgr/time_averaged_stats.c \ + src/core/iomgr/timer.c \ + src/core/iomgr/timer_heap.c \ + src/core/iomgr/udp_server.c \ + src/core/iomgr/wakeup_fd_eventfd.c \ + src/core/iomgr/wakeup_fd_nospecial.c \ + src/core/iomgr/wakeup_fd_pipe.c \ + src/core/iomgr/wakeup_fd_posix.c \ + src/core/iomgr/workqueue_posix.c \ + src/core/iomgr/workqueue_windows.c \ + src/core/json/json.c \ + src/core/json/json_reader.c \ + src/core/json/json_string.c \ + src/core/json/json_writer.c \ + src/core/proto/grpc/lb/v0/load_balancer.pb.c \ + src/core/surface/alarm.c \ + src/core/surface/api_trace.c \ + src/core/surface/byte_buffer.c \ + src/core/surface/byte_buffer_reader.c \ + src/core/surface/call.c \ + src/core/surface/call_details.c \ + src/core/surface/call_log_batch.c \ + src/core/surface/channel.c \ + src/core/surface/channel_connectivity.c \ + src/core/surface/channel_create.c \ + src/core/surface/channel_ping.c \ + src/core/surface/completion_queue.c \ + src/core/surface/event_string.c \ + src/core/surface/init.c \ + src/core/surface/lame_client.c \ + src/core/surface/metadata_array.c \ + src/core/surface/server.c \ + src/core/surface/server_chttp2.c \ + src/core/surface/server_create.c \ + src/core/surface/validate_metadata.c \ + src/core/surface/version.c \ + src/core/transport/byte_stream.c \ + src/core/transport/chttp2/alpn.c \ + src/core/transport/chttp2/bin_encoder.c \ + src/core/transport/chttp2/frame_data.c \ + src/core/transport/chttp2/frame_goaway.c \ + src/core/transport/chttp2/frame_ping.c \ + src/core/transport/chttp2/frame_rst_stream.c \ + src/core/transport/chttp2/frame_settings.c \ + src/core/transport/chttp2/frame_window_update.c \ + src/core/transport/chttp2/hpack_encoder.c \ + src/core/transport/chttp2/hpack_parser.c \ + src/core/transport/chttp2/hpack_table.c \ + src/core/transport/chttp2/huffsyms.c \ + src/core/transport/chttp2/incoming_metadata.c \ + src/core/transport/chttp2/parsing.c \ + src/core/transport/chttp2/status_conversion.c \ + src/core/transport/chttp2/stream_lists.c \ + src/core/transport/chttp2/stream_map.c \ + src/core/transport/chttp2/timeout_encoding.c \ + src/core/transport/chttp2/varint.c \ + src/core/transport/chttp2/writing.c \ + src/core/transport/chttp2_transport.c \ + src/core/transport/connectivity_state.c \ + src/core/transport/metadata.c \ + src/core/transport/metadata_batch.c \ + src/core/transport/static_metadata.c \ + src/core/transport/transport.c \ + src/core/transport/transport_op_string.c \ + src/core/httpcli/httpcli_security_connector.c \ + src/core/security/base64.c \ + src/core/security/client_auth_filter.c \ + src/core/security/credentials.c \ + src/core/security/credentials_metadata.c \ + src/core/security/credentials_posix.c \ + src/core/security/credentials_win32.c \ + src/core/security/google_default_credentials.c \ + src/core/security/handshake.c \ + src/core/security/json_token.c \ + src/core/security/jwt_verifier.c \ + src/core/security/secure_endpoint.c \ + src/core/security/security_connector.c \ + src/core/security/security_context.c \ + src/core/security/server_auth_filter.c \ + src/core/security/server_secure_chttp2.c \ + src/core/surface/init_secure.c \ + src/core/surface/secure_channel_create.c \ + src/core/tsi/fake_transport_security.c \ + src/core/tsi/ssl_transport_security.c \ + src/core/tsi/transport_security.c \ + src/core/census/context.c \ + src/core/census/initialize.c \ + src/core/census/mlog.c \ + src/core/census/operation.c \ + src/core/census/placeholders.c \ + src/core/census/tracing.c \ + third_party/nanopb/pb_common.c \ + third_party/nanopb/pb_decode.c \ + third_party/nanopb/pb_encode.c \ + src/boringssl/err_data.c \ + third_party/boringssl/crypto/aes/aes.c \ + third_party/boringssl/crypto/aes/mode_wrappers.c \ + third_party/boringssl/crypto/asn1/a_bitstr.c \ + third_party/boringssl/crypto/asn1/a_bool.c \ + third_party/boringssl/crypto/asn1/a_bytes.c \ + third_party/boringssl/crypto/asn1/a_d2i_fp.c \ + third_party/boringssl/crypto/asn1/a_dup.c \ + third_party/boringssl/crypto/asn1/a_enum.c \ + third_party/boringssl/crypto/asn1/a_gentm.c \ + third_party/boringssl/crypto/asn1/a_i2d_fp.c \ + third_party/boringssl/crypto/asn1/a_int.c \ + third_party/boringssl/crypto/asn1/a_mbstr.c \ + third_party/boringssl/crypto/asn1/a_object.c \ + third_party/boringssl/crypto/asn1/a_octet.c \ + third_party/boringssl/crypto/asn1/a_print.c \ + third_party/boringssl/crypto/asn1/a_strnid.c \ + third_party/boringssl/crypto/asn1/a_time.c \ + third_party/boringssl/crypto/asn1/a_type.c \ + third_party/boringssl/crypto/asn1/a_utctm.c \ + third_party/boringssl/crypto/asn1/a_utf8.c \ + third_party/boringssl/crypto/asn1/asn1_lib.c \ + third_party/boringssl/crypto/asn1/asn1_par.c \ + third_party/boringssl/crypto/asn1/asn_pack.c \ + third_party/boringssl/crypto/asn1/bio_asn1.c \ + third_party/boringssl/crypto/asn1/bio_ndef.c \ + third_party/boringssl/crypto/asn1/f_enum.c \ + third_party/boringssl/crypto/asn1/f_int.c \ + third_party/boringssl/crypto/asn1/f_string.c \ + third_party/boringssl/crypto/asn1/t_bitst.c \ + third_party/boringssl/crypto/asn1/t_pkey.c \ + third_party/boringssl/crypto/asn1/tasn_dec.c \ + third_party/boringssl/crypto/asn1/tasn_enc.c \ + third_party/boringssl/crypto/asn1/tasn_fre.c \ + third_party/boringssl/crypto/asn1/tasn_new.c \ + third_party/boringssl/crypto/asn1/tasn_prn.c \ + third_party/boringssl/crypto/asn1/tasn_typ.c \ + third_party/boringssl/crypto/asn1/tasn_utl.c \ + third_party/boringssl/crypto/asn1/x_bignum.c \ + third_party/boringssl/crypto/asn1/x_long.c \ + third_party/boringssl/crypto/base64/base64.c \ + third_party/boringssl/crypto/bio/bio.c \ + third_party/boringssl/crypto/bio/bio_mem.c \ + third_party/boringssl/crypto/bio/buffer.c \ + third_party/boringssl/crypto/bio/connect.c \ + third_party/boringssl/crypto/bio/fd.c \ + third_party/boringssl/crypto/bio/file.c \ + third_party/boringssl/crypto/bio/hexdump.c \ + third_party/boringssl/crypto/bio/pair.c \ + third_party/boringssl/crypto/bio/printf.c \ + third_party/boringssl/crypto/bio/socket.c \ + third_party/boringssl/crypto/bio/socket_helper.c \ + third_party/boringssl/crypto/bn/add.c \ + third_party/boringssl/crypto/bn/asm/x86_64-gcc.c \ + third_party/boringssl/crypto/bn/bn.c \ + third_party/boringssl/crypto/bn/bn_asn1.c \ + third_party/boringssl/crypto/bn/cmp.c \ + third_party/boringssl/crypto/bn/convert.c \ + third_party/boringssl/crypto/bn/ctx.c \ + third_party/boringssl/crypto/bn/div.c \ + third_party/boringssl/crypto/bn/exponentiation.c \ + third_party/boringssl/crypto/bn/gcd.c \ + third_party/boringssl/crypto/bn/generic.c \ + third_party/boringssl/crypto/bn/kronecker.c \ + third_party/boringssl/crypto/bn/montgomery.c \ + third_party/boringssl/crypto/bn/mul.c \ + third_party/boringssl/crypto/bn/prime.c \ + third_party/boringssl/crypto/bn/random.c \ + third_party/boringssl/crypto/bn/rsaz_exp.c \ + third_party/boringssl/crypto/bn/shift.c \ + third_party/boringssl/crypto/bn/sqrt.c \ + third_party/boringssl/crypto/buf/buf.c \ + third_party/boringssl/crypto/bytestring/ber.c \ + third_party/boringssl/crypto/bytestring/cbb.c \ + third_party/boringssl/crypto/bytestring/cbs.c \ + third_party/boringssl/crypto/chacha/chacha_generic.c \ + third_party/boringssl/crypto/chacha/chacha_vec.c \ + third_party/boringssl/crypto/cipher/aead.c \ + third_party/boringssl/crypto/cipher/cipher.c \ + third_party/boringssl/crypto/cipher/derive_key.c \ + third_party/boringssl/crypto/cipher/e_aes.c \ + third_party/boringssl/crypto/cipher/e_chacha20poly1305.c \ + third_party/boringssl/crypto/cipher/e_des.c \ + third_party/boringssl/crypto/cipher/e_null.c \ + third_party/boringssl/crypto/cipher/e_rc2.c \ + third_party/boringssl/crypto/cipher/e_rc4.c \ + third_party/boringssl/crypto/cipher/e_ssl3.c \ + third_party/boringssl/crypto/cipher/e_tls.c \ + third_party/boringssl/crypto/cipher/tls_cbc.c \ + third_party/boringssl/crypto/cmac/cmac.c \ + third_party/boringssl/crypto/conf/conf.c \ + third_party/boringssl/crypto/cpu-arm.c \ + third_party/boringssl/crypto/cpu-intel.c \ + third_party/boringssl/crypto/crypto.c \ + third_party/boringssl/crypto/curve25519/curve25519.c \ + third_party/boringssl/crypto/des/des.c \ + third_party/boringssl/crypto/dh/check.c \ + third_party/boringssl/crypto/dh/dh.c \ + third_party/boringssl/crypto/dh/dh_asn1.c \ + third_party/boringssl/crypto/dh/params.c \ + third_party/boringssl/crypto/digest/digest.c \ + third_party/boringssl/crypto/digest/digests.c \ + third_party/boringssl/crypto/directory_posix.c \ + third_party/boringssl/crypto/directory_win.c \ + third_party/boringssl/crypto/dsa/dsa.c \ + third_party/boringssl/crypto/dsa/dsa_asn1.c \ + third_party/boringssl/crypto/ec/ec.c \ + third_party/boringssl/crypto/ec/ec_asn1.c \ + third_party/boringssl/crypto/ec/ec_key.c \ + third_party/boringssl/crypto/ec/ec_montgomery.c \ + third_party/boringssl/crypto/ec/oct.c \ + third_party/boringssl/crypto/ec/p224-64.c \ + third_party/boringssl/crypto/ec/p256-64.c \ + third_party/boringssl/crypto/ec/p256-x86_64.c \ + third_party/boringssl/crypto/ec/simple.c \ + third_party/boringssl/crypto/ec/util-64.c \ + third_party/boringssl/crypto/ec/wnaf.c \ + third_party/boringssl/crypto/ecdh/ecdh.c \ + third_party/boringssl/crypto/ecdsa/ecdsa.c \ + third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c \ + third_party/boringssl/crypto/engine/engine.c \ + third_party/boringssl/crypto/err/err.c \ + third_party/boringssl/crypto/evp/algorithm.c \ + third_party/boringssl/crypto/evp/digestsign.c \ + third_party/boringssl/crypto/evp/evp.c \ + third_party/boringssl/crypto/evp/evp_asn1.c \ + third_party/boringssl/crypto/evp/evp_ctx.c \ + third_party/boringssl/crypto/evp/p_dsa_asn1.c \ + third_party/boringssl/crypto/evp/p_ec.c \ + third_party/boringssl/crypto/evp/p_ec_asn1.c \ + third_party/boringssl/crypto/evp/p_rsa.c \ + third_party/boringssl/crypto/evp/p_rsa_asn1.c \ + third_party/boringssl/crypto/evp/pbkdf.c \ + third_party/boringssl/crypto/evp/sign.c \ + third_party/boringssl/crypto/ex_data.c \ + third_party/boringssl/crypto/hkdf/hkdf.c \ + third_party/boringssl/crypto/hmac/hmac.c \ + third_party/boringssl/crypto/lhash/lhash.c \ + third_party/boringssl/crypto/md4/md4.c \ + third_party/boringssl/crypto/md5/md5.c \ + third_party/boringssl/crypto/mem.c \ + third_party/boringssl/crypto/modes/cbc.c \ + third_party/boringssl/crypto/modes/cfb.c \ + third_party/boringssl/crypto/modes/ctr.c \ + third_party/boringssl/crypto/modes/gcm.c \ + third_party/boringssl/crypto/modes/ofb.c \ + third_party/boringssl/crypto/obj/obj.c \ + third_party/boringssl/crypto/obj/obj_xref.c \ + third_party/boringssl/crypto/pem/pem_all.c \ + third_party/boringssl/crypto/pem/pem_info.c \ + third_party/boringssl/crypto/pem/pem_lib.c \ + third_party/boringssl/crypto/pem/pem_oth.c \ + third_party/boringssl/crypto/pem/pem_pk8.c \ + third_party/boringssl/crypto/pem/pem_pkey.c \ + third_party/boringssl/crypto/pem/pem_x509.c \ + third_party/boringssl/crypto/pem/pem_xaux.c \ + third_party/boringssl/crypto/pkcs8/p5_pbe.c \ + third_party/boringssl/crypto/pkcs8/p5_pbev2.c \ + third_party/boringssl/crypto/pkcs8/p8_pkey.c \ + third_party/boringssl/crypto/pkcs8/pkcs8.c \ + third_party/boringssl/crypto/poly1305/poly1305.c \ + third_party/boringssl/crypto/poly1305/poly1305_arm.c \ + third_party/boringssl/crypto/poly1305/poly1305_vec.c \ + third_party/boringssl/crypto/rand/rand.c \ + third_party/boringssl/crypto/rand/urandom.c \ + third_party/boringssl/crypto/rand/windows.c \ + third_party/boringssl/crypto/rc4/rc4.c \ + third_party/boringssl/crypto/refcount_c11.c \ + third_party/boringssl/crypto/refcount_lock.c \ + third_party/boringssl/crypto/rsa/blinding.c \ + third_party/boringssl/crypto/rsa/padding.c \ + third_party/boringssl/crypto/rsa/rsa.c \ + third_party/boringssl/crypto/rsa/rsa_asn1.c \ + third_party/boringssl/crypto/rsa/rsa_impl.c \ + third_party/boringssl/crypto/sha/sha1.c \ + third_party/boringssl/crypto/sha/sha256.c \ + third_party/boringssl/crypto/sha/sha512.c \ + third_party/boringssl/crypto/stack/stack.c \ + third_party/boringssl/crypto/thread.c \ + third_party/boringssl/crypto/thread_none.c \ + third_party/boringssl/crypto/thread_pthread.c \ + third_party/boringssl/crypto/thread_win.c \ + third_party/boringssl/crypto/time_support.c \ + third_party/boringssl/crypto/x509/a_digest.c \ + third_party/boringssl/crypto/x509/a_sign.c \ + third_party/boringssl/crypto/x509/a_strex.c \ + third_party/boringssl/crypto/x509/a_verify.c \ + third_party/boringssl/crypto/x509/asn1_gen.c \ + third_party/boringssl/crypto/x509/by_dir.c \ + third_party/boringssl/crypto/x509/by_file.c \ + third_party/boringssl/crypto/x509/i2d_pr.c \ + third_party/boringssl/crypto/x509/pkcs7.c \ + third_party/boringssl/crypto/x509/t_crl.c \ + third_party/boringssl/crypto/x509/t_req.c \ + third_party/boringssl/crypto/x509/t_x509.c \ + third_party/boringssl/crypto/x509/t_x509a.c \ + third_party/boringssl/crypto/x509/x509.c \ + third_party/boringssl/crypto/x509/x509_att.c \ + third_party/boringssl/crypto/x509/x509_cmp.c \ + third_party/boringssl/crypto/x509/x509_d2.c \ + third_party/boringssl/crypto/x509/x509_def.c \ + third_party/boringssl/crypto/x509/x509_ext.c \ + third_party/boringssl/crypto/x509/x509_lu.c \ + third_party/boringssl/crypto/x509/x509_obj.c \ + third_party/boringssl/crypto/x509/x509_r2x.c \ + third_party/boringssl/crypto/x509/x509_req.c \ + third_party/boringssl/crypto/x509/x509_set.c \ + third_party/boringssl/crypto/x509/x509_trs.c \ + third_party/boringssl/crypto/x509/x509_txt.c \ + third_party/boringssl/crypto/x509/x509_v3.c \ + third_party/boringssl/crypto/x509/x509_vfy.c \ + third_party/boringssl/crypto/x509/x509_vpm.c \ + third_party/boringssl/crypto/x509/x509cset.c \ + third_party/boringssl/crypto/x509/x509name.c \ + third_party/boringssl/crypto/x509/x509rset.c \ + third_party/boringssl/crypto/x509/x509spki.c \ + third_party/boringssl/crypto/x509/x509type.c \ + third_party/boringssl/crypto/x509/x_algor.c \ + third_party/boringssl/crypto/x509/x_all.c \ + third_party/boringssl/crypto/x509/x_attrib.c \ + third_party/boringssl/crypto/x509/x_crl.c \ + third_party/boringssl/crypto/x509/x_exten.c \ + third_party/boringssl/crypto/x509/x_info.c \ + third_party/boringssl/crypto/x509/x_name.c \ + third_party/boringssl/crypto/x509/x_pkey.c \ + third_party/boringssl/crypto/x509/x_pubkey.c \ + third_party/boringssl/crypto/x509/x_req.c \ + third_party/boringssl/crypto/x509/x_sig.c \ + third_party/boringssl/crypto/x509/x_spki.c \ + third_party/boringssl/crypto/x509/x_val.c \ + third_party/boringssl/crypto/x509/x_x509.c \ + third_party/boringssl/crypto/x509/x_x509a.c \ + third_party/boringssl/crypto/x509v3/pcy_cache.c \ + third_party/boringssl/crypto/x509v3/pcy_data.c \ + third_party/boringssl/crypto/x509v3/pcy_lib.c \ + third_party/boringssl/crypto/x509v3/pcy_map.c \ + third_party/boringssl/crypto/x509v3/pcy_node.c \ + third_party/boringssl/crypto/x509v3/pcy_tree.c \ + third_party/boringssl/crypto/x509v3/v3_akey.c \ + third_party/boringssl/crypto/x509v3/v3_akeya.c \ + third_party/boringssl/crypto/x509v3/v3_alt.c \ + third_party/boringssl/crypto/x509v3/v3_bcons.c \ + third_party/boringssl/crypto/x509v3/v3_bitst.c \ + third_party/boringssl/crypto/x509v3/v3_conf.c \ + third_party/boringssl/crypto/x509v3/v3_cpols.c \ + third_party/boringssl/crypto/x509v3/v3_crld.c \ + third_party/boringssl/crypto/x509v3/v3_enum.c \ + third_party/boringssl/crypto/x509v3/v3_extku.c \ + third_party/boringssl/crypto/x509v3/v3_genn.c \ + third_party/boringssl/crypto/x509v3/v3_ia5.c \ + third_party/boringssl/crypto/x509v3/v3_info.c \ + third_party/boringssl/crypto/x509v3/v3_int.c \ + third_party/boringssl/crypto/x509v3/v3_lib.c \ + third_party/boringssl/crypto/x509v3/v3_ncons.c \ + third_party/boringssl/crypto/x509v3/v3_pci.c \ + third_party/boringssl/crypto/x509v3/v3_pcia.c \ + third_party/boringssl/crypto/x509v3/v3_pcons.c \ + third_party/boringssl/crypto/x509v3/v3_pku.c \ + third_party/boringssl/crypto/x509v3/v3_pmaps.c \ + third_party/boringssl/crypto/x509v3/v3_prn.c \ + third_party/boringssl/crypto/x509v3/v3_purp.c \ + third_party/boringssl/crypto/x509v3/v3_skey.c \ + third_party/boringssl/crypto/x509v3/v3_sxnet.c \ + third_party/boringssl/crypto/x509v3/v3_utl.c \ + third_party/boringssl/ssl/custom_extensions.c \ + third_party/boringssl/ssl/d1_both.c \ + third_party/boringssl/ssl/d1_clnt.c \ + third_party/boringssl/ssl/d1_lib.c \ + third_party/boringssl/ssl/d1_meth.c \ + third_party/boringssl/ssl/d1_pkt.c \ + third_party/boringssl/ssl/d1_srtp.c \ + third_party/boringssl/ssl/d1_srvr.c \ + third_party/boringssl/ssl/dtls_record.c \ + third_party/boringssl/ssl/pqueue/pqueue.c \ + third_party/boringssl/ssl/s3_both.c \ + third_party/boringssl/ssl/s3_clnt.c \ + third_party/boringssl/ssl/s3_enc.c \ + third_party/boringssl/ssl/s3_lib.c \ + third_party/boringssl/ssl/s3_meth.c \ + third_party/boringssl/ssl/s3_pkt.c \ + third_party/boringssl/ssl/s3_srvr.c \ + third_party/boringssl/ssl/ssl_aead_ctx.c \ + third_party/boringssl/ssl/ssl_asn1.c \ + third_party/boringssl/ssl/ssl_buffer.c \ + third_party/boringssl/ssl/ssl_cert.c \ + third_party/boringssl/ssl/ssl_cipher.c \ + third_party/boringssl/ssl/ssl_file.c \ + third_party/boringssl/ssl/ssl_lib.c \ + third_party/boringssl/ssl/ssl_rsa.c \ + third_party/boringssl/ssl/ssl_session.c \ + third_party/boringssl/ssl/ssl_stat.c \ + third_party/boringssl/ssl/t1_enc.c \ + third_party/boringssl/ssl/t1_lib.c \ + third_party/boringssl/ssl/tls_record.c \ + third_party/zlib/adler32.c \ + third_party/zlib/compress.c \ + third_party/zlib/crc32.c \ + third_party/zlib/deflate.c \ + third_party/zlib/gzclose.c \ + third_party/zlib/gzlib.c \ + third_party/zlib/gzread.c \ + third_party/zlib/gzwrite.c \ + third_party/zlib/infback.c \ + third_party/zlib/inffast.c \ + third_party/zlib/inflate.c \ + third_party/zlib/inftrees.c \ + third_party/zlib/trees.c \ + third_party/zlib/uncompr.c \ + third_party/zlib/zutil.c \ + , $ext_shared, , -Wall -Werror -std=c11 \ + -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN \ + -D_HAS_EXCEPTIONS=0 -DNOMINMAX) +fi diff --git a/package.xml b/package.xml new file mode 100644 index 0000000000..99109ada8f --- /dev/null +++ b/package.xml @@ -0,0 +1,998 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package packagerversion="1.9.5" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> + <name>grpc</name> + <channel>pecl.php.net</channel> + <summary>A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.</summary> + <description>Remote Procedure Calls (RPCs) provide a useful abstraction for building distributed applications and services. The libraries in this repository provide a concrete implementation of the gRPC protocol, layered over HTTP/2. These libraries enable communication between clients and servers using any combination of the supported languages.</description> + <lead> + <name>Stanley Cheung</name> + <user>stanleycheung</user> + <email>grpc-packages@google.com</email> + <active>yes</active> + </lead> + <date>2016-02-23</date> + <time>16:06:07</time> + <version> + <release>0.8.0</release> + <api>0.8.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <license>BSD</license> + <notes> +- Simplify gRPC PHP installation #4517 + </notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file baseinstalldir="/" name="config.m4" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/CREDITS" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/LICENSE" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/README.md" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/byte_buffer.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/call.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/call_credentials.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/channel.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/channel_credentials.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/completion_queue.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/php_grpc.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/server.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/server_credentials.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/timeval.c" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/byte_buffer.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/call.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/call_credentials.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/channel.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/channel_credentials.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/completion_queue.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/php_grpc.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/server.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/server_credentials.h" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/timeval.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/alloc.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/atm.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/atm_gcc_atomic.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/atm_gcc_sync.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/atm_win32.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/avl.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/cmdline.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/cpu.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/histogram.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/host_port.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/log.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/log_win32.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/port_platform.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/slice.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/slice_buffer.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/string_util.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/subprocess.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/sync.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/sync_generic.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/sync_posix.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/sync_win32.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/thd.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/time.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/tls.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/tls_gcc.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/tls_msvc.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/tls_pthread.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/support/useful.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/alloc.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/atm.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_atomic.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_sync.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_win32.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/log.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/port_platform.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/slice.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/slice_buffer.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/sync.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_generic.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_posix.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_win32.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/time.h" role="src" /> + <file baseinstalldir="/" name="src/core/profiling/timers.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/block_annotate.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/env.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/file.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/murmur_hash.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/stack_lockfree.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/string.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/string_win32.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/thd_internal.h" role="src" /> + <file baseinstalldir="/" name="src/core/support/time_precise.h" role="src" /> + <file baseinstalldir="/" name="src/core/profiling/basic_timers.c" role="src" /> + <file baseinstalldir="/" name="src/core/profiling/stap_timers.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/alloc.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/avl.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/cmdline.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/cpu_iphone.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/cpu_linux.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/cpu_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/cpu_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/env_linux.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/env_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/env_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/file.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/file_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/file_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/histogram.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/host_port.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/log.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/log_android.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/log_linux.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/log_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/log_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/murmur_hash.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/slice.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/slice_buffer.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/stack_lockfree.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/string.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/string_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/string_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/subprocess_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/subprocess_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/sync.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/sync_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/sync_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/thd.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/thd_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/thd_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/time.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/time_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/time_precise.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/time_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/tls_pthread.c" role="src" /> + <file baseinstalldir="/" name="src/core/support/wrap_memcpy.c" role="src" /> + <file baseinstalldir="/" name="include/grpc/grpc_security.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/byte_buffer.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/compression_types.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/connectivity_state.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/grpc_types.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/propagation_bits.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/impl/codegen/status.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/byte_buffer.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/byte_buffer_reader.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/compression.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/grpc.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/status.h" role="src" /> + <file baseinstalldir="/" name="include/grpc/census.h" role="src" /> + <file baseinstalldir="/" name="src/core/census/grpc_filter.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/channel_args.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/channel_stack.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/client_channel.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/client_uchannel.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/compress_filter.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/connected_channel.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/context.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/http_client_filter.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/http_server_filter.h" role="src" /> + <file baseinstalldir="/" name="src/core/channel/subchannel_call_holder.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/client_config.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/connector.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/initial_connect_string.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/load_balancer_api.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/pick_first.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/round_robin.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy_factory.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy_registry.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver_factory.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver_registry.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolvers/dns_resolver.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolvers/sockaddr_resolver.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel_factory.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel_index.h" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/uri_parser.h" role="src" /> + <file baseinstalldir="/" name="src/core/compression/algorithm_metadata.h" role="src" /> + <file baseinstalldir="/" name="src/core/compression/message_compress.h" role="src" /> + <file baseinstalldir="/" name="src/core/debug/trace.h" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/format_request.h" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/httpcli.h" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/parser.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/closure.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/endpoint.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/endpoint_pair.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/exec_ctx.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/executor.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/fd_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iocp_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr_internal.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_set.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_set_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_set_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/resolve_address.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/sockaddr.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/sockaddr_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/sockaddr_utils.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/sockaddr_win32.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_utils_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_client.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_server.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/time_averaged_stats.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/timer.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/timer_heap.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/udp_server.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_pipe.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/workqueue.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/workqueue_posix.h" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/workqueue_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/json/json.h" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_common.h" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_reader.h" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_writer.h" role="src" /> + <file baseinstalldir="/" name="src/core/proto/grpc/lb/v0/load_balancer.pb.h" role="src" /> + <file baseinstalldir="/" name="src/core/statistics/census_interface.h" role="src" /> + <file baseinstalldir="/" name="src/core/statistics/census_rpc_stats.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/api_trace.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/call.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/call_test_only.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/channel.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/completion_queue.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/event_string.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/init.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/server.h" role="src" /> + <file baseinstalldir="/" name="src/core/surface/surface_trace.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/byte_stream.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/alpn.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/bin_encoder.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_data.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_goaway.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_ping.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_rst_stream.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_settings.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_window_update.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_encoder.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_parser.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_table.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/http2_errors.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/huffsyms.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/incoming_metadata.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/internal.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/status_conversion.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/stream_map.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/timeout_encoding.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/varint.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2_transport.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/connectivity_state.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/metadata.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/metadata_batch.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/static_metadata.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/transport.h" role="src" /> + <file baseinstalldir="/" name="src/core/transport/transport_impl.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/auth_filters.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/base64.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/credentials.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/handshake.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/json_token.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/jwt_verifier.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/secure_endpoint.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/security_connector.h" role="src" /> + <file baseinstalldir="/" name="src/core/security/security_context.h" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/fake_transport_security.h" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/ssl_transport_security.h" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/ssl_types.h" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/transport_security.h" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/transport_security_interface.h" role="src" /> + <file baseinstalldir="/" name="src/core/census/aggregation.h" role="src" /> + <file baseinstalldir="/" name="src/core/census/mlog.h" role="src" /> + <file baseinstalldir="/" name="src/core/census/rpc_metric_id.h" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_common.h" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_decode.h" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_encode.h" role="src" /> + <file baseinstalldir="/" name="src/core/census/grpc_context.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/grpc_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/channel_args.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/channel_stack.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/client_channel.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/client_uchannel.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/compress_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/connected_channel.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/http_client_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/http_server_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/channel/subchannel_call_holder.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/client_config.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/connector.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/default_initial_connect_string.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/initial_connect_string.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/load_balancer_api.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/pick_first.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policies/round_robin.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy_factory.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/lb_policy_registry.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver_factory.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolver_registry.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolvers/dns_resolver.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/resolvers/sockaddr_resolver.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel_factory.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/subchannel_index.c" role="src" /> + <file baseinstalldir="/" name="src/core/client_config/uri_parser.c" role="src" /> + <file baseinstalldir="/" name="src/core/compression/algorithm.c" role="src" /> + <file baseinstalldir="/" name="src/core/compression/message_compress.c" role="src" /> + <file baseinstalldir="/" name="src/core/debug/trace.c" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/format_request.c" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/httpcli.c" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/parser.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/closure.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/endpoint.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/endpoint_pair_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/endpoint_pair_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/exec_ctx.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/executor.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/fd_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iocp_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/iomgr_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_multipoller_with_epoll.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_multipoller_with_poll_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_set_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_set_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/pollset_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/resolve_address_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/resolve_address_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/sockaddr_utils.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_utils_common_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_utils_linux.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_utils_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/socket_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_client_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_client_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_server_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_server_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/tcp_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/time_averaged_stats.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/timer.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/timer_heap.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/udp_server.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_eventfd.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_nospecial.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_pipe.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/wakeup_fd_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/workqueue_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/iomgr/workqueue_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/json/json.c" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_reader.c" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_string.c" role="src" /> + <file baseinstalldir="/" name="src/core/json/json_writer.c" role="src" /> + <file baseinstalldir="/" name="src/core/proto/grpc/lb/v0/load_balancer.pb.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/alarm.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/api_trace.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/byte_buffer.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/byte_buffer_reader.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/call.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/call_details.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/call_log_batch.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/channel.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/channel_connectivity.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/channel_create.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/channel_ping.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/completion_queue.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/event_string.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/init.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/lame_client.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/metadata_array.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/server.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/server_chttp2.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/server_create.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/validate_metadata.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/version.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/byte_stream.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/alpn.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/bin_encoder.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_data.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_goaway.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_ping.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_rst_stream.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_settings.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/frame_window_update.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_encoder.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_parser.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/hpack_table.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/huffsyms.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/incoming_metadata.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/parsing.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/status_conversion.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/stream_lists.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/stream_map.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/timeout_encoding.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/varint.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2/writing.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/chttp2_transport.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/connectivity_state.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/metadata.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/metadata_batch.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/static_metadata.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/transport.c" role="src" /> + <file baseinstalldir="/" name="src/core/transport/transport_op_string.c" role="src" /> + <file baseinstalldir="/" name="src/core/httpcli/httpcli_security_connector.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/base64.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/client_auth_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/credentials.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/credentials_metadata.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/credentials_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/credentials_win32.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/google_default_credentials.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/handshake.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/json_token.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/jwt_verifier.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/secure_endpoint.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/security_connector.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/security_context.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/server_auth_filter.c" role="src" /> + <file baseinstalldir="/" name="src/core/security/server_secure_chttp2.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/init_secure.c" role="src" /> + <file baseinstalldir="/" name="src/core/surface/secure_channel_create.c" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/fake_transport_security.c" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/ssl_transport_security.c" role="src" /> + <file baseinstalldir="/" name="src/core/tsi/transport_security.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/context.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/initialize.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/mlog.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/operation.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/placeholders.c" role="src" /> + <file baseinstalldir="/" name="src/core/census/tracing.c" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_decode.c" role="src" /> + <file baseinstalldir="/" name="third_party/nanopb/pb_encode.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/aes/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/asn1_locl.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/rsaz_exp.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bytestring/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/conf/conf_def.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/conf/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/des/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dh/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/digest/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/digest/md32_common.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/directory.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dsa/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/p256-x86_64-table.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/obj/obj_dat.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/obj/obj_xref.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pkcs8/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rand/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/test/scoped_types.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/test/test_util.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/charmap.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/vpm_int.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/ext_dat.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_int.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/aead.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/aes.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/arm_arch.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/asn1.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/asn1_mac.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/asn1t.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/base.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/base64.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/bio.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/blowfish.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/bn.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/buf.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/buffer.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/bytestring.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/cast.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/chacha.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/cipher.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/cmac.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/conf.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/cpu.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/crypto.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/curve25519.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/des.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/dh.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/digest.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/dsa.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/dtls1.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ec.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ec_key.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ecdh.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ecdsa.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/engine.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/err.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/evp.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ex_data.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/hkdf.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/hmac.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/lhash.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/lhash_macros.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/md4.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/md5.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/mem.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/obj.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/obj_mac.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/objects.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/opensslfeatures.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/opensslv.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ossl_typ.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/pem.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/pkcs12.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/pkcs7.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/pkcs8.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/poly1305.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/pqueue.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/rand.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/rc4.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/rsa.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/safestack.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/sha.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/srtp.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ssl.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/ssl3.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/stack.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/stack_macros.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/thread.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/time_support.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/tls1.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/type_check.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/x509.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/x509_vfy.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/include/openssl/x509v3.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/internal.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/test/async_bio.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/test/packeted_bio.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/test/scoped_types.h" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/test/test_config.h" role="src" /> + <file baseinstalldir="/" name="src/boringssl/err_data.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/aes/aes.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/aes/mode_wrappers.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_bitstr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_bool.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_bytes.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_d2i_fp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_dup.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_enum.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_gentm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_i2d_fp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_int.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_mbstr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_object.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_octet.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_print.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_strnid.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_time.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_type.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_utctm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/a_utf8.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/asn1_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/asn1_par.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/asn_pack.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/bio_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/bio_ndef.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/f_enum.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/f_int.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/f_string.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/t_bitst.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/t_pkey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_dec.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_enc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_fre.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_new.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_prn.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_typ.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/tasn_utl.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/x_bignum.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/asn1/x_long.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/base64/base64.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/bio.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/bio_mem.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/buffer.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/connect.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/fd.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/file.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/hexdump.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/pair.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/printf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/socket.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bio/socket_helper.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/add.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/asm/x86_64-gcc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/bn.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/bn_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/cmp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/convert.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/ctx.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/div.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/exponentiation.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/gcd.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/generic.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/kronecker.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/montgomery.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/mul.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/prime.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/random.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/rsaz_exp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/shift.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bn/sqrt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/buf/buf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bytestring/ber.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bytestring/cbb.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/bytestring/cbs.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/chacha/chacha_generic.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/chacha/chacha_vec.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/aead.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/cipher.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/derive_key.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_aes.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_chacha20poly1305.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_des.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_null.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_rc2.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_rc4.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_ssl3.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/e_tls.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cipher/tls_cbc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cmac/cmac.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/conf/conf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cpu-arm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/cpu-intel.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/crypto.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/curve25519/curve25519.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/des/des.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dh/check.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dh/dh.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dh/dh_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dh/params.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/digest/digest.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/digest/digests.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/directory_posix.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/directory_win.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dsa/dsa.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/dsa/dsa_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/ec.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/ec_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/ec_key.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/ec_montgomery.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/oct.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/p224-64.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/p256-64.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/p256-x86_64.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/simple.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/util-64.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ec/wnaf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ecdh/ecdh.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ecdsa/ecdsa.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/engine/engine.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/err/err.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/algorithm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/digestsign.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/evp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/evp_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/evp_ctx.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/p_dsa_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/p_ec.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/p_ec_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/p_rsa.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/p_rsa_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/pbkdf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/evp/sign.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/ex_data.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/hkdf/hkdf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/hmac/hmac.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/lhash/lhash.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/md4/md4.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/md5/md5.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/mem.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/cbc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/cfb.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/ctr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/gcm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/modes/ofb.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/obj/obj.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/obj/obj_xref.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_all.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_info.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_oth.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_pk8.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_pkey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_x509.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pem/pem_xaux.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pkcs8/p5_pbe.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pkcs8/p5_pbev2.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pkcs8/p8_pkey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/pkcs8/pkcs8.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/poly1305/poly1305.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/poly1305/poly1305_arm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/poly1305/poly1305_vec.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rand/rand.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rand/urandom.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rand/windows.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rc4/rc4.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/refcount_c11.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/refcount_lock.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/blinding.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/padding.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/rsa.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/rsa_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/rsa/rsa_impl.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/sha/sha1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/sha/sha256.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/sha/sha512.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/stack/stack.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/thread.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/thread_none.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/thread_pthread.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/thread_win.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/time_support.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/a_digest.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/a_sign.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/a_strex.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/a_verify.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/asn1_gen.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/by_dir.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/by_file.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/i2d_pr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/pkcs7.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/t_crl.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/t_req.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/t_x509.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/t_x509a.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_att.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_cmp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_d2.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_def.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_ext.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_lu.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_obj.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_r2x.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_req.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_set.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_trs.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_txt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_v3.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_vfy.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509_vpm.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509cset.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509name.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509rset.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509spki.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x509type.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_algor.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_all.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_attrib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_crl.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_exten.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_info.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_name.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_pkey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_pubkey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_req.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_sig.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_spki.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_val.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_x509.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509/x_x509a.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_cache.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_data.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_map.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_node.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/pcy_tree.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_akey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_akeya.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_alt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_bcons.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_bitst.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_conf.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_cpols.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_crld.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_enum.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_extku.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_genn.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_ia5.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_info.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_int.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_ncons.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_pci.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_pcia.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_pcons.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_pku.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_pmaps.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_prn.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_purp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_skey.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_sxnet.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/crypto/x509v3/v3_utl.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/custom_extensions.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_both.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_clnt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_meth.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_pkt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_srtp.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/d1_srvr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/dtls_record.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/pqueue/pqueue.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_both.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_clnt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_enc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_meth.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_pkt.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/s3_srvr.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_aead_ctx.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_asn1.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_buffer.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_cert.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_cipher.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_file.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_rsa.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_session.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/ssl_stat.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/t1_enc.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/t1_lib.c" role="src" /> + <file baseinstalldir="/" name="third_party/boringssl/ssl/tls_record.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/crc32.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/deflate.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/gzguts.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inffast.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inffixed.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inflate.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inftrees.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/trees.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/zconf.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/zlib.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/zutil.h" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/adler32.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/compress.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/crc32.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/deflate.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/gzclose.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/gzlib.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/gzread.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/gzwrite.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/infback.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inffast.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inflate.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/inftrees.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/trees.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/uncompr.c" role="src" /> + <file baseinstalldir="/" name="third_party/zlib/zutil.c" role="src" /> + </dir> + </contents> + <dependencies> + <required> + <php> + <min>5.5.0</min> + </php> + <pearinstaller> + <min>1.4.0</min> + </pearinstaller> + </required> + </dependencies> + <providesextension>grpc</providesextension> + <extsrcrelease /> + <changelog> + <release> + <version> + <release>0.5.0</release> + <api>0.5.0</api> + </version> + <stability> + <release>alpha</release> + <api>alpha</api> + </stability> + <date>2015-06-16</date> + <license>BSD</license> + <notes> +First alpha release + </notes> + </release> + <release> + <version> + <release>0.5.1</release> + <api>0.5.1</api> + </version> + <stability> + <release>alpha</release> + <api>alpha</api> + </stability> + <date>2015-07-09</date> + <license>BSD</license> + <notes> +Update to wrap gRPC C Core version 0.10.0 + </notes> + </release> + <release> + <version> + <release>0.6.0</release> + <api>0.6.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2015-09-24</date> + <license>BSD</license> + <notes> +- support per message compression disable +- expose per-call host override option +- expose connectivity API +- expose channel target and call peer +- add user-agent +- update to wrap gRPC C core library beta version 0.11.0 + </notes> + </release> + <release> + <version> + <release>0.6.1</release> + <api>0.6.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2015-10-21</date> + <license>BSD</license> + <notes> +- fixed undefined constant fatal error when run with apache/nginx #2275 + </notes> + </release> + <release> + <version> + <release>0.7.0</release> + <api>0.7.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2016-01-13</date> + <license>BSD</license> + <notes> +- Breaking change to Credentials class (removed) #3765 +- Replaced by ChannelCredentials and CallCredentials class #3765 +- New plugin based metadata auth API #4394 +- Explicit ChannelCredentials::createInsecure() call + </notes> + </release> + <release> + <version> + <release>0.8.0</release> + <api>0.8.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2016-02-23</date> + <license>BSD</license> + <notes> +- Simplify gRPC PHP installation #4517 + </notes> + </release> + </changelog> +</package> diff --git a/src/core/proto/grpc/lb/v0/load_balancer.pb.c b/src/core/proto/grpc/lb/v0/load_balancer.pb.c index abd4b1cefc..59aae30cff 100644 --- a/src/core/proto/grpc/lb/v0/load_balancer.pb.c +++ b/src/core/proto/grpc/lb/v0/load_balancer.pb.c @@ -31,7 +31,7 @@ * */ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.3.4-dev */ +/* Generated by nanopb-0.3.5-dev */ #include "src/core/proto/grpc/lb/v0/load_balancer.pb.h" diff --git a/src/core/proto/grpc/lb/v0/load_balancer.pb.h b/src/core/proto/grpc/lb/v0/load_balancer.pb.h index 8703721399..3599f881bb 100644 --- a/src/core/proto/grpc/lb/v0/load_balancer.pb.h +++ b/src/core/proto/grpc/lb/v0/load_balancer.pb.h @@ -31,7 +31,7 @@ * */ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.3.4-dev */ +/* Generated by nanopb-0.3.5-dev */ #ifndef PB_LOAD_BALANCER_PB_H_INCLUDED #define PB_LOAD_BALANCER_PB_H_INCLUDED @@ -44,7 +44,6 @@ extern "C" { #endif -/* Enum definitions */ /* Struct definitions */ typedef struct _grpc_lb_v0_ClientStats { bool has_total_requests; @@ -164,6 +163,7 @@ extern const pb_field_t grpc_lb_v0_Server_fields[5]; #define grpc_lb_v0_LoadBalanceRequest_size 169 #define grpc_lb_v0_InitialLoadBalanceRequest_size 131 #define grpc_lb_v0_ClientStats_size 33 +#define grpc_lb_v0_LoadBalanceResponse_size (165 + grpc_lb_v0_ServerList_size) #define grpc_lb_v0_InitialLoadBalanceResponse_size 156 #define grpc_lb_v0_Server_size 127 diff --git a/templates/config.m4.template b/templates/config.m4.template new file mode 100644 index 0000000000..dbc12188dc --- /dev/null +++ b/templates/config.m4.template @@ -0,0 +1,44 @@ +%YAML 1.2 +--- | + PHP_ARG_ENABLE(grpc, whether to enable grpc support, + [ --enable-grpc Enable grpc support]) + + if test "$PHP_GRPC" != "no"; then + dnl Write more examples of tests here... + + dnl # --with-grpc -> add include path + PHP_ADD_INCLUDE(../../grpc/include) + PHP_ADD_INCLUDE(../../grpc/src/php/ext/grpc) + PHP_ADD_INCLUDE(../../grpc/third_party/boringssl/include) + + LIBS="-lpthread $LIBS" + + GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" + PHP_ADD_LIBRARY(pthread) + + PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD) + PHP_ADD_LIBRARY(dl) + + case $host in + *darwin*) ;; + *) + PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD) + PHP_ADD_LIBRARY(rt) + ;; + esac + + PHP_NEW_EXTENSION(grpc, + % for source in php_config_m4.src: + ${source} ${"\\"} + % endfor + % for lib in libs: + % if lib.name in php_config_m4.get('deps', []): + % for source in lib.src: + ${source} ${"\\"} + % endfor + % endif + % endfor + , $ext_shared, , -Wall -Werror -std=c11 ${"\\"} + -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN ${"\\"} + -D_HAS_EXCEPTIONS=0 -DNOMINMAX) + fi diff --git a/templates/package.xml.template b/templates/package.xml.template new file mode 100644 index 0000000000..455b002e64 --- /dev/null +++ b/templates/package.xml.template @@ -0,0 +1,159 @@ +%YAML 1.2 +--- | + <?xml version="1.0" encoding="UTF-8"?> + <package packagerversion="1.9.5" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> + <name>grpc</name> + <channel>pecl.php.net</channel> + <summary>A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.</summary> + <description>Remote Procedure Calls (RPCs) provide a useful abstraction for building distributed applications and services. The libraries in this repository provide a concrete implementation of the gRPC protocol, layered over HTTP/2. These libraries enable communication between clients and servers using any combination of the supported languages.</description> + <lead> + <name>Stanley Cheung</name> + <user>stanleycheung</user> + <email>grpc-packages@google.com</email> + <active>yes</active> + </lead> + <%! from time import strftime %><date>${"%Y-%m-%d" | strftime}</date> + <time>16:06:07</time> + <version> + <release>0.8.0</release> + <api>0.8.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <license>BSD</license> + <notes> + - Simplify gRPC PHP installation #4517 + </notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file baseinstalldir="/" name="config.m4" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/CREDITS" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/LICENSE" role="src" /> + <file baseinstalldir="/" name="src/php/ext/grpc/README.md" role="src" /> + % for source in php_config_m4.src + php_config_m4.headers: + <file baseinstalldir="/" name="${source}" role="src" /> + % endfor + % for lib in libs: + % if lib.name in php_config_m4.get('deps', []): + % for source in lib.get('public_headers', []) + lib.headers + lib.src: + <file baseinstalldir="/" name="${source}" role="src" /> + % endfor + % endif + % endfor + </dir> + </contents> + <dependencies> + <required> + <php> + <min>5.5.0</min> + </php> + <pearinstaller> + <min>1.4.0</min> + </pearinstaller> + </required> + </dependencies> + <providesextension>grpc</providesextension> + <extsrcrelease /> + <changelog> + <release> + <version> + <release>0.5.0</release> + <api>0.5.0</api> + </version> + <stability> + <release>alpha</release> + <api>alpha</api> + </stability> + <date>2015-06-16</date> + <license>BSD</license> + <notes> + First alpha release + </notes> + </release> + <release> + <version> + <release>0.5.1</release> + <api>0.5.1</api> + </version> + <stability> + <release>alpha</release> + <api>alpha</api> + </stability> + <date>2015-07-09</date> + <license>BSD</license> + <notes> + Update to wrap gRPC C Core version 0.10.0 + </notes> + </release> + <release> + <version> + <release>0.6.0</release> + <api>0.6.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2015-09-24</date> + <license>BSD</license> + <notes> + - support per message compression disable + - expose per-call host override option + - expose connectivity API + - expose channel target and call peer + - add user-agent + - update to wrap gRPC C core library beta version 0.11.0 + </notes> + </release> + <release> + <version> + <release>0.6.1</release> + <api>0.6.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2015-10-21</date> + <license>BSD</license> + <notes> + - fixed undefined constant fatal error when run with apache/nginx #2275 + </notes> + </release> + <release> + <version> + <release>0.7.0</release> + <api>0.7.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>2016-01-13</date> + <license>BSD</license> + <notes> + - Breaking change to Credentials class (removed) #3765 + - Replaced by ChannelCredentials and CallCredentials class #3765 + - New plugin based metadata auth API #4394 + - Explicit ChannelCredentials::createInsecure() call + </notes> + </release> + <release> + <version> + <release>0.8.0</release> + <api>0.8.0</api> + </version> + <stability> + <release>beta</release> + <api>beta</api> + </stability> + <date>${"%Y-%m-%d" | strftime}</date> + <license>BSD</license> + <notes> + - Simplify gRPC PHP installation #4517 + </notes> + </release> + </changelog> + </package> diff --git a/templates/tools/dockerfile/apt_get_basic.include b/templates/tools/dockerfile/apt_get_basic.include index 9237e7dace..547ce01a30 100644 --- a/templates/tools/dockerfile/apt_get_basic.include +++ b/templates/tools/dockerfile/apt_get_basic.include @@ -1,3 +1,4 @@ +<%page args="skip_golang=False"/>\ # Install Git and basic packages. RUN apt-get update && apt-get install -y ${'\\'} autoconf ${'\\'} @@ -9,7 +10,9 @@ RUN apt-get update && apt-get install -y ${'\\'} gcc ${'\\'} gcc-multilib ${'\\'} git ${'\\'} +% if not skip_golang: golang ${'\\'} +% endif gyp ${'\\'} lcov ${'\\'} libc6 ${'\\'} diff --git a/templates/tools/dockerfile/run_tests_addons.include b/templates/tools/dockerfile/run_tests_addons.include index 27ac67f5d8..30d22be298 100644 --- a/templates/tools/dockerfile/run_tests_addons.include +++ b/templates/tools/dockerfile/run_tests_addons.include @@ -1,7 +1,10 @@ +<%page args="skip_zookeeper=False"/>\ <%include file="ccache_setup.include"/> +% if not skip_zookeeper: #====================== # Zookeeper dependencies # TODO(jtattermusch): is zookeeper still needed? RUN apt-get install -y libzookeeper-mt-dev +% endif RUN mkdir /var/local/jenkins diff --git a/templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template new file mode 100644 index 0000000000..294ae00b4c --- /dev/null +++ b/templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template @@ -0,0 +1,45 @@ +%YAML 1.2 +--- | + # Copyright 2015-2016, Google Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are + # met: + # + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above + # copyright notice, this list of conditions and the following disclaimer + # in the documentation and/or other materials provided with the + # distribution. + # * Neither the name of Google Inc. nor the names of its + # contributors may be used to endorse or promote products derived from + # this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + FROM debian:squeeze + + <%include file="../../apt_get_basic.include" args="skip_golang=True"/> + + # libgflags-dev is not available on squeezy + RUN apt-get update && apt-get -y install libgtest-dev libc++-dev clang && apt-get clean + + RUN apt-get update && apt-get -y install python-pip && apt-get clean + RUN pip install argparse + + <%include file="../../run_tests_addons.include" args="skip_zookeeper=True"/> + # Define the default command. + CMD ["bash"] +
\ No newline at end of file diff --git a/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template new file mode 100644 index 0000000000..6b30274892 --- /dev/null +++ b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template @@ -0,0 +1,39 @@ +%YAML 1.2 +--- | + # Copyright 2015-2016, Google Inc. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are + # met: + # + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above + # copyright notice, this list of conditions and the following disclaimer + # in the documentation and/or other materials provided with the + # distribution. + # * Neither the name of Google Inc. nor the names of its + # contributors may be used to endorse or promote products derived from + # this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + FROM ubuntu:16.04 + + <%include file="../../apt_get_basic.include"/> + <%include file="../../cxx_deps.include"/> + <%include file="../../run_tests_addons.include"/> + # Define the default command. + CMD ["bash"] +
\ No newline at end of file diff --git a/test/distrib/php/distribtest.php b/test/distrib/php/distribtest.php new file mode 100644 index 0000000000..318c6f9cf0 --- /dev/null +++ b/test/distrib/php/distribtest.php @@ -0,0 +1,13 @@ +<?php + +$channel = new Grpc\Channel('localhost:1000', [ + 'credentials' => Grpc\ChannelCredentials::createInsecure() +]); + +$deadline = Grpc\Timeval::infFuture(); +$call = new Grpc\Call($channel, + 'dummy_method', + $deadline); + +$call->cancel(); +$channel->close(); diff --git a/test/distrib/php/run_distrib_test.sh b/test/distrib/php/run_distrib_test.sh new file mode 100755 index 0000000000..43b28d8429 --- /dev/null +++ b/test/distrib/php/run_distrib_test.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -ex + +cd $(dirname $0) + +cp -r $EXTERNAL_GIT_ROOT/input_artifacts/grpc-php.tgz . + +pecl install grpc-php.tgz + +php -d extension=grpc.so -d max_execution_time=300 distribtest.php diff --git a/third_party/nanopb b/third_party/nanopb -Subproject 5497a1dfc91a86965383cdd1652e34834540043 +Subproject f8ac463766281625ad710900479130c7fcb4d63 diff --git a/tools/distrib/check_nanopb_output.sh b/tools/distrib/check_nanopb_output.sh index 9cb7581d87..5f49ebb93e 100755 --- a/tools/distrib/check_nanopb_output.sh +++ b/tools/distrib/check_nanopb_output.sh @@ -32,7 +32,7 @@ set -ex apt-get install -y autoconf automake libtool curl python-virtualenv -readonly NANOPB_TMP_OUTPUT="${LOCAL_GIT_ROOT}/gens/src/proto/grpc/lb/v0" +readonly NANOPB_TMP_OUTPUT="$(mktemp -d)" # install protoc version 3 pushd third_party/protobuf @@ -62,8 +62,7 @@ PATH="$PROTOC_PATH:$PATH" ./tools/codegen/core/gen_load_balancing_proto.sh \ $NANOPB_TMP_OUTPUT # compare outputs to checked compiled code -diff -rq $NANOPB_TMP_OUTPUT src/core/proto/grpc/lb/v0 -if [ $? != 0 ]; then +if ! diff -r $NANOPB_TMP_OUTPUT src/core/proto/grpc/lb/v0; then echo "Outputs differ: $NANOPB_TMP_OUTPUT vs src/core/proto/grpc/lb/v0" - exit 1 + exit 2 fi diff --git a/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile new file mode 100644 index 0000000000..d5d3fd626f --- /dev/null +++ b/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile @@ -0,0 +1,32 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM debian:jessie + +RUN apt-get update && apt-get install -y php5 php5-dev php-pear phpunit diff --git a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile index 41dc427454..d048b725c8 100644 --- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile @@ -91,6 +91,13 @@ RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" + +################## +# PHP dependencies + +RUN apt-get update && apt-get install -y \ + php5 php5-dev php-pear phpunit + RUN mkdir /var/local/jenkins # Define the default command. diff --git a/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile b/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile new file mode 100644 index 0000000000..0848887434 --- /dev/null +++ b/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile @@ -0,0 +1,84 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM debian:squeeze + +# Install Git and basic packages. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + ccache \ + curl \ + gcc \ + gcc-multilib \ + git \ + gyp \ + lcov \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + perl \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + + +# libgflags-dev is not available on squeezy +RUN apt-get update && apt-get -y install libgtest-dev libc++-dev clang && apt-get clean + +RUN apt-get update && apt-get -y install python-pip && apt-get clean +RUN pip install argparse + +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + + +RUN mkdir /var/local/jenkins + +# Define the default command. +CMD ["bash"] diff --git a/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile b/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile new file mode 100644 index 0000000000..c6fe79b42c --- /dev/null +++ b/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile @@ -0,0 +1,86 @@ +# Copyright 2015-2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM ubuntu:16.04 + +# Install Git and basic packages. +RUN apt-get update && apt-get install -y \ + autoconf \ + autotools-dev \ + build-essential \ + bzip2 \ + ccache \ + curl \ + gcc \ + gcc-multilib \ + git \ + golang \ + gyp \ + lcov \ + libc6 \ + libc6-dbg \ + libc6-dev \ + libgtest-dev \ + libtool \ + make \ + perl \ + strace \ + python-dev \ + python-setuptools \ + python-yaml \ + telnet \ + unzip \ + wget \ + zip && apt-get clean + +#================ +# Build profiling +RUN apt-get update && apt-get install -y time && apt-get clean + +#================= +# C++ dependencies +RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean + +# Prepare ccache +RUN ln -s /usr/bin/ccache /usr/local/bin/gcc +RUN ln -s /usr/bin/ccache /usr/local/bin/g++ +RUN ln -s /usr/bin/ccache /usr/local/bin/cc +RUN ln -s /usr/bin/ccache /usr/local/bin/c++ +RUN ln -s /usr/bin/ccache /usr/local/bin/clang +RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ + +#====================== +# Zookeeper dependencies +# TODO(jtattermusch): is zookeeper still needed? +RUN apt-get install -y libzookeeper-mt-dev + +RUN mkdir /var/local/jenkins + +# Define the default command. +CMD ["bash"] diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py index f84d35580b..803d3d106b 100644 --- a/tools/run_tests/artifact_targets.py +++ b/tools/run_tests/artifact_targets.py @@ -241,6 +241,23 @@ class NodeExtArtifact: ['tools/run_tests/build_artifact_node.sh', self.gyp_arch]) +class PHPArtifact: + """Builds PHP PECL package""" + + def __init__(self, platform, arch): + self.name = 'php_pecl_package_{0}_{1}'.format(platform, arch) + self.platform = platform + self.arch = arch + self.labels = ['artifact', 'php', platform, arch] + + def pre_build_jobspecs(self): + return [] + + def build_jobspec(self): + return create_docker_jobspec( + self.name, + 'tools/dockerfile/grpc_artifact_linux_{}'.format(self.arch), + 'tools/run_tests/build_artifact_php.sh') class ProtocArtifact: """Builds protoc and protoc-plugin artifacts""" @@ -299,4 +316,6 @@ def targets(): PythonArtifact('windows', 'x64'), RubyArtifact('linux', 'x86'), RubyArtifact('linux', 'x64'), - RubyArtifact('macos', 'x64')]) + RubyArtifact('macos', 'x64'), + PHPArtifact('linux', 'x64'), + PHPArtifact('macos', 'x64')]) diff --git a/tools/run_tests/build_artifact_php.sh b/tools/run_tests/build_artifact_php.sh new file mode 100755 index 0000000000..50bf0ea821 --- /dev/null +++ b/tools/run_tests/build_artifact_php.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PHP_TARGET_ARCH=$1 +set -ex + +cd $(dirname $0)/../.. + +mkdir -p artifacts + +pear package + +cp -r grpc-*.tgz artifacts/grpc-php.tgz diff --git a/tools/run_tests/build_package_php.sh b/tools/run_tests/build_package_php.sh new file mode 100755 index 0000000000..56e3319ed9 --- /dev/null +++ b/tools/run_tests/build_package_php.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -ex + +cd $(dirname $0)/../.. + +mkdir -p artifacts/ +cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=php,platform={windows,linux,macos}/artifacts/* artifacts/ || true diff --git a/tools/run_tests/distribtest_targets.py b/tools/run_tests/distribtest_targets.py index 261f44bc6d..0c02344d90 100644 --- a/tools/run_tests/distribtest_targets.py +++ b/tools/run_tests/distribtest_targets.py @@ -198,6 +198,33 @@ class RubyDistribTest(object): return self.name +class PHPDistribTest(object): + """Tests PHP package""" + + def __init__(self, platform, arch, docker_suffix): + self.name = 'php_%s_%s_%s' % (platform, arch, docker_suffix) + self.platform = platform + self.arch = arch + self.docker_suffix = docker_suffix + self.labels = ['distribtest', 'php', platform, arch, docker_suffix] + + def pre_build_jobspecs(self): + return [] + + def build_jobspec(self): + if not self.platform == 'linux': + raise Exception("Not supported yet.") + + return create_docker_jobspec(self.name, + 'tools/dockerfile/distribtest/php_%s_%s' % ( + self.docker_suffix, + self.arch), + 'test/distrib/php/run_distrib_test.sh') + + def __str__(self): + return self.name + + def targets(): """Gets list of supported targets""" return [CSharpDistribTest('linux', 'x64', 'wheezy'), @@ -241,7 +268,9 @@ def targets(): RubyDistribTest('linux', 'x64', 'ubuntu1510'), RubyDistribTest('linux', 'x64', 'ubuntu1604'), NodeDistribTest('macos', 'x64', None, '4'), - NodeDistribTest('linux', 'x86', 'jessie', '4') + NodeDistribTest('macos', 'x64', None, '5'), + NodeDistribTest('linux', 'x86', 'jessie', '4'), + PHPDistribTest('linux', 'x64', 'jessie'), ] + [ NodeDistribTest('linux', 'x64', os, version) for os in ('wheezy', 'jessie', 'ubuntu1204', 'ubuntu1404', diff --git a/tools/run_tests/package_targets.py b/tools/run_tests/package_targets.py index 4ca8279f1b..87bc4865ce 100644 --- a/tools/run_tests/package_targets.py +++ b/tools/run_tests/package_targets.py @@ -139,9 +139,27 @@ class PythonPackage: 'tools/run_tests/build_package_python.sh') +class PHPPackage: + """Copy PHP PECL package artifact""" + + def __init__(self): + self.name = 'php_package' + self.labels = ['package', 'php', 'linux'] + + def pre_build_jobspecs(self): + return [] + + def build_jobspec(self): + return create_docker_jobspec( + self.name, + 'tools/dockerfile/grpc_artifact_linux_x64', + 'tools/run_tests/build_package_php.sh') + + def targets(): """Gets list of supported targets""" return [CSharpPackage(), NodePackage(), RubyPackage(), - PythonPackage()] + PythonPackage(), + PHPPackage()] diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 0b3efa29e3..7b2bc53716 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -55,8 +55,8 @@ import report_utils import watch_dirs -ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) -os.chdir(ROOT) +_ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) +os.chdir(_ROOT) _FORCE_ENVIRON_FOR_WRAPPERS = {} @@ -118,6 +118,16 @@ def get_c_tests(travis, test_lang) : not (travis and tgt['flaky'])] +def _check_compiler(compiler, supported_compilers): + if compiler not in supported_compilers: + raise Exception('Compiler %s not supported.' % compiler) + + +def _is_use_docker_child(): + """Returns True if running running as a --use_docker child.""" + return True if os.getenv('RUN_TESTS_COMMAND') else False + + class CLanguage(object): def __init__(self, make_target, test_lang): @@ -125,44 +135,55 @@ class CLanguage(object): self.platform = platform_string() self.test_lang = test_lang - def test_specs(self, config, args): + def configure(self, config, args): + self.config = config + self.args = args + if self.platform == 'windows': + self._make_options = [_windows_toolset_option(self.args.compiler), + _windows_arch_option(self.args.arch)] + else: + self._make_options = [] + self._docker_distro = self._get_docker_distro(self.args.use_docker, + self.args.compiler) + + def test_specs(self): out = [] - binaries = get_c_tests(args.travis, self.test_lang) + binaries = get_c_tests(self.args.travis, self.test_lang) for target in binaries: - if config.build_config in target['exclude_configs']: + if self.config.build_config in target['exclude_configs']: continue if self.platform == 'windows': binary = 'vsprojects/%s%s/%s.exe' % ( - 'x64/' if args.arch == 'x64' else '', - _WINDOWS_CONFIG[config.build_config], + 'x64/' if self.args.arch == 'x64' else '', + _MSBUILD_CONFIG[self.config.build_config], target['name']) else: - binary = 'bins/%s/%s' % (config.build_config, target['name']) + binary = 'bins/%s/%s' % (self.config.build_config, target['name']) if os.path.isfile(binary): cmdline = [binary] + target['args'] - out.append(config.job_spec(cmdline, [binary], - shortname=' '.join(cmdline), - cpu_cost=target['cpu_cost'], - environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH': - os.path.abspath(os.path.dirname( - sys.argv[0]) + '/../../src/core/tsi/test_creds/ca.pem')})) - elif args.regex == '.*' or platform_string() == 'windows': + out.append(self.config.job_spec(cmdline, [binary], + shortname=' '.join(cmdline), + cpu_cost=target['cpu_cost'], + environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH': + _ROOT + '/src/core/tsi/test_creds/ca.pem'})) + elif self.args.regex == '.*' or self.platform == 'windows': print '\nWARNING: binary not found, skipping', binary return sorted(out) - def make_targets(self, test_regex): - if platform_string() != 'windows' and test_regex != '.*': + def make_targets(self): + test_regex = self.args.regex + if self.platform != 'windows' and self.args.regex != '.*': # use the regex to minimize the number of things to build return [os.path.basename(target['name']) for target in get_c_tests(False, self.test_lang) if re.search(test_regex, '/' + target['name'])] - if platform_string() == 'windows': + if self.platform == 'windows': # don't build tools on windows just yet return ['buildtests_%s' % self.make_target] return ['buildtests_%s' % self.make_target, 'tools_%s' % self.make_target] def make_options(self): - return [] + return self._make_options; def pre_build_steps(self): if self.platform == 'windows': @@ -182,11 +203,24 @@ class CLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return True + def _get_docker_distro(self, use_docker, compiler): + if _is_use_docker_child(): + return "already_under_docker" + if not use_docker: + _check_compiler(compiler, ['default']) + + if compiler == 'gcc4.9' or compiler == 'default': + return 'jessie' + elif compiler == 'gcc4.4': + return 'squeeze' + elif compiler == 'gcc5.3': + return 'ubuntu1604' + else: + raise Exception('Compiler %s not supported.' % compiler) - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/cxx_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/cxx_%s_%s' % (self._docker_distro, + _docker_arch_suffix(self.args.arch)) def __str__(self): return self.make_target @@ -198,13 +232,18 @@ class NodeLanguage(object): self.platform = platform_string() self.node_version = '0.12' - def test_specs(self, config, args): + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): if self.platform == 'windows': - return [config.job_spec(['tools\\run_tests\\run_node.bat'], None)] + return [self.config.job_spec(['tools\\run_tests\\run_node.bat'], None)] else: - return [config.job_spec(['tools/run_tests/run_node.sh', self.node_version], - None, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + return [self.config.job_spec(['tools/run_tests/run_node.sh', self.node_version], + None, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): if self.platform == 'windows': @@ -212,7 +251,7 @@ class NodeLanguage(object): else: return [['tools/run_tests/pre_build_node.sh', self.node_version]] - def make_targets(self, test_regex): + def make_targets(self): return [] def make_options(self): @@ -230,11 +269,8 @@ class NodeLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(self.args.arch) def __str__(self): return 'node' @@ -242,14 +278,19 @@ class NodeLanguage(object): class PhpLanguage(object): - def test_specs(self, config, args): - return [config.job_spec(['src/php/bin/run_tests.sh'], None, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): + return [self.config.job_spec(['src/php/bin/run_tests.sh'], None, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [] - def make_targets(self, test_regex): + def make_targets(self): return ['static_c', 'shared_c'] def make_options(self): @@ -264,11 +305,8 @@ class PhpLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/php_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/php_jessie_%s' % _docker_arch_suffix(self.args.arch) def __str__(self): return 'php' @@ -280,10 +318,15 @@ class PythonLanguage(object): self._build_python_versions = ['2.7'] self._has_python_versions = [] - def test_specs(self, config, args): + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS) environment['PYVER'] = '2.7' - return [config.job_spec( + return [self.config.job_spec( ['tools/run_tests/run_python.sh'], None, environ=environment, @@ -294,7 +337,7 @@ class PythonLanguage(object): def pre_build_steps(self): return [] - def make_targets(self, test_regex): + def make_targets(self): return ['static_c', 'grpc_python_plugin', 'shared_c'] def make_options(self): @@ -320,11 +363,8 @@ class PythonLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/python_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/python_jessie_%s' % _docker_arch_suffix(self.args.arch) def __str__(self): return 'python' @@ -332,15 +372,20 @@ class PythonLanguage(object): class RubyLanguage(object): - def test_specs(self, config, args): - return [config.job_spec(['tools/run_tests/run_ruby.sh'], None, - timeout_seconds=10*60, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): + return [self.config.job_spec(['tools/run_tests/run_ruby.sh'], None, + timeout_seconds=10*60, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [['tools/run_tests/pre_build_ruby.sh']] - def make_targets(self, test_regex): + def make_targets(self): return [] def make_options(self): @@ -355,27 +400,30 @@ class RubyLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/ruby_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/ruby_jessie_%s' % _docker_arch_suffix(self.args.arch) def __str__(self): return 'ruby' class CSharpLanguage(object): + def __init__(self): self.platform = platform_string() - def test_specs(self, config, args): + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): with open('src/csharp/tests.json') as f: tests_json = json.load(f) assemblies = tests_json['assemblies'] tests = tests_json['tests'] - msbuild_config = _WINDOWS_CONFIG[config.build_config] + msbuild_config = _MSBUILD_CONFIG[self.config.build_config] assembly_files = ['%s/bin/%s/%s.dll' % (a, msbuild_config, a) for a in assemblies] @@ -387,13 +435,13 @@ class CSharpLanguage(object): else: script_name = 'tools/run_tests/run_csharp.sh' - if config.build_config == 'gcov': + if self.config.build_config == 'gcov': # On Windows, we only collect C# code coverage. # On Linux, we only collect coverage for native extension. # For code coverage all tests need to run as one suite. - return [config.job_spec([script_name] + extra_args, None, - shortname='csharp.coverage', - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + return [self.config.job_spec([script_name] + extra_args, None, + shortname='csharp.coverage', + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] else: specs = [] for test in tests: @@ -402,9 +450,9 @@ class CSharpLanguage(object): # use different output directory for each test to prevent # TestResult.xml clash between parallel test runs. cmdline += ['-work=test-result/%s' % uuid.uuid4()] - specs.append(config.job_spec(cmdline, None, - shortname='csharp.%s' % test, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)) + specs.append(self.config.job_spec(cmdline, None, + shortname='csharp.%s' % test, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)) return specs def pre_build_steps(self): @@ -413,7 +461,7 @@ class CSharpLanguage(object): else: return [['tools/run_tests/pre_build_csharp.sh']] - def make_targets(self, test_regex): + def make_targets(self): # For Windows, this target doesn't really build anything, # everything is build by buildall script later. if self.platform == 'windows': @@ -440,11 +488,8 @@ class CSharpLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): - return 'tools/dockerfile/test/csharp_jessie_%s' % _docker_arch_suffix(arch) + def dockerfile_dir(self): + return 'tools/dockerfile/test/csharp_jessie_%s' % _docker_arch_suffix(self.args.arch) def __str__(self): return 'csharp' @@ -452,14 +497,19 @@ class CSharpLanguage(object): class ObjCLanguage(object): - def test_specs(self, config, args): - return [config.job_spec(['src/objective-c/tests/run_tests.sh'], None, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): + return [self.config.job_spec(['src/objective-c/tests/run_tests.sh'], None, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): return [] - def make_targets(self, test_regex): + def make_targets(self): return ['grpc_objective_c_plugin', 'interop_server'] def make_options(self): @@ -474,10 +524,7 @@ class ObjCLanguage(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): + def dockerfile_dir(self): return None def __str__(self): @@ -486,18 +533,23 @@ class ObjCLanguage(object): class Sanity(object): - def test_specs(self, config, args): + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default']) + + def test_specs(self): import yaml with open('tools/run_tests/sanity/sanity_tests.yaml', 'r') as f: - return [config.job_spec(cmd['script'].split(), None, - timeout_seconds=None, environ={'TEST': 'true'}, - cpu_cost=cmd.get('cpu_cost', 1)) + return [self.config.job_spec(cmd['script'].split(), None, + timeout_seconds=None, environ={'TEST': 'true'}, + cpu_cost=cmd.get('cpu_cost', 1)) for cmd in yaml.load(f)] def pre_build_steps(self): return [] - def make_targets(self, test_regex): + def make_targets(self): return ['run_dep_checks'] def make_options(self): @@ -512,55 +564,18 @@ class Sanity(object): def makefile_name(self): return 'Makefile' - def supports_multi_config(self): - return False - - def dockerfile_dir(self, config, arch): + def dockerfile_dir(self): return 'tools/dockerfile/test/sanity' def __str__(self): return 'sanity' -class Build(object): - - def test_specs(self, config, args): - return [] - - def pre_build_steps(self): - return [] - - def make_targets(self, test_regex): - return ['static'] - - def make_options(self): - return [] - - def build_steps(self): - return [] - - def post_tests_steps(self): - return [] - - def makefile_name(self): - return 'Makefile' - - def supports_multi_config(self): - return True - - def dockerfile_dir(self, config, arch): - return None - - def __str__(self): - return self.make_target - - # different configurations we can run under with open('tools/run_tests/configs.json') as f: _CONFIGS = dict((cfg['config'], Config(**cfg)) for cfg in ast.literal_eval(f.read())) -_DEFAULT = ['opt'] _LANGUAGES = { 'c++': CLanguage('cxx', 'c++'), 'c': CLanguage('c', 'c'), @@ -570,11 +585,11 @@ _LANGUAGES = { 'ruby': RubyLanguage(), 'csharp': CSharpLanguage(), 'objc' : ObjCLanguage(), - 'sanity': Sanity(), - 'build': Build(), + 'sanity': Sanity() } -_WINDOWS_CONFIG = { + +_MSBUILD_CONFIG = { 'dbg': 'Debug', 'opt': 'Release', 'gcov': 'Debug', @@ -651,14 +666,6 @@ def _docker_arch_suffix(arch): sys.exit(1) -def _get_dockerfile_dir(language, cfg, arch): - """Returns dockerfile to use""" - custom = language.dockerfile_dir(cfg, arch) - if custom: - return custom - else: - return 'tools/dockerfile/grpc_tests_multilang_%s' % _docker_arch_suffix(arch) - def runs_per_test_type(arg_str): """Auxilary function to parse the "runs_per_test" flag. @@ -682,9 +689,8 @@ def runs_per_test_type(arg_str): # parse command line argp = argparse.ArgumentParser(description='Run grpc tests.') argp.add_argument('-c', '--config', - choices=['all'] + sorted(_CONFIGS.keys()), - nargs='+', - default=_DEFAULT) + choices=sorted(_CONFIGS.keys()), + default='opt') argp.add_argument('-n', '--runs_per_test', default=1, type=runs_per_test_type, help='A positive integer or "inf". If "inf", all tests will run in an ' 'infinite loop. Especially useful in combination with "-f"') @@ -728,9 +734,11 @@ argp.add_argument('--arch', default='default', help='Selects architecture to target. For some platforms "default" is the only supported choice.') argp.add_argument('--compiler', - choices=['default', 'vs2010', 'vs2013', 'vs2015'], + choices=['default', + 'gcc4.4', 'gcc4.9', 'gcc5.3', + 'vs2010', 'vs2013', 'vs2015'], default='default', - help='Selects compiler to use. For some platforms "default" is the only supported choice.') + help='Selects compiler to use. Allowed values depend on the platform and language.') argp.add_argument('--build_only', default=False, action='store_const', @@ -776,11 +784,8 @@ if need_to_regenerate_projects: # grab config -run_configs = set(_CONFIGS[cfg] - for cfg in itertools.chain.from_iterable( - _CONFIGS.iterkeys() if x == 'all' else [x] - for x in args.config)) -build_configs = set(cfg.build_config for cfg in run_configs) +run_config = _CONFIGS[args.config] +build_config = run_config.build_config if args.travis: _FORCE_ENVIRON_FOR_WRAPPERS = {'GRPC_TRACE': 'api'} @@ -791,17 +796,13 @@ else: lang_list = args.language # We don't support code coverage on some languages if 'gcov' in args.config: - for bad in ['objc', 'sanity', 'build']: + for bad in ['objc', 'sanity']: if bad in lang_list: lang_list.remove(bad) languages = set(_LANGUAGES[l] for l in lang_list) - -if len(build_configs) > 1: - for language in languages: - if not language.supports_multi_config(): - print language, 'does not support multiple build configurations' - sys.exit(1) +for l in languages: + l.configure(run_config, args) language_make_options=[] if any(language.make_options() for language in languages): @@ -811,10 +812,6 @@ if any(language.make_options() for language in languages): else: language_make_options = next(iter(languages)).make_options() -if len(languages) != 1 or len(build_configs) != 1: - print 'Multi-language and multi-config testing is not supported.' - sys.exit(1) - if args.use_docker: if not args.travis: print 'Seen --use_docker flag, will run tests under docker.' @@ -824,14 +821,18 @@ if args.use_docker: print 'copied to the docker environment.' time.sleep(5) + dockerfile_dirs = set([l.dockerfile_dir() for l in languages]) + if len(dockerfile_dirs) > 1: + print 'Languages to be tested require running under different docker images.' + sys.exit(1) + dockerfile_dir = next(iter(dockerfile_dirs)) + child_argv = [ arg for arg in sys.argv if not arg == '--use_docker' ] run_tests_cmd = 'python tools/run_tests/run_tests.py %s' % ' '.join(child_argv[1:]) env = os.environ.copy() env['RUN_TESTS_COMMAND'] = run_tests_cmd - env['DOCKERFILE_DIR'] = _get_dockerfile_dir(next(iter(languages)), - next(iter(build_configs)), - args.arch) + env['DOCKERFILE_DIR'] = dockerfile_dir env['DOCKER_RUN_SCRIPT'] = 'tools/jenkins/docker_run_tests.sh' if args.xml_report: env['XML_REPORT'] = args.xml_report @@ -843,10 +844,6 @@ if args.use_docker: env=env) sys.exit(0) -if platform_string() != 'windows' and args.compiler != 'default': - print 'Compiler %s not supported on current platform.' % args.compiler - sys.exit(1) - _check_arch_option(args.arch) def make_jobspec(cfg, targets, makefile='Makefile'): @@ -861,9 +858,7 @@ def make_jobspec(cfg, targets, makefile='Makefile'): return [ jobset.JobSpec([_windows_build_bat(args.compiler), 'vsprojects\\%s.sln' % target, - '/p:Configuration=%s' % _WINDOWS_CONFIG[cfg], - _windows_toolset_option(args.compiler), - _windows_arch_option(args.arch)] + + '/p:Configuration=%s' % _MSBUILD_CONFIG[cfg]] + extra_args + language_make_options, shell=True, timeout_seconds=None) @@ -886,32 +881,29 @@ make_targets = {} for l in languages: makefile = l.makefile_name() make_targets[makefile] = make_targets.get(makefile, set()).union( - set(l.make_targets(args.regex))) + set(l.make_targets())) def build_step_environ(cfg): environ = {'CONFIG': cfg} - msbuild_cfg = _WINDOWS_CONFIG.get(cfg) + msbuild_cfg = _MSBUILD_CONFIG.get(cfg) if msbuild_cfg: environ['MSBUILD_CONFIG'] = msbuild_cfg return environ build_steps = list(set( - jobset.JobSpec(cmdline, environ=build_step_environ(cfg), flake_retries=5) - for cfg in build_configs + jobset.JobSpec(cmdline, environ=build_step_environ(build_config), flake_retries=5) for l in languages for cmdline in l.pre_build_steps())) if make_targets: - make_commands = itertools.chain.from_iterable(make_jobspec(cfg, list(targets), makefile) for cfg in build_configs for (makefile, targets) in make_targets.iteritems()) + make_commands = itertools.chain.from_iterable(make_jobspec(build_config, list(targets), makefile) for (makefile, targets) in make_targets.iteritems()) build_steps.extend(set(make_commands)) build_steps.extend(set( - jobset.JobSpec(cmdline, environ=build_step_environ(cfg), timeout_seconds=None) - for cfg in build_configs + jobset.JobSpec(cmdline, environ=build_step_environ(build_config), timeout_seconds=None) for l in languages for cmdline in l.build_steps())) post_tests_steps = list(set( - jobset.JobSpec(cmdline, environ=build_step_environ(cfg)) - for cfg in build_configs + jobset.JobSpec(cmdline, environ=build_step_environ(build_config)) for l in languages for cmdline in l.post_tests_steps())) runs_per_test = args.runs_per_test @@ -1024,7 +1016,7 @@ def _start_port_server(port_server_port): print 'last ditch attempt to contact port server succeeded' break except: - traceback.print_exc(); + traceback.print_exc() port_log = open(logfile, 'r').read() print port_log sys.exit(1) @@ -1044,7 +1036,7 @@ def _start_port_server(port_server_port): time.sleep(1) waits += 1 except: - traceback.print_exc(); + traceback.print_exc() port_server.kill() raise @@ -1102,9 +1094,8 @@ def _build_and_run( infinite_runs = runs_per_test == 0 one_run = set( spec - for config in run_configs for language in languages - for spec in language.test_specs(config, args) + for spec in language.test_specs() if re.search(args.regex, spec.shortname)) # When running on travis, we want out test runs to be as similar as possible # for reproducibility purposes. diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh index c08b382638..3c6dbb9ea1 100755 --- a/tools/run_tests/sanity/check_submodules.sh +++ b/tools/run_tests/sanity/check_submodules.sh @@ -44,7 +44,7 @@ cat << EOF | awk '{ print $1 }' | sort > $want_submodules 9f897b25800d2f54f5c442ef01a60721aeca6d87 third_party/boringssl (version_for_cocoapods_1.0-67-g9f897b2) 05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f) c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0) - 5497a1dfc91a86965383cdd1652e348345400435 third_party/nanopb (nanopb-0.3.3-10-g5497a1d) + f8ac463766281625ad710900479130c7fcb4d63b third_party/nanopb (nanopb-0.3.4-29-gf8ac463) d5fb408ddc281ffcadeb08699e65bb694656d0bd third_party/protobuf (v3.0.0-beta-2) 50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8) EOF |