diff options
author | maxim-yurchuk <[email protected]> | 2024-10-09 12:29:46 +0300 |
---|---|---|
committer | maxim-yurchuk <[email protected]> | 2024-10-09 13:14:22 +0300 |
commit | 9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80 (patch) | |
tree | a8fb3181d5947c0d78cf402aa56e686130179049 /contrib/python/grpcio/py3 | |
parent | a44b779cd359f06c3ebbef4ec98c6b38609d9d85 (diff) |
publishFullContrib: true for ydb
<HIDDEN_URL>
commit_hash:c82a80ac4594723cebf2c7387dec9c60217f603e
Diffstat (limited to 'contrib/python/grpcio/py3')
16 files changed, 4312 insertions, 0 deletions
diff --git a/contrib/python/grpcio/py3/.dist-info/METADATA b/contrib/python/grpcio/py3/.dist-info/METADATA new file mode 100644 index 00000000000..a679047cb5e --- /dev/null +++ b/contrib/python/grpcio/py3/.dist-info/METADATA @@ -0,0 +1,141 @@ +Metadata-Version: 2.1 +Name: grpcio +Version: 1.54.2 +Summary: HTTP/2-based RPC framework +Home-page: https://grpc.io +Author: The gRPC Authors +Author-email: [email protected] +License: Apache License 2.0 +Project-URL: Source Code, https://github.com/grpc/grpc +Project-URL: Bug Tracker, https://github.com/grpc/grpc/issues +Project-URL: Documentation, https://grpc.github.io/grpc/python +Classifier: Development Status :: 5 - Production/Stable +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: License :: OSI Approved :: Apache Software License +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +Provides-Extra: protobuf +Requires-Dist: grpcio-tools (>=1.54.2) ; extra == 'protobuf' + +gRPC Python +=========== + +|compat_check_pypi| + +Package for gRPC Python. + +.. |compat_check_pypi| image:: https://python-compatibility-tools.appspot.com/one_badge_image?package=grpcio + :target: https://python-compatibility-tools.appspot.com/one_badge_target?package=grpcio + +Supported Python Versions +------------------------- +Python >= 3.7 + +Installation +------------ + +gRPC Python is available for Linux, macOS, and Windows. + +Installing From PyPI +~~~~~~~~~~~~~~~~~~~~ + +If you are installing locally... + +:: + + $ pip install grpcio + +Else system wide (on Ubuntu)... + +:: + + $ sudo pip install grpcio + +If you're on Windows make sure that you installed the :code:`pip.exe` component +when you installed Python (if not go back and install it!) then invoke: + +:: + + $ pip.exe install grpcio + +Windows users may need to invoke :code:`pip.exe` from a command line ran as +administrator. + +n.b. On Windows and on Mac OS X one *must* have a recent release of :code:`pip` +to retrieve the proper wheel from PyPI. Be sure to upgrade to the latest +version! + +Installing From Source +~~~~~~~~~~~~~~~~~~~~~~ + +Building from source requires that you have the Python headers (usually a +package named :code:`python-dev`). + +:: + + $ export REPO_ROOT=grpc # REPO_ROOT can be any directory of your choice + $ git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc $REPO_ROOT + $ cd $REPO_ROOT + $ git submodule update --init + + # For the next two commands do `sudo pip install` if you get permission-denied errors + $ pip install -rrequirements.txt + $ GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install . + +You cannot currently install Python from source on Windows. Things might work +out for you in MSYS2 (follow the Linux instructions), but it isn't officially +supported at the moment. + +Troubleshooting +~~~~~~~~~~~~~~~ + +Help, I ... + +* **... see a** :code:`pkg_resources.VersionConflict` **when I try to install + grpc** + + This is likely because :code:`pip` doesn't own the offending dependency, + which in turn is likely because your operating system's package manager owns + it. You'll need to force the installation of the dependency: + + :code:`pip install --ignore-installed $OFFENDING_DEPENDENCY` + + For example, if you get an error like the following: + + :: + + Traceback (most recent call last): + File "<string>", line 17, in <module> + ... + File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 509, in find + raise VersionConflict(dist, req) + pkg_resources.VersionConflict: (six 1.8.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.10')) + + You can fix it by doing: + + :: + + sudo pip install --ignore-installed six + +* **... see the following error on some platforms** + + :: + + /tmp/pip-build-U8pSsr/cython/Cython/Plex/Scanners.c:4:20: fatal error: Python.h: No such file or directory + #include "Python.h" + ^ + compilation terminated. + + You can fix it by installing `python-dev` package. i.e + + :: + + sudo apt-get install python-dev + diff --git a/contrib/python/grpcio/py3/.dist-info/top_level.txt b/contrib/python/grpcio/py3/.dist-info/top_level.txt new file mode 100644 index 00000000000..3b2fe54cba7 --- /dev/null +++ b/contrib/python/grpcio/py3/.dist-info/top_level.txt @@ -0,0 +1 @@ +grpc diff --git a/contrib/python/grpcio/py3/.yandex_meta/__init__.py b/contrib/python/grpcio/py3/.yandex_meta/__init__.py new file mode 100644 index 00000000000..d519c459ee0 --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/__init__.py @@ -0,0 +1,79 @@ +import os +import shutil + +from devtools.yamaker.arcpath import ArcPath +from devtools.yamaker.modules import py_srcs, Linkable, Switch +from devtools.yamaker.project import NixProject +from devtools.yamaker import python + + +def post_install(self): + python.extract_dist_info(self) + + # pypi archive with grpcio contains cpp core and python files + # Python files in this archive are located in src/python/grpcio + # In order to exclude additional PEERDIR usage in Arcadia + # let's move src/python/grpcio content directly to contrib/python/grpcio/py3 + python_source_location = os.path.join(self.dstdir, "src/python/grpcio") + grpcio_files = os.listdir(python_source_location) + + # move all files to root + for elem in grpcio_files: + shutil.move(os.path.join(python_source_location, elem), self.dstdir) + + # remove unnecessary folder src + shutil.rmtree(os.path.join(self.dstdir, "src")) + + # Collect python files but remove files for pypi build and + # yamaker related files + with self.yamakes["."] as pb: + py_src_common = py_srcs( + self.dstdir, + remove=[ + ".yandex_meta/__init__.py", # yamaker settings + "grpc_core_dependencies.py", + "support.py", + "commands.py", + "_spawn_patch.py", + "_parallel_compile_patch.py", + "grpc_version.py", + ], + ) + + pb.to_py_library( + module="PY3_LIBRARY", + PY_SRCS=py_src_common, + PEERDIR=["contrib/libs/grpc", "contrib/python/six"], + ADDINCL=[ + "${ARCADIA_BUILD_ROOT}/contrib/libs/grpc", + "contrib/libs/grpc", + "contrib/libs/grpc/include", + ArcPath("contrib/python/grpcio/py3", FOR="cython"), + ], + ) + + # Function pointer is not sanitized for ubsan. + # This decision has been done in original grpc repo. + # see https://github.com/grpc/grpc/blob/v1.45.0/tools/bazel.rc#L103 + pb.after( + "ADDINCL", + Switch({'SANITIZER_TYPE == undefined': Linkable(CXXFLAGS=["-fno-sanitize=function"])}), + ) + + +grpcio = NixProject( + owners=["g:python-contrib"], + projects=["python/grpcio"], + arcdir="contrib/python/grpcio/py3", + nixattr=python.make_nixattr("grpcio"), + ignore_targets=[ + "cygrpc.cpython-310-x86_64-linux-gnu", + ], + copy_sources=[ + "src/python/grpcio/**/*.py", + "src/python/grpcio/**/*.pxi", + "src/python/grpcio/**/*.pxd", + "src/python/grpcio/**/*.pyx", + ], + post_install=post_install, +) diff --git a/contrib/python/grpcio/py3/.yandex_meta/devtools.copyrights.report b/contrib/python/grpcio/py3/.yandex_meta/devtools.copyrights.report new file mode 100644 index 00000000000..40782daa6a9 --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/devtools.copyrights.report @@ -0,0 +1,304 @@ +# File format ($ symbol means the beginning of a line): +# +# $ # this message +# $ # ======================= +# $ # comments (all commentaries should starts with some number of spaces and # symbol) +# $ IGNORE_FILES {file1.ext1} {file2.ext2} - (optional) ignore listed files when generating license macro and credits +# $ RENAME {original license id} TO {new license id} # user comments - (optional) use {new license id} instead {original license id} in ya.make files +# $ # user comments +# $ +# ${action} {license id} {license text hash} +# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make +# ${all_file_action} filename +# $ # user commentaries (many lines) +# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify) +# ${action} {license spdx} {license text hash} +# $BELONGS ./ya/make/file/relative/path/3/ya.make +# ${all_file_action} filename +# $ # user commentaries +# $ generated description +# $ ... +# +# You can modify action, all_file_action and add commentaries +# Available actions: +# keep - keep license in contrib and use in credits +# skip - skip license +# remove - remove all files with this license +# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file +# +# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory) +# We suppose that that files can contain some license info +# Available all file actions: +# FILE_IGNORE - ignore file (do nothing) +# FILE_INCLUDE - include all file data into licenses text file +# ======================= + +KEEP COPYRIGHT_SERVICE_LABEL 0f2ee97b72f8652f2f1b888d86348121 +BELONGS ya.make + License text: + \# Copyright 2015 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + commands.py [1:1] + grpc/_cython/__init__.py [1:1] + grpc/_cython/_cygrpc/__init__.py [1:1] + grpc/_cython/_cygrpc/call.pxd.pxi [1:1] + grpc/_cython/_cygrpc/call.pyx.pxi [1:1] + grpc/_cython/_cygrpc/channel.pxd.pxi [1:1] + grpc/_cython/_cygrpc/channel.pyx.pxi [1:1] + grpc/_cython/_cygrpc/completion_queue.pxd.pxi [1:1] + grpc/_cython/_cygrpc/completion_queue.pyx.pxi [1:1] + grpc/_cython/_cygrpc/credentials.pxd.pxi [1:1] + grpc/_cython/_cygrpc/credentials.pyx.pxi [1:1] + grpc/_cython/_cygrpc/grpc.pxi [1:1] + grpc/_cython/_cygrpc/records.pxd.pxi [1:1] + grpc/_cython/_cygrpc/records.pyx.pxi [1:1] + grpc/_cython/_cygrpc/server.pxd.pxi [1:1] + grpc/_cython/_cygrpc/server.pyx.pxi [1:1] + grpc/_cython/cygrpc.pxd [1:1] + grpc/_cython/cygrpc.pyx [1:1] + grpc/_plugin_wrapping.py [1:1] + grpc/_utilities.py [1:1] + grpc/beta/__init__.py [1:1] + grpc/beta/interfaces.py [1:1] + grpc/beta/utilities.py [1:1] + grpc/framework/__init__.py [1:1] + grpc/framework/common/__init__.py [1:1] + grpc/framework/common/cardinality.py [1:1] + grpc/framework/common/style.py [1:1] + grpc/framework/foundation/__init__.py [1:1] + grpc/framework/foundation/abandonment.py [1:1] + grpc/framework/foundation/callable_util.py [1:1] + grpc/framework/foundation/future.py [1:1] + grpc/framework/foundation/logging_pool.py [1:1] + grpc/framework/foundation/stream.py [1:1] + grpc/framework/foundation/stream_util.py [1:1] + grpc/framework/interfaces/__init__.py [1:1] + grpc/framework/interfaces/base/__init__.py [1:1] + grpc/framework/interfaces/base/base.py [1:1] + grpc/framework/interfaces/base/utilities.py [1:1] + grpc/framework/interfaces/face/__init__.py [1:1] + grpc/framework/interfaces/face/face.py [1:1] + grpc/framework/interfaces/face/utilities.py [1:1] + grpc_core_dependencies.py [1:1] + grpc_version.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 102c1910c87bee28e8a69885f85346f4 +BELONGS ya.make + License text: + \# Copyright 2022 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_typing.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 1393ed0d9a5e8e3a97f2447521ecb0a6 +BELONGS ya.make + License text: + \# Copyright 2018 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/arguments.pyx.pxi [1:1] + grpc/_cython/_cygrpc/fork_posix.pxd.pxi [1:1] + grpc/_cython/_cygrpc/fork_posix.pyx.pxi [1:1] + grpc/_cython/_cygrpc/fork_windows.pyx.pxi [1:1] + grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi [1:1] + grpc/_cython/_cygrpc/time.pxd.pxi [1:1] + grpc/_cython/_cygrpc/time.pyx.pxi [1:1] + grpc/experimental/__init__.py [1:1] + grpc/experimental/gevent.py [1:1] + grpc/experimental/session_cache.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 1ad5a8379223f39b4124906a5bd2437d +BELONGS ya.make + License text: + \# Copyright 2019 The gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_compression.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 1c0b49517f30a005a1f30fc39200d3ee +BELONGS ya.make + License text: + \# Copyright 2019 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/aio/call.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/call.pyx.pxi [1:1] + grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi [1:1] + grpc/_cython/_cygrpc/aio/channel.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/channel.pyx.pxi [1:1] + grpc/_cython/_cygrpc/aio/grpc_aio.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi [1:1] + grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi [1:1] + grpc/_cython/_cygrpc/vtable.pxd.pxi [1:1] + grpc/_cython/_cygrpc/vtable.pyx.pxi [1:1] + grpc/aio/__init__.py [1:1] + grpc/aio/_call.py [1:1] + grpc/aio/_channel.py [1:1] + grpc/aio/_interceptor.py [1:1] + grpc/aio/_utils.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 249314deafd9b3e055b23b29bdbf09f3 +BELONGS ya.make + License text: + \# Copyright 2020 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/aio/_metadata.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 24f793f95f5c432d60ec3ef10b0e1a07 +BELONGS ya.make + License text: + Copyright 2016, Google Inc. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + LICENSE [208:208] + +KEEP COPYRIGHT_SERVICE_LABEL 3f8e6ecc96f8543539ce4b548cdc9afb +BELONGS ya.make + License text: + \# Copyright 2021 The gRPC Authors + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/csds.pyx.pxi [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 57712bcea01f379c970232b100dc2326 +BELONGS ya.make + License text: + \# Copyright 2020 The gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/thread.pyx.pxi [1:1] + grpc/_runtime_protos.py [1:1] + grpc/_simple_stubs.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 7b51323881f67ba78a30a266dca846ec +BELONGS ya.make + License text: + \# Copyright 2018 The gRPC Authors + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + _parallel_compile_patch.py [1:1] + grpc/_cython/_cygrpc/_hooks.pxd.pxi [1:1] + grpc/_cython/_cygrpc/_hooks.pyx.pxi [1:1] + grpc/_cython/_cygrpc/arguments.pxd.pxi [1:1] + grpc/_cython/_cygrpc/channelz.pyx.pxi [1:1] + grpc/_cython/_cygrpc/propagation_bits.pxd.pxi [1:1] + grpc/_cython/_cygrpc/propagation_bits.pyx.pxi [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 8183794cfdcd444d086a2c63a36d9beb +BELONGS ya.make + License text: + \# Copyright 2020 The gRPC Authors + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi [1:1] + grpc/aio/_base_channel.py [1:1] + grpc/aio/_base_server.py [1:1] + grpc/experimental/aio/__init__.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL 90fc8bbf7a57ec743af147a4496a5eb2 +BELONGS ya.make + License text: + \# Copyright 2019 The gRPC Authors + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/aio/common.pyx.pxi [1:1] + grpc/_cython/_cygrpc/aio/server.pxd.pxi [1:1] + grpc/_cython/_cygrpc/aio/server.pyx.pxi [1:1] + grpc/aio/_base_call.py [1:1] + grpc/aio/_server.py [1:1] + grpc/aio/_typing.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL cd2dccf3745a79cfb4fea6a49cb170ae +BELONGS ya.make + License text: + \# Copyright 2015-2016 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/__init__.py [1:1] + grpc/beta/implementations.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL ce123482847d9599548cd2797b1f2978 +BELONGS ya.make + License text: + \# Copyright 2017 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + grpc/_cython/_cygrpc/event.pxd.pxi [1:1] + grpc/_cython/_cygrpc/event.pyx.pxi [1:1] + grpc/_cython/_cygrpc/grpc_gevent.pxd.pxi [1:1] + grpc/_cython/_cygrpc/metadata.pxd.pxi [1:1] + grpc/_cython/_cygrpc/metadata.pyx.pxi [1:1] + grpc/_cython/_cygrpc/operation.pxd.pxi [1:1] + grpc/_cython/_cygrpc/operation.pyx.pxi [1:1] + grpc/_cython/_cygrpc/tag.pxd.pxi [1:1] + grpc/_cython/_cygrpc/tag.pyx.pxi [1:1] + grpc/_interceptor.py [1:1] + grpc/beta/_metadata.py [1:1] + +KEEP COPYRIGHT_SERVICE_LABEL f8fb9a8ebe3e4b096090bd006ebb72cc +BELONGS ya.make + License text: + \# Copyright 2016 gRPC authors. + Scancode info: + Original SPDX id: COPYRIGHT_SERVICE_LABEL + Score : 100.00 + Match type : COPYRIGHT + Files with this license: + _spawn_patch.py [1:1] + grpc/_auth.py [1:1] + grpc/_channel.py [1:1] + grpc/_common.py [1:1] + grpc/_cython/_cygrpc/grpc_string.pyx.pxi [1:1] + grpc/_cython/_cygrpc/security.pxd.pxi [1:1] + grpc/_cython/_cygrpc/security.pyx.pxi [1:1] + grpc/_server.py [1:1] + grpc/beta/_client_adaptations.py [1:1] + grpc/beta/_server_adaptations.py [1:1] + support.py [1:1] diff --git a/contrib/python/grpcio/py3/.yandex_meta/devtools.licenses.report b/contrib/python/grpcio/py3/.yandex_meta/devtools.licenses.report new file mode 100644 index 00000000000..d8bcbbc08ce --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/devtools.licenses.report @@ -0,0 +1,261 @@ +# File format ($ symbol means the beginning of a line): +# +# $ # this message +# $ # ======================= +# $ # comments (all commentaries should starts with some number of spaces and # symbol) +# $ IGNORE_FILES {file1.ext1} {file2.ext2} - (optional) ignore listed files when generating license macro and credits +# $ RENAME {original license id} TO {new license id} # user comments - (optional) use {new license id} instead {original license id} in ya.make files +# $ # user comments +# $ +# ${action} {license id} {license text hash} +# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make +# ${all_file_action} filename +# $ # user commentaries (many lines) +# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify) +# ${action} {license spdx} {license text hash} +# $BELONGS ./ya/make/file/relative/path/3/ya.make +# ${all_file_action} filename +# $ # user commentaries +# $ generated description +# $ ... +# +# You can modify action, all_file_action and add commentaries +# Available actions: +# keep - keep license in contrib and use in credits +# skip - skip license +# remove - remove all files with this license +# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file +# +# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory) +# We suppose that that files can contain some license info +# Available all file actions: +# FILE_IGNORE - ignore file (do nothing) +# FILE_INCLUDE - include all file data into licenses text file +# ======================= + +KEEP Python-2.0 084da548815188967cad816891b84e50 +BELONGS ya.make + License text: + \# limitations under the License. + """gRPC's Python API.""" + Scancode info: + Original SPDX id: Python-2.0 + Score : 66.67 + Match type : TAG + Links : http://docs.python.org/license.html, http://spdx.org/licenses/Python-2.0, https://spdx.org/licenses/Python-2.0 + Files with this license: + grpc/__init__.py [13:14] + +KEEP MPL-2.0 280da0ae8b63b2e861e6766d710e9baf +BELONGS ya.make +FILE_INCLUDE LICENSE found in files: LICENSE at line 600 + Note: matched license text is too long. Read it in the source files. + Scancode info: + Original SPDX id: MPL-2.0 + Score : 100.00 + Match type : TEXT + Links : http://mpl.mozilla.org/2012/01/03/announcing-mpl-2-0/, http://www.mozilla.com/MPL/2.0/, https://spdx.org/licenses/MPL-2.0 + Files with this license: + LICENSE [238:610] + +KEEP Apache-2.0 2b42edef8fa55315f34f2370b4715ca9 +BELONGS ya.make + Note: matched license text is too long. Read it in the source files. + Scancode info: + Original SPDX id: Apache-2.0 + Score : 100.00 + Match type : TEXT + Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0 + Files with this license: + LICENSE [2:202] + +KEEP Python-2.0 5749a3f68d211a0dbd91f414c9769695 +BELONGS ya.make + License text: + \# limitations under the License. + """gRPC's Python gEvent APIs.""" + Scancode info: + Original SPDX id: Python-2.0 + Score : 66.67 + Match type : TAG + Links : http://docs.python.org/license.html, http://spdx.org/licenses/Python-2.0, https://spdx.org/licenses/Python-2.0 + Files with this license: + grpc/experimental/gevent.py [13:14] + +KEEP Apache-2.0 86e8237b9a37a6951edea992afba41f3 +BELONGS ya.make + License text: + Classifier: License :: OSI Approved :: Apache Software License + Scancode info: + Original SPDX id: Apache-2.0 + Score : 95.00 + Match type : TAG + Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0 + Files with this license: + .dist-info/METADATA [20:20] + +KEEP Apache-2.0 920b2f581700b4aa528093ed0d2f5a5b +BELONGS ya.make + Note: matched license text is too long. Read it in the source files. + Scancode info: + Original SPDX id: Apache-2.0 + Score : 100.00 + Match type : NOTICE + Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0 + Files with this license: + _parallel_compile_patch.py [3:13] + _spawn_patch.py [3:13] + commands.py [3:13] + grpc/__init__.py [3:13] + grpc/_auth.py [3:13] + grpc/_channel.py [3:13] + grpc/_common.py [3:13] + grpc/_compression.py [3:13] + grpc/_cython/__init__.py [3:13] + grpc/_cython/_cygrpc/__init__.py [3:13] + grpc/_cython/_cygrpc/_hooks.pxd.pxi [3:13] + grpc/_cython/_cygrpc/_hooks.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/call.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/call.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/channel.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/channel.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/common.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/completion_queue.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/grpc_aio.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/grpc_aio.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/rpc_status.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/rpc_status.pyx.pxi [3:13] + grpc/_cython/_cygrpc/aio/server.pxd.pxi [3:13] + grpc/_cython/_cygrpc/aio/server.pyx.pxi [3:13] + grpc/_cython/_cygrpc/arguments.pxd.pxi [3:13] + grpc/_cython/_cygrpc/arguments.pyx.pxi [3:13] + grpc/_cython/_cygrpc/call.pxd.pxi [3:13] + grpc/_cython/_cygrpc/call.pyx.pxi [3:13] + grpc/_cython/_cygrpc/channel.pxd.pxi [3:13] + grpc/_cython/_cygrpc/channel.pyx.pxi [3:13] + grpc/_cython/_cygrpc/channelz.pyx.pxi [3:13] + grpc/_cython/_cygrpc/completion_queue.pxd.pxi [3:13] + grpc/_cython/_cygrpc/completion_queue.pyx.pxi [3:13] + grpc/_cython/_cygrpc/credentials.pxd.pxi [3:13] + grpc/_cython/_cygrpc/credentials.pyx.pxi [3:13] + grpc/_cython/_cygrpc/csds.pyx.pxi [3:13] + grpc/_cython/_cygrpc/event.pxd.pxi [3:13] + grpc/_cython/_cygrpc/event.pyx.pxi [3:13] + grpc/_cython/_cygrpc/fork_posix.pxd.pxi [3:13] + grpc/_cython/_cygrpc/fork_posix.pyx.pxi [3:13] + grpc/_cython/_cygrpc/fork_windows.pyx.pxi [3:13] + grpc/_cython/_cygrpc/grpc.pxi [3:13] + grpc/_cython/_cygrpc/grpc_gevent.pxd.pxi [3:13] + grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi [3:13] + grpc/_cython/_cygrpc/grpc_string.pyx.pxi [3:13] + grpc/_cython/_cygrpc/metadata.pxd.pxi [3:13] + grpc/_cython/_cygrpc/metadata.pyx.pxi [3:13] + grpc/_cython/_cygrpc/operation.pxd.pxi [3:13] + grpc/_cython/_cygrpc/operation.pyx.pxi [3:13] + grpc/_cython/_cygrpc/propagation_bits.pxd.pxi [3:13] + grpc/_cython/_cygrpc/propagation_bits.pyx.pxi [3:13] + grpc/_cython/_cygrpc/records.pxd.pxi [3:13] + grpc/_cython/_cygrpc/records.pyx.pxi [3:13] + grpc/_cython/_cygrpc/security.pxd.pxi [3:13] + grpc/_cython/_cygrpc/security.pyx.pxi [3:13] + grpc/_cython/_cygrpc/server.pxd.pxi [3:13] + grpc/_cython/_cygrpc/server.pyx.pxi [3:13] + grpc/_cython/_cygrpc/tag.pxd.pxi [3:13] + grpc/_cython/_cygrpc/tag.pyx.pxi [3:13] + grpc/_cython/_cygrpc/thread.pyx.pxi [3:13] + grpc/_cython/_cygrpc/time.pxd.pxi [3:13] + grpc/_cython/_cygrpc/time.pyx.pxi [3:13] + grpc/_cython/_cygrpc/vtable.pxd.pxi [3:13] + grpc/_cython/_cygrpc/vtable.pyx.pxi [3:13] + grpc/_cython/cygrpc.pxd [3:13] + grpc/_cython/cygrpc.pyx [3:13] + grpc/_interceptor.py [3:13] + grpc/_plugin_wrapping.py [3:13] + grpc/_runtime_protos.py [3:13] + grpc/_server.py [3:13] + grpc/_simple_stubs.py [3:13] + grpc/_typing.py [3:13] + grpc/_utilities.py [3:13] + grpc/aio/__init__.py [3:13] + grpc/aio/_base_call.py [3:13] + grpc/aio/_base_channel.py [3:13] + grpc/aio/_base_server.py [3:13] + grpc/aio/_call.py [3:13] + grpc/aio/_channel.py [3:13] + grpc/aio/_interceptor.py [3:13] + grpc/aio/_metadata.py [3:13] + grpc/aio/_server.py [3:13] + grpc/aio/_typing.py [3:13] + grpc/aio/_utils.py [3:13] + grpc/beta/__init__.py [3:13] + grpc/beta/_client_adaptations.py [3:13] + grpc/beta/_metadata.py [3:13] + grpc/beta/_server_adaptations.py [3:13] + grpc/beta/implementations.py [3:13] + grpc/beta/interfaces.py [3:13] + grpc/beta/utilities.py [3:13] + grpc/experimental/__init__.py [3:13] + grpc/experimental/aio/__init__.py [3:13] + grpc/experimental/gevent.py [3:13] + grpc/experimental/session_cache.py [3:13] + grpc/framework/__init__.py [3:13] + grpc/framework/common/__init__.py [3:13] + grpc/framework/common/cardinality.py [3:13] + grpc/framework/common/style.py [3:13] + grpc/framework/foundation/__init__.py [3:13] + grpc/framework/foundation/abandonment.py [3:13] + grpc/framework/foundation/callable_util.py [3:13] + grpc/framework/foundation/future.py [3:13] + grpc/framework/foundation/logging_pool.py [3:13] + grpc/framework/foundation/stream.py [3:13] + grpc/framework/foundation/stream_util.py [3:13] + grpc/framework/interfaces/__init__.py [3:13] + grpc/framework/interfaces/base/__init__.py [3:13] + grpc/framework/interfaces/base/base.py [3:13] + grpc/framework/interfaces/base/utilities.py [3:13] + grpc/framework/interfaces/face/__init__.py [3:13] + grpc/framework/interfaces/face/face.py [3:13] + grpc/framework/interfaces/face/utilities.py [3:13] + grpc_core_dependencies.py [3:13] + grpc_version.py [3:13] + support.py [3:13] + +KEEP BSD-3-Clause bf460a928b270e23d6623d4db9286950 +BELONGS ya.make + Note: matched license text is too long. Read it in the source files. + Scancode info: + Original SPDX id: BSD-3-Clause + Score : 100.00 + Match type : TEXT + Links : http://www.opensource.org/licenses/BSD-3-Clause, https://spdx.org/licenses/BSD-3-Clause + Files with this license: + LICENSE [210:234] + +KEEP Apache-2.0 df9d777d047486b6b2cc4bd489b7e975 +BELONGS ya.make + License text: + License: Apache License 2.0 + Scancode info: + Original SPDX id: Apache-2.0 + Score : 100.00 + Match type : REFERENCE + Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0 + Files with this license: + .dist-info/METADATA [8:8] + +KEEP BSD-3-Clause efdacd288befe1a76f28537587b3936a +BELONGS ya.make + License text: + limitations under the License. + ----------------------------------------------------------- + BSD 3-Clause License + Scancode info: + Original SPDX id: BSD-3-Clause + Score : 100.00 + Match type : TAG + Links : http://www.opensource.org/licenses/BSD-3-Clause, https://spdx.org/licenses/BSD-3-Clause + Files with this license: + LICENSE [202:206] diff --git a/contrib/python/grpcio/py3/.yandex_meta/licenses.list.txt b/contrib/python/grpcio/py3/.yandex_meta/licenses.list.txt new file mode 100644 index 00000000000..b3be57a69d6 --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/licenses.list.txt @@ -0,0 +1,1318 @@ +====================Apache-2.0==================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +====================Apache-2.0==================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +====================Apache-2.0==================== +Classifier: License :: OSI Approved :: Apache Software License + + +====================Apache-2.0==================== +License: Apache License 2.0 + + +====================BSD-3-Clause==================== + limitations under the License. + +----------------------------------------------------------- + +BSD 3-Clause License + + +====================BSD-3-Clause==================== +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holder 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 HOLDER 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. + + +====================COPYRIGHT==================== +# Copyright 2015 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2015-2016 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2016 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2017 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2018 The gRPC Authors + + +====================COPYRIGHT==================== +# Copyright 2018 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2019 The gRPC Authors + + +====================COPYRIGHT==================== +# Copyright 2019 The gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2019 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2020 The gRPC Authors + + +====================COPYRIGHT==================== +# Copyright 2020 The gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2020 gRPC authors. + + +====================COPYRIGHT==================== +# Copyright 2021 The gRPC Authors + + +====================COPYRIGHT==================== +# Copyright 2022 gRPC authors. + + +====================COPYRIGHT==================== +Copyright 2016, Google Inc. + + +====================File: LICENSE==================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------------------------------------------------------- + +BSD 3-Clause License + +Copyright 2016, Google Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holder 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 HOLDER 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. + +----------------------------------------------------------- + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + + +====================MPL-2.0==================== +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +====================Python-2.0==================== +# limitations under the License. +"""gRPC's Python API.""" + + +====================Python-2.0==================== +# limitations under the License. +"""gRPC's Python gEvent APIs.""" diff --git a/contrib/python/grpcio/py3/.yandex_meta/override.nix b/contrib/python/grpcio/py3/.yandex_meta/override.nix new file mode 100644 index 00000000000..46925d47d9b --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/override.nix @@ -0,0 +1,18 @@ +pkgs: attrs: with pkgs; with python310.pkgs; with attrs; rec { + pname = "grpcio"; + version = "1.54.2"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-UKnwde7aUJeqmhgrs4d/4ScodeRTcDaKwO4Wq54i0Bk="; + }; + + prePatch = ""; + + # pypi package specifies the hardcoded + # dependencies for third-party libraries: + # /usr/include. In result in nix build we use + # system headers instead of nix headers. + # This patch removes dependencies on /usr/include + patches = [ ./setup.patch ]; +} diff --git a/contrib/python/grpcio/py3/.yandex_meta/setup.patch b/contrib/python/grpcio/py3/.yandex_meta/setup.patch new file mode 100644 index 00000000000..d46237f7ef5 --- /dev/null +++ b/contrib/python/grpcio/py3/.yandex_meta/setup.patch @@ -0,0 +1,16 @@ +--- a/setup.py ++++ b/setup.py +@@ -299,11 +299,11 @@ + RE2_INCLUDE = (os.path.join('/usr', 'include', 're2'),) + + EXTENSION_INCLUDE_DIRECTORIES = ((PYTHON_STEM,) + CORE_INCLUDE + ABSL_INCLUDE + +- ADDRESS_SORTING_INCLUDE + CARES_INCLUDE + +- RE2_INCLUDE + SSL_INCLUDE + UPB_INCLUDE + ++ ADDRESS_SORTING_INCLUDE + ++ RE2_INCLUDE + UPB_INCLUDE + + UPB_GRPC_GENERATED_INCLUDE + + UPBDEFS_GRPC_GENERATED_INCLUDE + +- XXHASH_INCLUDE + ZLIB_INCLUDE) ++ XXHASH_INCLUDE) + + EXTENSION_LIBRARIES = () diff --git a/contrib/python/grpcio/py3/_parallel_compile_patch.py b/contrib/python/grpcio/py3/_parallel_compile_patch.py new file mode 100644 index 00000000000..e4d50c38311 --- /dev/null +++ b/contrib/python/grpcio/py3/_parallel_compile_patch.py @@ -0,0 +1,66 @@ +# Copyright 2018 The gRPC Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Patches the compile() to allow enable parallel compilation of C/C++. + +build_ext has lots of C/C++ files and normally them one by one. +Enabling parallel build helps a lot. +""" + +import distutils.ccompiler +import os + +try: + BUILD_EXT_COMPILER_JOBS = int( + os.environ['GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS']) +except KeyError: + import multiprocessing + BUILD_EXT_COMPILER_JOBS = multiprocessing.cpu_count() +except ValueError: + BUILD_EXT_COMPILER_JOBS = 1 + + +# monkey-patch for parallel compilation +def _parallel_compile(self, + sources, + output_dir=None, + macros=None, + include_dirs=None, + debug=0, + extra_preargs=None, + extra_postargs=None, + depends=None): + # setup the same way as distutils.ccompiler.CCompiler + # https://github.com/python/cpython/blob/31368a4f0e531c19affe2a1becd25fc316bc7501/Lib/distutils/ccompiler.py#L564 + macros, objects, extra_postargs, pp_opts, build = self._setup_compile( + str(output_dir), macros, include_dirs, sources, depends, extra_postargs) + cc_args = self._get_cc_args(pp_opts, debug, extra_preargs) + + def _compile_single_file(obj): + try: + src, ext = build[obj] + except KeyError: + return + self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts) + + # run compilation of individual files in parallel + import multiprocessing.pool + multiprocessing.pool.ThreadPool(BUILD_EXT_COMPILER_JOBS).map( + _compile_single_file, objects) + return objects + + +def monkeypatch_compile_maybe(): + """Monkeypatching is dumb, but the build speed gain is worth it.""" + if BUILD_EXT_COMPILER_JOBS > 1: + distutils.ccompiler.CCompiler.compile = _parallel_compile diff --git a/contrib/python/grpcio/py3/_spawn_patch.py b/contrib/python/grpcio/py3/_spawn_patch.py new file mode 100644 index 00000000000..377cc7a9f37 --- /dev/null +++ b/contrib/python/grpcio/py3/_spawn_patch.py @@ -0,0 +1,60 @@ +# Copyright 2016 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Patches the spawn() command for windows compilers. + +Windows has an 8191 character command line limit, but some compilers +support an @command_file directive where command_file is a file +containing the full command line. +""" + +from distutils import ccompiler +import os +import os.path +import shutil +import sys +import tempfile + +MAX_COMMAND_LENGTH = 8191 + +_classic_spawn = ccompiler.CCompiler.spawn + + +def _commandfile_spawn(self, command): + command_length = sum([len(arg) for arg in command]) + if os.name == 'nt' and command_length > MAX_COMMAND_LENGTH: + # Even if this command doesn't support the @command_file, it will + # fail as is so we try blindly + print('Command line length exceeded, using command file') + print(' '.join(command)) + temporary_directory = tempfile.mkdtemp() + command_filename = os.path.abspath( + os.path.join(temporary_directory, 'command')) + with open(command_filename, 'w') as command_file: + escaped_args = [ + '"' + arg.replace('\\', '\\\\') + '"' for arg in command[1:] + ] + command_file.write(' '.join(escaped_args)) + modified_command = command[:1] + ['@{}'.format(command_filename)] + try: + _classic_spawn(self, modified_command) + finally: + shutil.rmtree(temporary_directory) + else: + _classic_spawn(self, command) + + +def monkeypatch_spawn(): + """Monkeypatching is dumb, but it's either that or we become maintainers of + something much, much bigger.""" + ccompiler.CCompiler.spawn = _commandfile_spawn diff --git a/contrib/python/grpcio/py3/commands.py b/contrib/python/grpcio/py3/commands.py new file mode 100644 index 00000000000..6d8228ffa05 --- /dev/null +++ b/contrib/python/grpcio/py3/commands.py @@ -0,0 +1,351 @@ +# Copyright 2015 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Provides distutils command classes for the GRPC Python setup process.""" + +# NOTE(https://github.com/grpc/grpc/issues/24028): allow setuptools to monkey +# patch distutils +import setuptools # isort:skip + +import glob +import os +import os.path +import shutil +import subprocess +import sys +import sysconfig +import traceback + +from setuptools.command import build_ext +from setuptools.command import build_py +import support + +PYTHON_STEM = os.path.dirname(os.path.abspath(__file__)) +GRPC_STEM = os.path.abspath(PYTHON_STEM + '../../../../') +PROTO_STEM = os.path.join(GRPC_STEM, 'src', 'proto') +PROTO_GEN_STEM = os.path.join(GRPC_STEM, 'src', 'python', 'gens') +CYTHON_STEM = os.path.join(PYTHON_STEM, 'grpc', '_cython') + + +class CommandError(Exception): + """Simple exception class for GRPC custom commands.""" + + +# TODO(atash): Remove this once PyPI has better Linux bdist support. See +# https://bitbucket.org/pypa/pypi/issues/120/binary-wheels-for-linux-are-not-supported +def _get_grpc_custom_bdist(decorated_basename, target_bdist_basename): + """Returns a string path to a bdist file for Linux to install. + + If we can retrieve a pre-compiled bdist from online, uses it. Else, emits a + warning and builds from source. + """ + # TODO(atash): somehow the name that's returned from `wheel` is different + # between different versions of 'wheel' (but from a compatibility standpoint, + # the names are compatible); we should have some way of determining name + # compatibility in the same way `wheel` does to avoid having to rename all of + # the custom wheels that we build/upload to GCS. + + # Break import style to ensure that setup.py has had a chance to install the + # relevant package. + from urllib import request + decorated_path = decorated_basename + GRPC_CUSTOM_BDIST_EXT + try: + url = BINARIES_REPOSITORY + '/{target}'.format(target=decorated_path) + bdist_data = request.urlopen(url).read() + except IOError as error: + raise CommandError('{}\n\nCould not find the bdist {}: {}'.format( + traceback.format_exc(), decorated_path, error.message)) + # Our chosen local bdist path. + bdist_path = target_bdist_basename + GRPC_CUSTOM_BDIST_EXT + try: + with open(bdist_path, 'w') as bdist_file: + bdist_file.write(bdist_data) + except IOError as error: + raise CommandError('{}\n\nCould not write grpcio bdist: {}'.format( + traceback.format_exc(), error.message)) + return bdist_path + + +class SphinxDocumentation(setuptools.Command): + """Command to generate documentation via sphinx.""" + + description = 'generate sphinx documentation' + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + # We import here to ensure that setup.py has had a chance to install the + # relevant package eggs first. + import sphinx.cmd.build + source_dir = os.path.join(GRPC_STEM, 'doc', 'python', 'sphinx') + target_dir = os.path.join(GRPC_STEM, 'doc', 'build') + exit_code = sphinx.cmd.build.build_main( + ['-b', 'html', '-W', '--keep-going', source_dir, target_dir]) + if exit_code != 0: + raise CommandError( + "Documentation generation has warnings or errors") + + +class BuildProjectMetadata(setuptools.Command): + """Command to generate project metadata in a module.""" + + description = 'build grpcio project metadata files' + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + with open(os.path.join(PYTHON_STEM, 'grpc/_grpcio_metadata.py'), + 'w') as module_file: + module_file.write('__version__ = """{}"""'.format( + self.distribution.get_version())) + + +class BuildPy(build_py.build_py): + """Custom project build command.""" + + def run(self): + self.run_command('build_project_metadata') + build_py.build_py.run(self) + + +def _poison_extensions(extensions, message): + """Includes a file that will always fail to compile in all extensions.""" + poison_filename = os.path.join(PYTHON_STEM, 'poison.c') + with open(poison_filename, 'w') as poison: + poison.write('#error {}'.format(message)) + for extension in extensions: + extension.sources = [poison_filename] + + +def check_and_update_cythonization(extensions): + """Replace .pyx files with their generated counterparts and return whether or + not cythonization still needs to occur.""" + for extension in extensions: + generated_pyx_sources = [] + other_sources = [] + for source in extension.sources: + base, file_ext = os.path.splitext(source) + if file_ext == '.pyx': + generated_pyx_source = next((base + gen_ext for gen_ext in ( + '.c', + '.cpp', + ) if os.path.isfile(base + gen_ext)), None) + if generated_pyx_source: + generated_pyx_sources.append(generated_pyx_source) + else: + sys.stderr.write('Cython-generated files are missing...\n') + return False + else: + other_sources.append(source) + extension.sources = generated_pyx_sources + other_sources + sys.stderr.write('Found cython-generated files...\n') + return True + + +def try_cythonize(extensions, linetracing=False, mandatory=True): + """Attempt to cythonize the extensions. + + Args: + extensions: A list of `distutils.extension.Extension`. + linetracing: A bool indicating whether or not to enable linetracing. + mandatory: Whether or not having Cython-generated files is mandatory. If it + is, extensions will be poisoned when they can't be fully generated. + """ + try: + # Break import style to ensure we have access to Cython post-setup_requires + import Cython.Build + except ImportError: + if mandatory: + sys.stderr.write( + "This package needs to generate C files with Cython but it cannot. " + "Poisoning extension sources to disallow extension commands...") + _poison_extensions( + extensions, + "Extensions have been poisoned due to missing Cython-generated code." + ) + return extensions + cython_compiler_directives = {} + if linetracing: + additional_define_macros = [('CYTHON_TRACE_NOGIL', '1')] + cython_compiler_directives['linetrace'] = True + return Cython.Build.cythonize( + extensions, + include_path=[ + include_dir for extension in extensions + for include_dir in extension.include_dirs + ] + [CYTHON_STEM], + compiler_directives=cython_compiler_directives) + + +class BuildExt(build_ext.build_ext): + """Custom build_ext command to enable compiler-specific flags.""" + + C_OPTIONS = { + 'unix': ('-pthread',), + 'msvc': (), + } + LINK_OPTIONS = {} + + def get_ext_filename(self, ext_name): + # since python3.5, python extensions' shared libraries use a suffix that corresponds to the value + # of sysconfig.get_config_var('EXT_SUFFIX') and contains info about the architecture the library targets. + # E.g. on x64 linux the suffix is ".cpython-XYZ-x86_64-linux-gnu.so" + # When crosscompiling python wheels, we need to be able to override this suffix + # so that the resulting file name matches the target architecture and we end up with a well-formed + # wheel. + filename = build_ext.build_ext.get_ext_filename(self, ext_name) + orig_ext_suffix = sysconfig.get_config_var('EXT_SUFFIX') + new_ext_suffix = os.getenv('GRPC_PYTHON_OVERRIDE_EXT_SUFFIX') + if new_ext_suffix and filename.endswith(orig_ext_suffix): + filename = filename[:-len(orig_ext_suffix)] + new_ext_suffix + return filename + + def build_extensions(self): + + def compiler_ok_with_extra_std(): + """Test if default compiler is okay with specifying c++ version + when invoked in C mode. GCC is okay with this, while clang is not. + """ + try: + # TODO(lidiz) Remove the generated a.out for success tests. + cc = os.environ.get('CC', 'cc') + cc_test = subprocess.Popen([cc, '-x', 'c', '-std=c++14', '-'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + _, cc_err = cc_test.communicate(input=b'int main(){return 0;}') + return not 'invalid argument' in str(cc_err) + except: + sys.stderr.write('Non-fatal exception:' + + traceback.format_exc() + '\n') + return False + + # This special conditioning is here due to difference of compiler + # behavior in gcc and clang. The clang doesn't take --stdc++11 + # flags but gcc does. Since the setuptools of Python only support + # all C or all C++ compilation, the mix of C and C++ will crash. + # *By default*, macOS and FreBSD use clang and Linux use gcc + # + # If we are not using a permissive compiler that's OK with being + # passed wrong std flags, swap out compile function by adding a filter + # for it. + if not compiler_ok_with_extra_std(): + old_compile = self.compiler._compile + + def new_compile(obj, src, ext, cc_args, extra_postargs, pp_opts): + if src.endswith('.c'): + extra_postargs = [ + arg for arg in extra_postargs if not '-std=c++' in arg + ] + elif src.endswith('.cc') or src.endswith('.cpp'): + extra_postargs = [ + arg for arg in extra_postargs if not '-std=gnu99' in arg + ] + return old_compile(obj, src, ext, cc_args, extra_postargs, + pp_opts) + + self.compiler._compile = new_compile + + compiler = self.compiler.compiler_type + if compiler in BuildExt.C_OPTIONS: + for extension in self.extensions: + extension.extra_compile_args += list( + BuildExt.C_OPTIONS[compiler]) + if compiler in BuildExt.LINK_OPTIONS: + for extension in self.extensions: + extension.extra_link_args += list( + BuildExt.LINK_OPTIONS[compiler]) + if not check_and_update_cythonization(self.extensions): + self.extensions = try_cythonize(self.extensions) + try: + build_ext.build_ext.build_extensions(self) + except Exception as error: + formatted_exception = traceback.format_exc() + support.diagnose_build_ext_error(self, error, formatted_exception) + raise CommandError( + "Failed `build_ext` step:\n{}".format(formatted_exception)) + + +class Gather(setuptools.Command): + """Command to gather project dependencies.""" + + description = 'gather dependencies for grpcio' + user_options = [ + ('test', 't', 'flag indicating to gather test dependencies'), + ('install', 'i', 'flag indicating to gather install dependencies') + ] + + def initialize_options(self): + self.test = False + self.install = False + + def finalize_options(self): + # distutils requires this override. + pass + + def run(self): + if self.install and self.distribution.install_requires: + self.distribution.fetch_build_eggs( + self.distribution.install_requires) + if self.test and self.distribution.tests_require: + self.distribution.fetch_build_eggs(self.distribution.tests_require) + + +class Clean(setuptools.Command): + """Command to clean build artifacts.""" + + description = 'Clean build artifacts.' + user_options = [ + ('all', 'a', 'a phony flag to allow our script to continue'), + ] + + _FILE_PATTERNS = ( + 'python_build', + 'src/python/grpcio/__pycache__/', + 'src/python/grpcio/grpc/_cython/cygrpc.cpp', + 'src/python/grpcio/grpc/_cython/*.so', + 'src/python/grpcio/grpcio.egg-info/', + ) + _CURRENT_DIRECTORY = os.path.normpath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../..")) + + def initialize_options(self): + self.all = False + + def finalize_options(self): + pass + + def run(self): + for path_spec in self._FILE_PATTERNS: + this_glob = os.path.normpath( + os.path.join(Clean._CURRENT_DIRECTORY, path_spec)) + abs_paths = glob.glob(this_glob) + for path in abs_paths: + if not str(path).startswith(Clean._CURRENT_DIRECTORY): + raise ValueError( + "Cowardly refusing to delete {}.".format(path)) + print("Removing {}".format(os.path.relpath(path))) + if os.path.isfile(path): + os.remove(str(path)) + else: + shutil.rmtree(str(path)) diff --git a/contrib/python/grpcio/py3/grpc_core_dependencies.py b/contrib/python/grpcio/py3/grpc_core_dependencies.py new file mode 100644 index 00000000000..dcab5dcd455 --- /dev/null +++ b/contrib/python/grpcio/py3/grpc_core_dependencies.py @@ -0,0 +1,1502 @@ +# Copyright 2015 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!! + +CORE_SOURCE_FILES = [ + 'src/core/ext/filters/backend_metrics/backend_metric_filter.cc', + 'src/core/ext/filters/census/grpc_context.cc', + 'src/core/ext/filters/channel_idle/channel_idle_filter.cc', + 'src/core/ext/filters/channel_idle/idle_filter_state.cc', + 'src/core/ext/filters/client_channel/backend_metric.cc', + 'src/core/ext/filters/client_channel/backup_poller.cc', + 'src/core/ext/filters/client_channel/channel_connectivity.cc', + 'src/core/ext/filters/client_channel/client_channel.cc', + 'src/core/ext/filters/client_channel/client_channel_channelz.cc', + 'src/core/ext/filters/client_channel/client_channel_factory.cc', + 'src/core/ext/filters/client_channel/client_channel_plugin.cc', + 'src/core/ext/filters/client_channel/client_channel_service_config.cc', + 'src/core/ext/filters/client_channel/config_selector.cc', + 'src/core/ext/filters/client_channel/dynamic_filters.cc', + 'src/core/ext/filters/client_channel/global_subchannel_pool.cc', + 'src/core/ext/filters/client_channel/health/health_check_client.cc', + 'src/core/ext/filters/client_channel/http_proxy.cc', + 'src/core/ext/filters/client_channel/lb_policy/address_filtering.cc', + 'src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc', + 'src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc', + 'src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc', + 'src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc', + 'src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc', + 'src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc', + 'src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc', + 'src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc', + 'src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc', + 'src/core/ext/filters/client_channel/lb_policy/priority/priority.cc', + 'src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc', + 'src/core/ext/filters/client_channel/lb_policy/rls/rls.cc', + 'src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc', + 'src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc', + 'src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc', + 'src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/cds.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc', + 'src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc', + 'src/core/ext/filters/client_channel/local_subchannel_pool.cc', + 'src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc', + 'src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc', + 'src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/polling_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc', + 'src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc', + 'src/core/ext/filters/client_channel/retry_filter.cc', + 'src/core/ext/filters/client_channel/retry_service_config.cc', + 'src/core/ext/filters/client_channel/retry_throttle.cc', + 'src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc', + 'src/core/ext/filters/client_channel/subchannel.cc', + 'src/core/ext/filters/client_channel/subchannel_pool_interface.cc', + 'src/core/ext/filters/client_channel/subchannel_stream_client.cc', + 'src/core/ext/filters/deadline/deadline_filter.cc', + 'src/core/ext/filters/fault_injection/fault_injection_filter.cc', + 'src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc', + 'src/core/ext/filters/http/client/http_client_filter.cc', + 'src/core/ext/filters/http/client_authority_filter.cc', + 'src/core/ext/filters/http/http_filters_plugin.cc', + 'src/core/ext/filters/http/message_compress/compression_filter.cc', + 'src/core/ext/filters/http/server/http_server_filter.cc', + 'src/core/ext/filters/message_size/message_size_filter.cc', + 'src/core/ext/filters/rbac/rbac_filter.cc', + 'src/core/ext/filters/rbac/rbac_service_config_parser.cc', + 'src/core/ext/filters/server_config_selector/server_config_selector_filter.cc', + 'src/core/ext/filters/stateful_session/stateful_session_filter.cc', + 'src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc', + 'src/core/ext/gcp/metadata_query.cc', + 'src/core/ext/transport/chttp2/alpn/alpn.cc', + 'src/core/ext/transport/chttp2/client/chttp2_connector.cc', + 'src/core/ext/transport/chttp2/server/chttp2_server.cc', + 'src/core/ext/transport/chttp2/transport/bin_decoder.cc', + 'src/core/ext/transport/chttp2/transport/bin_encoder.cc', + 'src/core/ext/transport/chttp2/transport/chttp2_transport.cc', + 'src/core/ext/transport/chttp2/transport/context_list.cc', + 'src/core/ext/transport/chttp2/transport/decode_huff.cc', + 'src/core/ext/transport/chttp2/transport/flow_control.cc', + 'src/core/ext/transport/chttp2/transport/frame_data.cc', + 'src/core/ext/transport/chttp2/transport/frame_goaway.cc', + 'src/core/ext/transport/chttp2/transport/frame_ping.cc', + 'src/core/ext/transport/chttp2/transport/frame_rst_stream.cc', + 'src/core/ext/transport/chttp2/transport/frame_settings.cc', + 'src/core/ext/transport/chttp2/transport/frame_window_update.cc', + 'src/core/ext/transport/chttp2/transport/hpack_encoder.cc', + 'src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc', + 'src/core/ext/transport/chttp2/transport/hpack_parser.cc', + 'src/core/ext/transport/chttp2/transport/hpack_parser_table.cc', + 'src/core/ext/transport/chttp2/transport/http2_settings.cc', + 'src/core/ext/transport/chttp2/transport/http_trace.cc', + 'src/core/ext/transport/chttp2/transport/huffsyms.cc', + 'src/core/ext/transport/chttp2/transport/parsing.cc', + 'src/core/ext/transport/chttp2/transport/stream_lists.cc', + 'src/core/ext/transport/chttp2/transport/stream_map.cc', + 'src/core/ext/transport/chttp2/transport/varint.cc', + 'src/core/ext/transport/chttp2/transport/writing.cc', + 'src/core/ext/transport/inproc/inproc_plugin.cc', + 'src/core/ext/transport/inproc/inproc_transport.cc', + 'src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c', + 'src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c', + 'src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c', + 'src/core/ext/upb-generated/envoy/annotations/resource.upb.c', + 'src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c', + 'src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c', + 'src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c', + 'src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c', + 'src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c', + 'src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c', + 'src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c', + 'src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c', + 'src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c', + 'src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c', + 'src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c', + 'src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c', + 'src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c', + 'src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c', + 'src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c', + 'src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c', + 'src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c', + 'src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c', + 'src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c', + 'src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c', + 'src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c', + 'src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c', + 'src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c', + 'src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c', + 'src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c', + 'src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c', + 'src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c', + 'src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c', + 'src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c', + 'src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c', + 'src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c', + 'src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c', + 'src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c', + 'src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c', + 'src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/http.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/percent.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/range.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c', + 'src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c', + 'src/core/ext/upb-generated/google/api/annotations.upb.c', + 'src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c', + 'src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c', + 'src/core/ext/upb-generated/google/api/http.upb.c', + 'src/core/ext/upb-generated/google/api/httpbody.upb.c', + 'src/core/ext/upb-generated/google/protobuf/any.upb.c', + 'src/core/ext/upb-generated/google/protobuf/descriptor.upb.c', + 'src/core/ext/upb-generated/google/protobuf/duration.upb.c', + 'src/core/ext/upb-generated/google/protobuf/empty.upb.c', + 'src/core/ext/upb-generated/google/protobuf/struct.upb.c', + 'src/core/ext/upb-generated/google/protobuf/timestamp.upb.c', + 'src/core/ext/upb-generated/google/protobuf/wrappers.upb.c', + 'src/core/ext/upb-generated/google/rpc/status.upb.c', + 'src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c', + 'src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c', + 'src/core/ext/upb-generated/udpa/annotations/migrate.upb.c', + 'src/core/ext/upb-generated/udpa/annotations/security.upb.c', + 'src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c', + 'src/core/ext/upb-generated/udpa/annotations/status.upb.c', + 'src/core/ext/upb-generated/udpa/annotations/versioning.upb.c', + 'src/core/ext/upb-generated/validate/validate.upb.c', + 'src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c', + 'src/core/ext/upb-generated/xds/annotations/v3/security.upb.c', + 'src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c', + 'src/core/ext/upb-generated/xds/annotations/v3/status.upb.c', + 'src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/authority.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/cidr.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/context_params.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/extension.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/resource.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c', + 'src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c', + 'src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c', + 'src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c', + 'src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c', + 'src/core/ext/upb-generated/xds/type/v3/cel.upb.c', + 'src/core/ext/upb-generated/xds/type/v3/range.upb.c', + 'src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c', + 'src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/api/http.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c', + 'src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c', + 'src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c', + 'src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c', + 'src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c', + 'src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c', + 'src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c', + 'src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c', + 'src/core/ext/upbdefs-generated/validate/validate.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c', + 'src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c', + 'src/core/ext/xds/certificate_provider_store.cc', + 'src/core/ext/xds/file_watcher_certificate_provider_factory.cc', + 'src/core/ext/xds/xds_api.cc', + 'src/core/ext/xds/xds_bootstrap.cc', + 'src/core/ext/xds/xds_bootstrap_grpc.cc', + 'src/core/ext/xds/xds_certificate_provider.cc', + 'src/core/ext/xds/xds_channel_stack_modifier.cc', + 'src/core/ext/xds/xds_client.cc', + 'src/core/ext/xds/xds_client_grpc.cc', + 'src/core/ext/xds/xds_client_stats.cc', + 'src/core/ext/xds/xds_cluster.cc', + 'src/core/ext/xds/xds_cluster_specifier_plugin.cc', + 'src/core/ext/xds/xds_common_types.cc', + 'src/core/ext/xds/xds_endpoint.cc', + 'src/core/ext/xds/xds_health_status.cc', + 'src/core/ext/xds/xds_http_fault_filter.cc', + 'src/core/ext/xds/xds_http_filters.cc', + 'src/core/ext/xds/xds_http_rbac_filter.cc', + 'src/core/ext/xds/xds_http_stateful_session_filter.cc', + 'src/core/ext/xds/xds_lb_policy_registry.cc', + 'src/core/ext/xds/xds_listener.cc', + 'src/core/ext/xds/xds_route_config.cc', + 'src/core/ext/xds/xds_routing.cc', + 'src/core/ext/xds/xds_server_config_fetcher.cc', + 'src/core/ext/xds/xds_transport_grpc.cc', + 'src/core/lib/address_utils/parse_address.cc', + 'src/core/lib/address_utils/sockaddr_utils.cc', + 'src/core/lib/backoff/backoff.cc', + 'src/core/lib/backoff/random_early_detection.cc', + 'src/core/lib/channel/call_tracer.cc', + 'src/core/lib/channel/channel_args.cc', + 'src/core/lib/channel/channel_args_preconditioning.cc', + 'src/core/lib/channel/channel_stack.cc', + 'src/core/lib/channel/channel_stack_builder.cc', + 'src/core/lib/channel/channel_stack_builder_impl.cc', + 'src/core/lib/channel/channel_trace.cc', + 'src/core/lib/channel/channelz.cc', + 'src/core/lib/channel/channelz_registry.cc', + 'src/core/lib/channel/connected_channel.cc', + 'src/core/lib/channel/promise_based_filter.cc', + 'src/core/lib/channel/server_call_tracer_filter.cc', + 'src/core/lib/channel/status_util.cc', + 'src/core/lib/compression/compression.cc', + 'src/core/lib/compression/compression_internal.cc', + 'src/core/lib/compression/message_compress.cc', + 'src/core/lib/config/config_vars.cc', + 'src/core/lib/config/config_vars_non_generated.cc', + 'src/core/lib/config/core_configuration.cc', + 'src/core/lib/config/load_config.cc', + 'src/core/lib/debug/event_log.cc', + 'src/core/lib/debug/histogram_view.cc', + 'src/core/lib/debug/stats.cc', + 'src/core/lib/debug/stats_data.cc', + 'src/core/lib/debug/trace.cc', + 'src/core/lib/event_engine/channel_args_endpoint_config.cc', + 'src/core/lib/event_engine/default_event_engine.cc', + 'src/core/lib/event_engine/default_event_engine_factory.cc', + 'src/core/lib/event_engine/event_engine.cc', + 'src/core/lib/event_engine/forkable.cc', + 'src/core/lib/event_engine/memory_allocator.cc', + 'src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc', + 'src/core/lib/event_engine/posix_engine/ev_poll_posix.cc', + 'src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc', + 'src/core/lib/event_engine/posix_engine/internal_errqueue.cc', + 'src/core/lib/event_engine/posix_engine/lockfree_event.cc', + 'src/core/lib/event_engine/posix_engine/posix_endpoint.cc', + 'src/core/lib/event_engine/posix_engine/posix_engine.cc', + 'src/core/lib/event_engine/posix_engine/posix_engine_listener.cc', + 'src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc', + 'src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc', + 'src/core/lib/event_engine/posix_engine/timer.cc', + 'src/core/lib/event_engine/posix_engine/timer_heap.cc', + 'src/core/lib/event_engine/posix_engine/timer_manager.cc', + 'src/core/lib/event_engine/posix_engine/traced_buffer_list.cc', + 'src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc', + 'src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc', + 'src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc', + 'src/core/lib/event_engine/resolved_address.cc', + 'src/core/lib/event_engine/shim.cc', + 'src/core/lib/event_engine/slice.cc', + 'src/core/lib/event_engine/slice_buffer.cc', + 'src/core/lib/event_engine/tcp_socket_utils.cc', + 'src/core/lib/event_engine/thread_local.cc', + 'src/core/lib/event_engine/thread_pool.cc', + 'src/core/lib/event_engine/time_util.cc', + 'src/core/lib/event_engine/trace.cc', + 'src/core/lib/event_engine/utils.cc', + 'src/core/lib/event_engine/windows/iocp.cc', + 'src/core/lib/event_engine/windows/win_socket.cc', + 'src/core/lib/event_engine/windows/windows_endpoint.cc', + 'src/core/lib/event_engine/windows/windows_engine.cc', + 'src/core/lib/event_engine/windows/windows_listener.cc', + 'src/core/lib/experiments/config.cc', + 'src/core/lib/experiments/experiments.cc', + 'src/core/lib/gpr/alloc.cc', + 'src/core/lib/gpr/android/log.cc', + 'src/core/lib/gpr/atm.cc', + 'src/core/lib/gpr/iphone/cpu.cc', + 'src/core/lib/gpr/linux/cpu.cc', + 'src/core/lib/gpr/linux/log.cc', + 'src/core/lib/gpr/log.cc', + 'src/core/lib/gpr/msys/tmpfile.cc', + 'src/core/lib/gpr/posix/cpu.cc', + 'src/core/lib/gpr/posix/log.cc', + 'src/core/lib/gpr/posix/string.cc', + 'src/core/lib/gpr/posix/sync.cc', + 'src/core/lib/gpr/posix/time.cc', + 'src/core/lib/gpr/posix/tmpfile.cc', + 'src/core/lib/gpr/string.cc', + 'src/core/lib/gpr/sync.cc', + 'src/core/lib/gpr/sync_abseil.cc', + 'src/core/lib/gpr/time.cc', + 'src/core/lib/gpr/time_precise.cc', + 'src/core/lib/gpr/windows/cpu.cc', + 'src/core/lib/gpr/windows/log.cc', + 'src/core/lib/gpr/windows/string.cc', + 'src/core/lib/gpr/windows/string_util.cc', + 'src/core/lib/gpr/windows/sync.cc', + 'src/core/lib/gpr/windows/time.cc', + 'src/core/lib/gpr/windows/tmpfile.cc', + 'src/core/lib/gpr/wrap_memcpy.cc', + 'src/core/lib/gprpp/crash.cc', + 'src/core/lib/gprpp/examine_stack.cc', + 'src/core/lib/gprpp/fork.cc', + 'src/core/lib/gprpp/host_port.cc', + 'src/core/lib/gprpp/linux/env.cc', + 'src/core/lib/gprpp/load_file.cc', + 'src/core/lib/gprpp/mpscq.cc', + 'src/core/lib/gprpp/posix/env.cc', + 'src/core/lib/gprpp/posix/stat.cc', + 'src/core/lib/gprpp/posix/thd.cc', + 'src/core/lib/gprpp/status_helper.cc', + 'src/core/lib/gprpp/strerror.cc', + 'src/core/lib/gprpp/tchar.cc', + 'src/core/lib/gprpp/time.cc', + 'src/core/lib/gprpp/time_averaged_stats.cc', + 'src/core/lib/gprpp/time_util.cc', + 'src/core/lib/gprpp/validation_errors.cc', + 'src/core/lib/gprpp/windows/env.cc', + 'src/core/lib/gprpp/windows/stat.cc', + 'src/core/lib/gprpp/windows/thd.cc', + 'src/core/lib/gprpp/work_serializer.cc', + 'src/core/lib/handshaker/proxy_mapper_registry.cc', + 'src/core/lib/http/format_request.cc', + 'src/core/lib/http/httpcli.cc', + 'src/core/lib/http/httpcli_security_connector.cc', + 'src/core/lib/http/parser.cc', + 'src/core/lib/iomgr/buffer_list.cc', + 'src/core/lib/iomgr/call_combiner.cc', + 'src/core/lib/iomgr/cfstream_handle.cc', + 'src/core/lib/iomgr/closure.cc', + 'src/core/lib/iomgr/combiner.cc', + 'src/core/lib/iomgr/dualstack_socket_posix.cc', + 'src/core/lib/iomgr/endpoint.cc', + 'src/core/lib/iomgr/endpoint_cfstream.cc', + 'src/core/lib/iomgr/endpoint_pair_posix.cc', + 'src/core/lib/iomgr/endpoint_pair_windows.cc', + 'src/core/lib/iomgr/error.cc', + 'src/core/lib/iomgr/error_cfstream.cc', + 'src/core/lib/iomgr/ev_apple.cc', + 'src/core/lib/iomgr/ev_epoll1_linux.cc', + 'src/core/lib/iomgr/ev_poll_posix.cc', + 'src/core/lib/iomgr/ev_posix.cc', + 'src/core/lib/iomgr/ev_windows.cc', + 'src/core/lib/iomgr/event_engine_shims/closure.cc', + 'src/core/lib/iomgr/event_engine_shims/endpoint.cc', + 'src/core/lib/iomgr/event_engine_shims/tcp_client.cc', + 'src/core/lib/iomgr/exec_ctx.cc', + 'src/core/lib/iomgr/executor.cc', + 'src/core/lib/iomgr/fork_posix.cc', + 'src/core/lib/iomgr/fork_windows.cc', + 'src/core/lib/iomgr/gethostname_fallback.cc', + 'src/core/lib/iomgr/gethostname_host_name_max.cc', + 'src/core/lib/iomgr/gethostname_sysconf.cc', + 'src/core/lib/iomgr/grpc_if_nametoindex_posix.cc', + 'src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc', + 'src/core/lib/iomgr/internal_errqueue.cc', + 'src/core/lib/iomgr/iocp_windows.cc', + 'src/core/lib/iomgr/iomgr.cc', + 'src/core/lib/iomgr/iomgr_internal.cc', + 'src/core/lib/iomgr/iomgr_posix.cc', + 'src/core/lib/iomgr/iomgr_posix_cfstream.cc', + 'src/core/lib/iomgr/iomgr_windows.cc', + 'src/core/lib/iomgr/load_file.cc', + 'src/core/lib/iomgr/lockfree_event.cc', + 'src/core/lib/iomgr/polling_entity.cc', + 'src/core/lib/iomgr/pollset.cc', + 'src/core/lib/iomgr/pollset_set.cc', + 'src/core/lib/iomgr/pollset_set_windows.cc', + 'src/core/lib/iomgr/pollset_windows.cc', + 'src/core/lib/iomgr/resolve_address.cc', + 'src/core/lib/iomgr/resolve_address_posix.cc', + 'src/core/lib/iomgr/resolve_address_windows.cc', + 'src/core/lib/iomgr/sockaddr_utils_posix.cc', + 'src/core/lib/iomgr/socket_factory_posix.cc', + 'src/core/lib/iomgr/socket_mutator.cc', + 'src/core/lib/iomgr/socket_utils_common_posix.cc', + 'src/core/lib/iomgr/socket_utils_linux.cc', + 'src/core/lib/iomgr/socket_utils_posix.cc', + 'src/core/lib/iomgr/socket_utils_windows.cc', + 'src/core/lib/iomgr/socket_windows.cc', + 'src/core/lib/iomgr/systemd_utils.cc', + 'src/core/lib/iomgr/tcp_client.cc', + 'src/core/lib/iomgr/tcp_client_cfstream.cc', + 'src/core/lib/iomgr/tcp_client_posix.cc', + 'src/core/lib/iomgr/tcp_client_windows.cc', + 'src/core/lib/iomgr/tcp_posix.cc', + 'src/core/lib/iomgr/tcp_server.cc', + 'src/core/lib/iomgr/tcp_server_posix.cc', + 'src/core/lib/iomgr/tcp_server_utils_posix_common.cc', + 'src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc', + 'src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc', + 'src/core/lib/iomgr/tcp_server_windows.cc', + 'src/core/lib/iomgr/tcp_windows.cc', + 'src/core/lib/iomgr/timer.cc', + 'src/core/lib/iomgr/timer_generic.cc', + 'src/core/lib/iomgr/timer_heap.cc', + 'src/core/lib/iomgr/timer_manager.cc', + 'src/core/lib/iomgr/unix_sockets_posix.cc', + 'src/core/lib/iomgr/unix_sockets_posix_noop.cc', + 'src/core/lib/iomgr/wakeup_fd_eventfd.cc', + 'src/core/lib/iomgr/wakeup_fd_nospecial.cc', + 'src/core/lib/iomgr/wakeup_fd_pipe.cc', + 'src/core/lib/iomgr/wakeup_fd_posix.cc', + 'src/core/lib/json/json_object_loader.cc', + 'src/core/lib/json/json_reader.cc', + 'src/core/lib/json/json_util.cc', + 'src/core/lib/json/json_writer.cc', + 'src/core/lib/load_balancing/lb_policy.cc', + 'src/core/lib/load_balancing/lb_policy_registry.cc', + 'src/core/lib/matchers/matchers.cc', + 'src/core/lib/promise/activity.cc', + 'src/core/lib/promise/party.cc', + 'src/core/lib/promise/sleep.cc', + 'src/core/lib/promise/trace.cc', + 'src/core/lib/resolver/resolver.cc', + 'src/core/lib/resolver/resolver_registry.cc', + 'src/core/lib/resolver/server_address.cc', + 'src/core/lib/resource_quota/api.cc', + 'src/core/lib/resource_quota/arena.cc', + 'src/core/lib/resource_quota/memory_quota.cc', + 'src/core/lib/resource_quota/periodic_update.cc', + 'src/core/lib/resource_quota/resource_quota.cc', + 'src/core/lib/resource_quota/thread_quota.cc', + 'src/core/lib/resource_quota/trace.cc', + 'src/core/lib/security/authorization/authorization_policy_provider_vtable.cc', + 'src/core/lib/security/authorization/evaluate_args.cc', + 'src/core/lib/security/authorization/grpc_authorization_engine.cc', + 'src/core/lib/security/authorization/grpc_server_authz_filter.cc', + 'src/core/lib/security/authorization/matchers.cc', + 'src/core/lib/security/authorization/rbac_policy.cc', + 'src/core/lib/security/certificate_provider/certificate_provider_registry.cc', + 'src/core/lib/security/context/security_context.cc', + 'src/core/lib/security/credentials/alts/alts_credentials.cc', + 'src/core/lib/security/credentials/alts/check_gcp_environment.cc', + 'src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc', + 'src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc', + 'src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc', + 'src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc', + 'src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc', + 'src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc', + 'src/core/lib/security/credentials/call_creds_util.cc', + 'src/core/lib/security/credentials/channel_creds_registry_init.cc', + 'src/core/lib/security/credentials/composite/composite_credentials.cc', + 'src/core/lib/security/credentials/credentials.cc', + 'src/core/lib/security/credentials/external/aws_external_account_credentials.cc', + 'src/core/lib/security/credentials/external/aws_request_signer.cc', + 'src/core/lib/security/credentials/external/external_account_credentials.cc', + 'src/core/lib/security/credentials/external/file_external_account_credentials.cc', + 'src/core/lib/security/credentials/external/url_external_account_credentials.cc', + 'src/core/lib/security/credentials/fake/fake_credentials.cc', + 'src/core/lib/security/credentials/google_default/credentials_generic.cc', + 'src/core/lib/security/credentials/google_default/google_default_credentials.cc', + 'src/core/lib/security/credentials/iam/iam_credentials.cc', + 'src/core/lib/security/credentials/insecure/insecure_credentials.cc', + 'src/core/lib/security/credentials/jwt/json_token.cc', + 'src/core/lib/security/credentials/jwt/jwt_credentials.cc', + 'src/core/lib/security/credentials/jwt/jwt_verifier.cc', + 'src/core/lib/security/credentials/local/local_credentials.cc', + 'src/core/lib/security/credentials/oauth2/oauth2_credentials.cc', + 'src/core/lib/security/credentials/plugin/plugin_credentials.cc', + 'src/core/lib/security/credentials/ssl/ssl_credentials.cc', + 'src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc', + 'src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc', + 'src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc', + 'src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc', + 'src/core/lib/security/credentials/tls/tls_credentials.cc', + 'src/core/lib/security/credentials/tls/tls_utils.cc', + 'src/core/lib/security/credentials/xds/xds_credentials.cc', + 'src/core/lib/security/security_connector/alts/alts_security_connector.cc', + 'src/core/lib/security/security_connector/fake/fake_security_connector.cc', + 'src/core/lib/security/security_connector/insecure/insecure_security_connector.cc', + 'src/core/lib/security/security_connector/load_system_roots_fallback.cc', + 'src/core/lib/security/security_connector/load_system_roots_supported.cc', + 'src/core/lib/security/security_connector/local/local_security_connector.cc', + 'src/core/lib/security/security_connector/security_connector.cc', + 'src/core/lib/security/security_connector/ssl/ssl_security_connector.cc', + 'src/core/lib/security/security_connector/ssl_utils.cc', + 'src/core/lib/security/security_connector/tls/tls_security_connector.cc', + 'src/core/lib/security/transport/client_auth_filter.cc', + 'src/core/lib/security/transport/secure_endpoint.cc', + 'src/core/lib/security/transport/security_handshaker.cc', + 'src/core/lib/security/transport/server_auth_filter.cc', + 'src/core/lib/security/transport/tsi_error.cc', + 'src/core/lib/security/util/json_util.cc', + 'src/core/lib/service_config/service_config_impl.cc', + 'src/core/lib/service_config/service_config_parser.cc', + 'src/core/lib/slice/b64.cc', + 'src/core/lib/slice/percent_encoding.cc', + 'src/core/lib/slice/slice.cc', + 'src/core/lib/slice/slice_buffer.cc', + 'src/core/lib/slice/slice_refcount.cc', + 'src/core/lib/slice/slice_string_helpers.cc', + 'src/core/lib/surface/api_trace.cc', + 'src/core/lib/surface/builtins.cc', + 'src/core/lib/surface/byte_buffer.cc', + 'src/core/lib/surface/byte_buffer_reader.cc', + 'src/core/lib/surface/call.cc', + 'src/core/lib/surface/call_details.cc', + 'src/core/lib/surface/call_log_batch.cc', + 'src/core/lib/surface/call_trace.cc', + 'src/core/lib/surface/channel.cc', + 'src/core/lib/surface/channel_init.cc', + 'src/core/lib/surface/channel_ping.cc', + 'src/core/lib/surface/channel_stack_type.cc', + 'src/core/lib/surface/completion_queue.cc', + 'src/core/lib/surface/completion_queue_factory.cc', + 'src/core/lib/surface/event_string.cc', + 'src/core/lib/surface/init.cc', + 'src/core/lib/surface/init_internally.cc', + 'src/core/lib/surface/lame_client.cc', + 'src/core/lib/surface/metadata_array.cc', + 'src/core/lib/surface/server.cc', + 'src/core/lib/surface/validate_metadata.cc', + 'src/core/lib/surface/version.cc', + 'src/core/lib/transport/batch_builder.cc', + 'src/core/lib/transport/bdp_estimator.cc', + 'src/core/lib/transport/connectivity_state.cc', + 'src/core/lib/transport/error_utils.cc', + 'src/core/lib/transport/handshaker.cc', + 'src/core/lib/transport/handshaker_registry.cc', + 'src/core/lib/transport/http_connect_handshaker.cc', + 'src/core/lib/transport/metadata_batch.cc', + 'src/core/lib/transport/parsed_metadata.cc', + 'src/core/lib/transport/pid_controller.cc', + 'src/core/lib/transport/status_conversion.cc', + 'src/core/lib/transport/tcp_connect_handshaker.cc', + 'src/core/lib/transport/timeout_encoding.cc', + 'src/core/lib/transport/transport.cc', + 'src/core/lib/transport/transport_op_string.cc', + 'src/core/lib/uri/uri_parser.cc', + 'src/core/plugin_registry/grpc_plugin_registry.cc', + 'src/core/plugin_registry/grpc_plugin_registry_extra.cc', + 'src/core/tsi/alts/crypt/aes_gcm.cc', + 'src/core/tsi/alts/crypt/gsec.cc', + 'src/core/tsi/alts/frame_protector/alts_counter.cc', + 'src/core/tsi/alts/frame_protector/alts_crypter.cc', + 'src/core/tsi/alts/frame_protector/alts_frame_protector.cc', + 'src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc', + 'src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc', + 'src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc', + 'src/core/tsi/alts/frame_protector/frame_handler.cc', + 'src/core/tsi/alts/handshaker/alts_handshaker_client.cc', + 'src/core/tsi/alts/handshaker/alts_shared_resource.cc', + 'src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc', + 'src/core/tsi/alts/handshaker/alts_tsi_utils.cc', + 'src/core/tsi/alts/handshaker/transport_security_common_api.cc', + 'src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc', + 'src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc', + 'src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc', + 'src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc', + 'src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc', + 'src/core/tsi/fake_transport_security.cc', + 'src/core/tsi/local_transport_security.cc', + 'src/core/tsi/ssl/key_logging/ssl_key_logging.cc', + 'src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc', + 'src/core/tsi/ssl/session_cache/ssl_session_cache.cc', + 'src/core/tsi/ssl/session_cache/ssl_session_openssl.cc', + 'src/core/tsi/ssl_transport_security.cc', + 'src/core/tsi/ssl_transport_security_utils.cc', + 'src/core/tsi/transport_security.cc', + 'src/core/tsi/transport_security_grpc.cc', + 'third_party/abseil-cpp/absl/base/internal/cycleclock.cc', + 'third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc', + 'third_party/abseil-cpp/absl/base/internal/raw_logging.cc', + 'third_party/abseil-cpp/absl/base/internal/spinlock.cc', + 'third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc', + 'third_party/abseil-cpp/absl/base/internal/strerror.cc', + 'third_party/abseil-cpp/absl/base/internal/sysinfo.cc', + 'third_party/abseil-cpp/absl/base/internal/thread_identity.cc', + 'third_party/abseil-cpp/absl/base/internal/throw_delegate.cc', + 'third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc', + 'third_party/abseil-cpp/absl/base/log_severity.cc', + 'third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc', + 'third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc', + 'third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc', + 'third_party/abseil-cpp/absl/crc/crc32c.cc', + 'third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc', + 'third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc', + 'third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc', + 'third_party/abseil-cpp/absl/debugging/internal/demangle.cc', + 'third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc', + 'third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc', + 'third_party/abseil-cpp/absl/debugging/stacktrace.cc', + 'third_party/abseil-cpp/absl/debugging/symbolize.cc', + 'third_party/abseil-cpp/absl/flags/commandlineflag.cc', + 'third_party/abseil-cpp/absl/flags/flag.cc', + 'third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc', + 'third_party/abseil-cpp/absl/flags/internal/flag.cc', + 'third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc', + 'third_party/abseil-cpp/absl/flags/internal/program_name.cc', + 'third_party/abseil-cpp/absl/flags/marshalling.cc', + 'third_party/abseil-cpp/absl/flags/reflection.cc', + 'third_party/abseil-cpp/absl/flags/usage_config.cc', + 'third_party/abseil-cpp/absl/hash/internal/city.cc', + 'third_party/abseil-cpp/absl/hash/internal/hash.cc', + 'third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc', + 'third_party/abseil-cpp/absl/numeric/int128.cc', + 'third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc', + 'third_party/abseil-cpp/absl/random/discrete_distribution.cc', + 'third_party/abseil-cpp/absl/random/gaussian_distribution.cc', + 'third_party/abseil-cpp/absl/random/internal/pool_urbg.cc', + 'third_party/abseil-cpp/absl/random/internal/randen.cc', + 'third_party/abseil-cpp/absl/random/internal/randen_detect.cc', + 'third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc', + 'third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc', + 'third_party/abseil-cpp/absl/random/internal/randen_slow.cc', + 'third_party/abseil-cpp/absl/random/internal/seed_material.cc', + 'third_party/abseil-cpp/absl/random/seed_gen_exception.cc', + 'third_party/abseil-cpp/absl/random/seed_sequences.cc', + 'third_party/abseil-cpp/absl/status/status.cc', + 'third_party/abseil-cpp/absl/status/status_payload_printer.cc', + 'third_party/abseil-cpp/absl/status/statusor.cc', + 'third_party/abseil-cpp/absl/strings/ascii.cc', + 'third_party/abseil-cpp/absl/strings/charconv.cc', + 'third_party/abseil-cpp/absl/strings/cord.cc', + 'third_party/abseil-cpp/absl/strings/cord_analysis.cc', + 'third_party/abseil-cpp/absl/strings/cord_buffer.cc', + 'third_party/abseil-cpp/absl/strings/escaping.cc', + 'third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc', + 'third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_internal.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc', + 'third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc', + 'third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc', + 'third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc', + 'third_party/abseil-cpp/absl/strings/internal/cordz_info.cc', + 'third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc', + 'third_party/abseil-cpp/absl/strings/internal/escaping.cc', + 'third_party/abseil-cpp/absl/strings/internal/memutil.cc', + 'third_party/abseil-cpp/absl/strings/internal/ostringstream.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/output.cc', + 'third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc', + 'third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc', + 'third_party/abseil-cpp/absl/strings/internal/utf8.cc', + 'third_party/abseil-cpp/absl/strings/match.cc', + 'third_party/abseil-cpp/absl/strings/numbers.cc', + 'third_party/abseil-cpp/absl/strings/str_cat.cc', + 'third_party/abseil-cpp/absl/strings/str_replace.cc', + 'third_party/abseil-cpp/absl/strings/str_split.cc', + 'third_party/abseil-cpp/absl/strings/string_view.cc', + 'third_party/abseil-cpp/absl/strings/substitute.cc', + 'third_party/abseil-cpp/absl/synchronization/barrier.cc', + 'third_party/abseil-cpp/absl/synchronization/blocking_counter.cc', + 'third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc', + 'third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc', + 'third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc', + 'third_party/abseil-cpp/absl/synchronization/internal/waiter.cc', + 'third_party/abseil-cpp/absl/synchronization/mutex.cc', + 'third_party/abseil-cpp/absl/synchronization/notification.cc', + 'third_party/abseil-cpp/absl/time/civil_time.cc', + 'third_party/abseil-cpp/absl/time/clock.cc', + 'third_party/abseil-cpp/absl/time/duration.cc', + 'third_party/abseil-cpp/absl/time/format.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc', + 'third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc', + 'third_party/abseil-cpp/absl/time/time.cc', + 'third_party/abseil-cpp/absl/types/bad_optional_access.cc', + 'third_party/abseil-cpp/absl/types/bad_variant_access.cc', + 'third_party/address_sorting/address_sorting.c', + 'third_party/address_sorting/address_sorting_posix.c', + 'third_party/address_sorting/address_sorting_windows.c', + 'third_party/boringssl-with-bazel/err_data.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c', + 'third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c', + 'third_party/boringssl-with-bazel/src/crypto/base64/base64.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/bio.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/connect.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/fd.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/file.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/pair.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/printf.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/socket.c', + 'third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c', + 'third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c', + 'third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c', + 'third_party/boringssl-with-bazel/src/crypto/buf/buf.c', + 'third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c', + 'third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c', + 'third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c', + 'third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c', + 'third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c', + 'third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c', + 'third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c', + 'third_party/boringssl-with-bazel/src/crypto/conf/conf.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_arm.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c', + 'third_party/boringssl-with-bazel/src/crypto/cpu_intel.c', + 'third_party/boringssl-with-bazel/src/crypto/crypto.c', + 'third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c', + 'third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c', + 'third_party/boringssl-with-bazel/src/crypto/des/des.c', + 'third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c', + 'third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c', + 'third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c', + 'third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c', + 'third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c', + 'third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c', + 'third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/engine/engine.c', + 'third_party/boringssl-with-bazel/src/crypto/err/err.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/evp.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/print.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/sign.c', + 'third_party/boringssl-with-bazel/src/crypto/ex_data.c', + 'third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c', + 'third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c', + 'third_party/boringssl-with-bazel/src/crypto/hkdf/hkdf.c', + 'third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c', + 'third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c', + 'third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c', + 'third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c', + 'third_party/boringssl-with-bazel/src/crypto/mem.c', + 'third_party/boringssl-with-bazel/src/crypto/obj/obj.c', + 'third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c', + 'third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c', + 'third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c', + 'third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c', + 'third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c', + 'third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c', + 'third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c', + 'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c', + 'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c', + 'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c', + 'third_party/boringssl-with-bazel/src/crypto/pool/pool.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c', + 'third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c', + 'third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c', + 'third_party/boringssl-with-bazel/src/crypto/refcount_c11.c', + 'third_party/boringssl-with-bazel/src/crypto/refcount_lock.c', + 'third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c', + 'third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c', + 'third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c', + 'third_party/boringssl-with-bazel/src/crypto/stack/stack.c', + 'third_party/boringssl-with-bazel/src/crypto/thread.c', + 'third_party/boringssl-with-bazel/src/crypto/thread_none.c', + 'third_party/boringssl-with-bazel/src/crypto/thread_pthread.c', + 'third_party/boringssl-with-bazel/src/crypto/thread_win.c', + 'third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c', + 'third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c', + 'third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/by_file.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/name_print.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/policy.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/t_req.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509name.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_all.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_info.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_name.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_req.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_val.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c', + 'third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c', + 'third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c', + 'third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc', + 'third_party/boringssl-with-bazel/src/ssl/d1_both.cc', + 'third_party/boringssl-with-bazel/src/ssl/d1_lib.cc', + 'third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc', + 'third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc', + 'third_party/boringssl-with-bazel/src/ssl/dtls_method.cc', + 'third_party/boringssl-with-bazel/src/ssl/dtls_record.cc', + 'third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc', + 'third_party/boringssl-with-bazel/src/ssl/extensions.cc', + 'third_party/boringssl-with-bazel/src/ssl/handoff.cc', + 'third_party/boringssl-with-bazel/src/ssl/handshake.cc', + 'third_party/boringssl-with-bazel/src/ssl/handshake_client.cc', + 'third_party/boringssl-with-bazel/src/ssl/handshake_server.cc', + 'third_party/boringssl-with-bazel/src/ssl/s3_both.cc', + 'third_party/boringssl-with-bazel/src/ssl/s3_lib.cc', + 'third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_file.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_session.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc', + 'third_party/boringssl-with-bazel/src/ssl/t1_enc.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls13_both.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls13_client.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls13_server.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls_method.cc', + 'third_party/boringssl-with-bazel/src/ssl/tls_record.cc', + 'third_party/cares/cares/src/lib/ares__close_sockets.c', + 'third_party/cares/cares/src/lib/ares__get_hostent.c', + 'third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c', + 'third_party/cares/cares/src/lib/ares__read_line.c', + 'third_party/cares/cares/src/lib/ares__readaddrinfo.c', + 'third_party/cares/cares/src/lib/ares__sortaddrinfo.c', + 'third_party/cares/cares/src/lib/ares__timeval.c', + 'third_party/cares/cares/src/lib/ares_android.c', + 'third_party/cares/cares/src/lib/ares_cancel.c', + 'third_party/cares/cares/src/lib/ares_create_query.c', + 'third_party/cares/cares/src/lib/ares_data.c', + 'third_party/cares/cares/src/lib/ares_destroy.c', + 'third_party/cares/cares/src/lib/ares_expand_name.c', + 'third_party/cares/cares/src/lib/ares_expand_string.c', + 'third_party/cares/cares/src/lib/ares_fds.c', + 'third_party/cares/cares/src/lib/ares_free_hostent.c', + 'third_party/cares/cares/src/lib/ares_free_string.c', + 'third_party/cares/cares/src/lib/ares_freeaddrinfo.c', + 'third_party/cares/cares/src/lib/ares_getaddrinfo.c', + 'third_party/cares/cares/src/lib/ares_getenv.c', + 'third_party/cares/cares/src/lib/ares_gethostbyaddr.c', + 'third_party/cares/cares/src/lib/ares_gethostbyname.c', + 'third_party/cares/cares/src/lib/ares_getnameinfo.c', + 'third_party/cares/cares/src/lib/ares_getsock.c', + 'third_party/cares/cares/src/lib/ares_init.c', + 'third_party/cares/cares/src/lib/ares_library_init.c', + 'third_party/cares/cares/src/lib/ares_llist.c', + 'third_party/cares/cares/src/lib/ares_mkquery.c', + 'third_party/cares/cares/src/lib/ares_nowarn.c', + 'third_party/cares/cares/src/lib/ares_options.c', + 'third_party/cares/cares/src/lib/ares_parse_a_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_caa_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_mx_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_naptr_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_ns_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_ptr_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_soa_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_srv_reply.c', + 'third_party/cares/cares/src/lib/ares_parse_txt_reply.c', + 'third_party/cares/cares/src/lib/ares_platform.c', + 'third_party/cares/cares/src/lib/ares_process.c', + 'third_party/cares/cares/src/lib/ares_query.c', + 'third_party/cares/cares/src/lib/ares_search.c', + 'third_party/cares/cares/src/lib/ares_send.c', + 'third_party/cares/cares/src/lib/ares_strcasecmp.c', + 'third_party/cares/cares/src/lib/ares_strdup.c', + 'third_party/cares/cares/src/lib/ares_strerror.c', + 'third_party/cares/cares/src/lib/ares_strsplit.c', + 'third_party/cares/cares/src/lib/ares_timeout.c', + 'third_party/cares/cares/src/lib/ares_version.c', + 'third_party/cares/cares/src/lib/ares_writev.c', + 'third_party/cares/cares/src/lib/bitncmp.c', + 'third_party/cares/cares/src/lib/inet_net_pton.c', + 'third_party/cares/cares/src/lib/inet_ntop.c', + 'third_party/cares/cares/src/lib/windows_port.c', + 'third_party/re2/re2/bitstate.cc', + 'third_party/re2/re2/compile.cc', + 'third_party/re2/re2/dfa.cc', + 'third_party/re2/re2/filtered_re2.cc', + 'third_party/re2/re2/mimics_pcre.cc', + 'third_party/re2/re2/nfa.cc', + 'third_party/re2/re2/onepass.cc', + 'third_party/re2/re2/parse.cc', + 'third_party/re2/re2/perl_groups.cc', + 'third_party/re2/re2/prefilter.cc', + 'third_party/re2/re2/prefilter_tree.cc', + 'third_party/re2/re2/prog.cc', + 'third_party/re2/re2/re2.cc', + 'third_party/re2/re2/regexp.cc', + 'third_party/re2/re2/set.cc', + 'third_party/re2/re2/simplify.cc', + 'third_party/re2/re2/stringpiece.cc', + 'third_party/re2/re2/tostring.cc', + 'third_party/re2/re2/unicode_casefold.cc', + 'third_party/re2/re2/unicode_groups.cc', + 'third_party/re2/util/pcre.cc', + 'third_party/re2/util/rune.cc', + 'third_party/re2/util/strutil.cc', + 'third_party/upb/third_party/utf8_range/naive.c', + 'third_party/upb/third_party/utf8_range/range2-neon.c', + 'third_party/upb/third_party/utf8_range/range2-sse.c', + 'third_party/upb/upb/arena.c', + 'third_party/upb/upb/array.c', + 'third_party/upb/upb/decode.c', + 'third_party/upb/upb/decode_fast.c', + 'third_party/upb/upb/def.c', + 'third_party/upb/upb/encode.c', + 'third_party/upb/upb/extension_registry.c', + 'third_party/upb/upb/json_decode.c', + 'third_party/upb/upb/json_encode.c', + 'third_party/upb/upb/map.c', + 'third_party/upb/upb/mini_table.c', + 'third_party/upb/upb/msg.c', + 'third_party/upb/upb/reflection.c', + 'third_party/upb/upb/status.c', + 'third_party/upb/upb/table.c', + 'third_party/upb/upb/text_encode.c', + 'third_party/upb/upb/upb.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', +] + +ASM_SOURCE_FILES = { + 'crypto_apple_aarch64': [ + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/chacha/chacha-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/aesv8-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/armv8-mont-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/bn-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/ghash-neon-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/ghashv8-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/p256-armv8-asm-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha1-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha256-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha512-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/vpaes-armv8-apple.S', + 'third_party/boringssl-with-bazel/apple-aarch64/crypto/test/trampoline-armv8-apple.S', + ], + 'crypto_apple_arm': [ + 'third_party/boringssl-with-bazel/apple-arm/crypto/chacha/chacha-armv4-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/aesv8-armv7-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/armv4-mont-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/bsaes-armv7-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/ghash-armv4-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/ghashv8-armv7-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/sha1-armv4-large-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/sha256-armv4-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/sha512-armv4-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/fipsmodule/vpaes-armv7-apple.S', + 'third_party/boringssl-with-bazel/apple-arm/crypto/test/trampoline-armv4-apple.S', + ], + 'crypto_apple_x86': [ + 'third_party/boringssl-with-bazel/apple-x86/crypto/chacha/chacha-x86-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/aesni-x86-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/bn-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/co-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/ghash-ssse3-x86-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/ghash-x86-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/md5-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha1-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha256-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha512-586-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/vpaes-x86-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/x86-mont-apple.S', + 'third_party/boringssl-with-bazel/apple-x86/crypto/test/trampoline-x86-apple.S', + ], + 'crypto_apple_x86_64': [ + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/chacha/chacha-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/aesni-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/ghash-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/md5-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/p256-x86_64-asm-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/rdrand-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/rsaz-avx2-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha1-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha256-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha512-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/vpaes-x86_64-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/x86_64-mont-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/x86_64-mont5-apple.S', + 'third_party/boringssl-with-bazel/apple-x86_64/crypto/test/trampoline-x86_64-apple.S', + ], + 'crypto_linux_aarch64': [ + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/chacha/chacha-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/aesv8-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/armv8-mont-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/bn-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/ghashv8-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/p256-armv8-asm-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha1-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha256-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha512-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/vpaes-armv8-linux.S', + 'third_party/boringssl-with-bazel/linux-aarch64/crypto/test/trampoline-armv8-linux.S', + ], + 'crypto_linux_arm': [ + 'third_party/boringssl-with-bazel/linux-arm/crypto/chacha/chacha-armv4-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/aesv8-armv7-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/armv4-mont-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/bsaes-armv7-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/ghash-armv4-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/ghashv8-armv7-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha1-armv4-large-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha256-armv4-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha512-armv4-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/vpaes-armv7-linux.S', + 'third_party/boringssl-with-bazel/linux-arm/crypto/test/trampoline-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/crypto/curve25519/asm/x25519-asm-arm.S', + 'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm_asm.S', + ], + 'crypto_linux_x86': [ + 'third_party/boringssl-with-bazel/linux-x86/crypto/chacha/chacha-x86-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/aesni-x86-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/bn-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/co-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/ghash-ssse3-x86-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/ghash-x86-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/md5-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha1-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha256-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha512-586-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/vpaes-x86-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/x86-mont-linux.S', + 'third_party/boringssl-with-bazel/linux-x86/crypto/test/trampoline-x86-linux.S', + ], + 'crypto_linux_x86_64': [ + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/chacha/chacha-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/md5-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rdrand-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rsaz-avx2-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha1-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha256-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha512-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/vpaes-x86_64-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont5-linux.S', + 'third_party/boringssl-with-bazel/linux-x86_64/crypto/test/trampoline-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/crypto/hrss/asm/poly_rq_mul.S', + ], + 'crypto_win_aarch64': [ + 'third_party/boringssl-with-bazel/win-aarch64/crypto/chacha/chacha-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/aesv8-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/armv8-mont-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/bn-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/ghash-neon-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/ghashv8-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/p256-armv8-asm-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha1-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha256-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha512-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/vpaes-armv8-win.S', + 'third_party/boringssl-with-bazel/win-aarch64/crypto/test/trampoline-armv8-win.S', + ], + 'crypto_win_x86': [ + 'third_party/boringssl-with-bazel/win-x86/crypto/chacha/chacha-x86-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/aesni-x86-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/bn-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/co-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/ghash-ssse3-x86-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/ghash-x86-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/md5-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha1-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha256-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha512-586-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/vpaes-x86-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/x86-mont-win.asm', + 'third_party/boringssl-with-bazel/win-x86/crypto/test/trampoline-x86-win.asm', + ], + 'crypto_win_x86_64': [ + 'third_party/boringssl-with-bazel/win-x86_64/crypto/chacha/chacha-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/aesni-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/ghash-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/md5-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/p256-x86_64-asm-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/rdrand-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/rsaz-avx2-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha256-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha512-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/vpaes-x86_64-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/x86_64-mont-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/x86_64-mont5-win.asm', + 'third_party/boringssl-with-bazel/win-x86_64/crypto/test/trampoline-x86_64-win.asm', + ], +} diff --git a/contrib/python/grpcio/py3/grpc_version.py b/contrib/python/grpcio/py3/grpc_version.py new file mode 100644 index 00000000000..57a095efc17 --- /dev/null +++ b/contrib/python/grpcio/py3/grpc_version.py @@ -0,0 +1,17 @@ +# Copyright 2015 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!! + +VERSION = '1.54.2' diff --git a/contrib/python/grpcio/py3/patches/05-ssl.patch b/contrib/python/grpcio/py3/patches/05-ssl.patch new file mode 100644 index 00000000000..573ff7f59fe --- /dev/null +++ b/contrib/python/grpcio/py3/patches/05-ssl.patch @@ -0,0 +1,50 @@ +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi +index fc7a9ba..bfec911 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi +@@ -333,6 +333,7 @@ cdef extern from "grpc/grpc.h": + void * reserved + grpc_op_data data + ++ void grpc_dont_init_openssl() nogil + void grpc_init() nogil + void grpc_shutdown() nogil + void grpc_shutdown_blocking() nogil +diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pyx b/src/python/grpcio/grpc/_cython/cygrpc.pyx +index ce98fa3..f7f369c 100644 +--- a/src/python/grpcio/grpc/_cython/cygrpc.pyx ++++ b/src/python/grpcio/grpc/_cython/cygrpc.pyx +@@ -56,8 +56,8 @@ cdef _initialize(): + # We have Python callbacks called by c-core threads, this ensures the GIL + # is initialized. + PyEval_InitThreads() +- grpc_set_ssl_roots_override_callback( +- <grpc_ssl_roots_override_callback>ssl_roots_override_callback) +- ++ import ssl ++ grpc_dont_init_openssl() ++ # Load Arcadia certs in ComputePemRootCerts and do not override here. + + _initialize() +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi +index e17ca6d..9cc3fd5 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/security.pyx.pxi +@@ -14,16 +14,10 @@ + + from libc.string cimport memcpy + +-import pkgutil +- +- + cdef grpc_ssl_roots_override_result ssl_roots_override_callback( + char **pem_root_certs) nogil: + with gil: +- pkg = __name__ +- if pkg.endswith('.cygrpc'): +- pkg = pkg[:-len('.cygrpc')] +- temporary_pem_root_certs = pkgutil.get_data(pkg, '_credentials/roots.pem') ++ temporary_pem_root_certs = '' + pem_root_certs[0] = <char *>gpr_malloc(len(temporary_pem_root_certs) + 1) + memcpy( + pem_root_certs[0], <char *>temporary_pem_root_certs, diff --git a/contrib/python/grpcio/py3/patches/14-fix-cimport.patch b/contrib/python/grpcio/py3/patches/14-fix-cimport.patch new file mode 100644 index 00000000000..5fa25ae0f6e --- /dev/null +++ b/contrib/python/grpcio/py3/patches/14-fix-cimport.patch @@ -0,0 +1,11 @@ +--- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi (index) ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi (working tree) +@@ -22,7 +22,7 @@ IF UNAME_SYSNAME == "Windows": + cdef void _unified_socket_write(int fd) nogil: + win_socket_send(<WIN_SOCKET>fd, b"1", 1, 0) + ELSE: +- from posix cimport unistd ++ cimport posix.unistd as unistd + + cdef void _unified_socket_write(int fd) nogil: + unistd.write(fd, b"1", 1) diff --git a/contrib/python/grpcio/py3/support.py b/contrib/python/grpcio/py3/support.py new file mode 100644 index 00000000000..3d64b3170ca --- /dev/null +++ b/contrib/python/grpcio/py3/support.py @@ -0,0 +1,117 @@ +# Copyright 2016 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from distutils import errors +import os +import os.path +import shutil +import sys +import tempfile + +import commands + +C_PYTHON_DEV = """ +#include <Python.h> +int main(int argc, char **argv) { return 0; } +""" +C_PYTHON_DEV_ERROR_MESSAGE = """ +Could not find <Python.h>. This could mean the following: + * You're on Ubuntu and haven't run `apt-get install <PY_REPR>-dev`. + * You're on RHEL/Fedora and haven't run `yum install <PY_REPR>-devel` or + `dnf install <PY_REPR>-devel` (make sure you also have redhat-rpm-config + installed) + * You're on Mac OS X and the usual Python framework was somehow corrupted + (check your environment variables or try re-installing?) + * You're on Windows and your Python installation was somehow corrupted + (check your environment variables or try re-installing?) +""" +if sys.version_info[0] == 2: + PYTHON_REPRESENTATION = 'python' +elif sys.version_info[0] == 3: + PYTHON_REPRESENTATION = 'python3' +else: + raise NotImplementedError('Unsupported Python version: %s' % sys.version) + +C_CHECKS = { + C_PYTHON_DEV: + C_PYTHON_DEV_ERROR_MESSAGE.replace('<PY_REPR>', PYTHON_REPRESENTATION), +} + + +def _compile(compiler, source_string): + tempdir = tempfile.mkdtemp() + cpath = os.path.join(tempdir, 'a.c') + with open(cpath, 'w') as cfile: + cfile.write(source_string) + try: + compiler.compile([cpath]) + except errors.CompileError as error: + return error + finally: + shutil.rmtree(tempdir) + + +def _expect_compile(compiler, source_string, error_message): + if _compile(compiler, source_string) is not None: + sys.stderr.write(error_message) + raise commands.CommandError( + "Diagnostics found a compilation environment issue:\n{}".format( + error_message)) + + +def diagnose_compile_error(build_ext, error): + """Attempt to diagnose an error during compilation.""" + for c_check, message in C_CHECKS.items(): + _expect_compile(build_ext.compiler, c_check, message) + python_sources = [ + source for source in build_ext.get_source_files() + if source.startswith('./src/python') and source.endswith('c') + ] + for source in python_sources: + if not os.path.isfile(source): + raise commands.CommandError(( + "Diagnostics found a missing Python extension source file:\n{}\n\n" + "This is usually because the Cython sources haven't been transpiled " + "into C yet and you're building from source.\n" + "Try setting the environment variable " + "`GRPC_PYTHON_BUILD_WITH_CYTHON=1` when invoking `setup.py` or " + "when using `pip`, e.g.:\n\n" + "pip install -rrequirements.txt\n" + "GRPC_PYTHON_BUILD_WITH_CYTHON=1 pip install .").format(source)) + + +def diagnose_attribute_error(build_ext, error): + if any('_needs_stub' in arg for arg in error.args): + raise commands.CommandError( + "We expect a missing `_needs_stub` attribute from older versions of " + "setuptools. Consider upgrading setuptools.") + + +_ERROR_DIAGNOSES = { + errors.CompileError: diagnose_compile_error, + AttributeError: diagnose_attribute_error, +} + + +def diagnose_build_ext_error(build_ext, error, formatted): + diagnostic = _ERROR_DIAGNOSES.get(type(error)) + if diagnostic is None: + raise commands.CommandError( + "\n\nWe could not diagnose your build failure. If you are unable to " + "proceed, please file an issue at http://www.github.com/grpc/grpc " + "with `[Python install]` in the title; please attach the whole log " + "(including everything that may have appeared above the Python " + "backtrace).\n\n{}".format(formatted)) + else: + diagnostic(build_ext, error) |