cd4c38
# We need to use C++17 to link against the system abseil-cpp, since it was
cd4c38
# compiled with C++17 (an intentional abseil-cpp design decision).
cd4c38
%global cpp_std 17
cd4c38
cd4c38
# However, we also get linker errors building the tests if we link against the
cd4c38
# copy of gtest in Fedora (compiled with C++11). The exact root cause is not
cd4c38
# quite clear. We must therefore bundle a copy of gtest in the source RPM
cd4c38
# rather than using the system copy. This is to be discouraged, but there is no
cd4c38
# alternative in this case. It is not treated as a bundled library because it
cd4c38
# is used only at build time, and contributes nothing to the installed files.
cd4c38
# We take measures to verify this in %%check. As long as we are using our own
cd4c38
# copy, we use the exact same version as upstream.
cd4c38
%global gtest_url https://github.com/google/googletest
cd4c38
%global gtest_dir googletest-%{gtest_commit}
cd4c38
%global gtest_commit 0e402173c97aea7a00749e825b194bfede4f2e45
cd4c38
#global gtest_version 1.11.0
cd4c38
#global gtest_dir googletest-release-#{gtest_version}
cd4c38
%bcond system_gtest        0
cd4c38
cd4c38
# =====
cd4c38
cd4c38
# Parameters for third-party sources needed for their .proto files, which
cd4c38
# upstream expects to download at build time.
cd4c38
#
cd4c38
# See https://github.com/grpc/grpc/pull/29254 “[xDS Proto] Enhence gRPC
cd4c38
# buildgen for 3rd party proto compilation” and
cd4c38
# https://github.com/grpc/grpc/commit/99752b173cfa2fba81dedb482ee4fd74b2a46bb0,
cd4c38
# in which the download mechanism was added.
cd4c38
#
cd4c38
# Check CMakeLists.txt (search for “download_archive”) for a list of these
cd4c38
# third-party sources and the commit hashes used in the grpc release.
cd4c38
#
cd4c38
# Note that we do not treat these additional sources as bundled dependencies,
cd4c38
# since (provably) only the .proto files are used.
cd4c38
#
cd4c38
# In practice, it seems the generated binding code for these protos is not
cd4c38
# re-generated when building this package, so we could get by with creating the
cd4c38
# appropriate directories and touching an empty file within each. We include
cd4c38
# these archives in the source RPM anyway, since they are in some sense part of
cd4c38
# the original sources for the generated proto code.
cd4c38
cd4c38
# This will probably never be separately packaged in Fedora, since upstream can
cd4c38
# only build with Bazel (and Bazel is such a mess of bundled dependencies that
cd4c38
# it is unlikely to every be successfully packaged under the Fedora packaging
cd4c38
# guidelines. Note that the URL is a read-only mirror based on
cd4c38
# https://github.com/envoyproxy/envoy, with different commit hashes.
cd4c38
%global envoy_api_commit 9c42588c956220b48eb3099d186487c2f04d32ec
cd4c38
%global envoy_api_url https://github.com/envoyproxy/data-plane-api
cd4c38
%global envoy_api_dir data-plane-api-%{envoy_api_commit}
cd4c38
cd4c38
%global googleapis_commit 2f9af297c84c55c8b871ba4495e01ade42476c92
cd4c38
%global googleapis_url https://github.com/googleapis/googleapis
cd4c38
%global googleapis_dir googleapis-%{googleapis_commit}
cd4c38
cd4c38
%global opencensus_proto_version 0.3.0
cd4c38
%global opencensus_proto_url https://github.com/census-instrumentation/opencensus-proto
cd4c38
%global opencensus_proto_dir opencensus-proto-%{opencensus_proto_version}
cd4c38
cd4c38
%global xds_commit cb28da3451f158a947dfc45090fe92b07b243bc1
cd4c38
%global xds_url https://github.com/cncf/xds
cd4c38
%global xds_dir xds-%{xds_commit}
cd4c38
cd4c38
# =====
cd4c38
cd4c38
# This must be enabled to get grpc_cli, which is apparently considered part of
cd4c38
# the tests by upstream. This is mentioned in
cd4c38
# https://github.com/grpc/grpc/issues/23432.
cd4c38
%bcond core_tests          1
cd4c38
cd4c38
# A great many of these tests (over 20%) fail. Any help in understanding these
cd4c38
# well enough to fix them or report them upstream is welcome.
cd4c38
%bcond python_aio_tests    0
cd4c38
cd4c38
%ifnarch s390x
cd4c38
# There are currently a significant number of failures like:
cd4c38
#
cd4c38
#   Exception serializing message!
cd4c38
#   Traceback (most recent call last):
cd4c38
#     File "/builddir/build/BUILDROOT/grpc-1.48.0-2.fc38~bootstrap.x86_64/usr/lib64/python3.11/site-packages/grpc/_common.py", line 86, in _transform
cd4c38
#       return transformer(message)
cd4c38
#              ^^^^^^^^^^^^^^^^^^^^
cd4c38
#     File "/usr/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 1082, in SerializeToString
cd4c38
#       if not self.IsInitialized():
cd4c38
#              ^^^^^^^^^^^^^^^^^^
cd4c38
#   AttributeError: 'NoneType' object has no attribute 'IsInitialized'
cd4c38
%bcond python_gevent_tests 0
cd4c38
%else
cd4c38
# A significant number of Python tests pass in test_lite but fail in
cd4c38
# test_gevent, mostly by dumping core without a traceback.  Since it is tedious
cd4c38
# to enumerate these (and it is difficult to implement “suite-specific” skips
cd4c38
# for shared tests, so the tests would have to be skipped in all suites), we
cd4c38
# just skip the gevent suite entirely on this architecture.
cd4c38
%bcond python_gevent_tests 0
cd4c38
%endif
cd4c38
cd4c38
# Running core tests under valgrind may help debug crashes. This is mostly
cd4c38
# ignored if the gdb build conditional is also set.
cd4c38
%bcond valgrind            0
cd4c38
# Running core tests under gdb may help debug crashes.
cd4c38
%bcond gdb                 0
cd4c38
cd4c38
# HTML documentation generated with Doxygen and/or Sphinx is not suitable for
cd4c38
# packaging due to a minified JavaScript bundle inserted by
cd4c38
# Doxygen/Sphinx/Sphinx themes itself. See discussion at
cd4c38
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555.
cd4c38
#
cd4c38
# Normally we could consider enabling the Doxygen PDF documentation as a lesser
cd4c38
# substitute, but (after enabling it and working around some Unicode characters
cd4c38
# in the Markdown input) we get:
cd4c38
#
cd4c38
#   ! TeX capacity exceeded, sorry [main memory size=6000000].
cd4c38
#
cd4c38
# A similar situation applies to the Sphinx-generated HTML documentation for
cd4c38
# Python, except that we have not even tried to render it as a PDF because it
cd4c38
# is too unpleasant to try if we already cannot package the Doxygen-generated
cd4c38
# documentation. Instead, we have just dropped all documentation.
cd4c38
cd4c38
Name:           grpc
cd4c38
Version:        1.48.4
cd4c38
Release:        44%{?dist}
cd4c38
Summary:        RPC library and framework
cd4c38
cd4c38
%global srcversion %(echo '%{version}' | sed -r 's/~rc/-pre/')
cd4c38
%global pyversion %(echo '%{version}' | tr -d '~')
cd4c38
cd4c38
# CMakeLists.txt: gRPC_CORE_SOVERSION
cd4c38
%global c_so_version 26
cd4c38
# CMakeLists.txt: gRPC_CPP_SOVERSION
cd4c38
# See https://github.com/abseil/abseil-cpp/issues/950#issuecomment-843169602
cd4c38
# regarding unusual C++ SOVERSION style (not a single number).
cd4c38
%global cpp_so_version 1.48
cd4c38
cd4c38
# The entire source is Apache-2.0 except the following:
cd4c38
#
cd4c38
# BSD-2-Clause:
cd4c38
#   - third_party/xxhash is BSD-2-Clause, at least the relevant parts (not the
cd4c38
#     command-line tool); it is unbundled, but then it is used as a header-only
cd4c38
#     library due to XXH_INCLUDE_ALL, so we must treat it as a static library
cd4c38
#     and include its license in that of the binary RPMs
cd4c38
#     * Potentially linked into any compiled subpackage (but not pure-Python
cd4c38
#       subpackages, etc.)
cd4c38
# BSD-3-Clause:
cd4c38
#   - third_party/upb/, except third_party/upb/third_party/lunit/ and
cd4c38
#     third_party/upb/third_party/utf8_range/
cd4c38
#     * Potentially linked into any compiled subpackage (but not pure-Python
cd4c38
#       subpackages, etc.)
cd4c38
#   - third_party/address_sorting/
cd4c38
#     * Potentially linked into any compiled subpackage (but not pure-Python
cd4c38
#       subpackages, etc.)
cd4c38
# MIT:
cd4c38
#   - third_party/upb/third_party/utf8_range
cd4c38
#     * Potentially linked into any compiled subpackage (but not pure-Python
cd4c38
#       subpackages, etc.)
cd4c38
#
cd4c38
# as well as the following which do not contribute to the base License field or
cd4c38
# any subpackage License field for the reasons noted:
cd4c38
#
cd4c38
# MPL-2.0:
cd4c38
#   - etc/roots.pem
cd4c38
#     * Truncated to an empty file in prep; a symlink to the shared system
cd4c38
#       certificates is used instead
cd4c38
#   - src/android/test/interop/app/src/main/assets/roots.pem
cd4c38
#     * Truncated to an empty file in prep
cd4c38
# ISC:
cd4c38
#   - src/boringssl/boringssl_prefix_symbols.h
cd4c38
#     * Removed in prep; not used when building with system OpenSSL
cd4c38
# BSD-3-Clause:
cd4c38
#   - src/objective-c/*.podspec and
cd4c38
#     templates/src/objective-c/*.podspec.template
cd4c38
#     * Unused since the Objective-C bindings are not currently built;
cd4c38
#       furthermore, these seem to be build-system files that would not
cd4c38
#       contribute their licenses to the binary RPM contents anyway
cd4c38
# NTP:
cd4c38
#   - third_party/cares/ares_build.h
cd4c38
#     * Removed in prep; header from system C-Ares used instead
cd4c38
# MIT:
cd4c38
#   - third_party/upb/third_party/lunit/
cd4c38
#     * Removed in prep, since there is no obvious way to run the upb tests
cd4c38
License:        Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND MIT
cd4c38
URL:            https://www.grpc.io
cd4c38
%global forgeurl https://github.com/grpc/grpc/
cd4c38
Source0:        %{forgeurl}/archive/v%{srcversion}/grpc-%{srcversion}.tar.gz
cd4c38
Source1:        %{gtest_url}/archive/%{gtest_commit}/%{gtest_dir}.tar.gz
cd4c38
#Source1:        #{gtest_url}/archive/release-#{gtest_version}/#{gtest_dir}.tar.gz
cd4c38
Source2:        %{envoy_api_url}/archive/%{envoy_api_commit}/%{envoy_api_dir}.tar.gz
cd4c38
Source3:        %{googleapis_url}/archive/%{googleapis_commit}/%{googleapis_dir}.tar.gz
cd4c38
Source4:        %{opencensus_proto_url}/archive/v%{opencensus_proto_version}/%{opencensus_proto_dir}.tar.gz
cd4c38
Source5:        %{xds_url}/archive/%{xds_commit}/%{xds_dir}.tar.gz
cd4c38
cd4c38
# Downstream grpc_cli man pages; hand-written based on “grpc_cli help” output.
cd4c38
Source100:      grpc_cli.1
cd4c38
Source101:      grpc_cli-ls.1
cd4c38
Source102:      grpc_cli-call.1
cd4c38
Source103:      grpc_cli-type.1
cd4c38
Source104:      grpc_cli-parse.1
cd4c38
Source105:      grpc_cli-totext.1
cd4c38
Source106:      grpc_cli-tojson.1
cd4c38
Source107:      grpc_cli-tobinary.1
cd4c38
Source108:      grpc_cli-help.1
cd4c38
cd4c38
# ~~~~ C (core) and C++ (cpp) ~~~~
cd4c38
cd4c38
BuildRequires:  gcc-c++
cd4c38
BuildRequires:  cmake
cd4c38
BuildRequires:  ninja-build
cd4c38
%if %{with core_tests}
cd4c38
# Used on grpc_cli:
cd4c38
BuildRequires:  chrpath
cd4c38
%endif
cd4c38
cd4c38
BuildRequires:  pkgconfig(zlib)
cd4c38
BuildRequires:  cmake(gflags)
cd4c38
BuildRequires:  pkgconfig(protobuf)
cd4c38
BuildRequires:  protobuf-compiler
cd4c38
BuildRequires:  pkgconfig(re2)
cd4c38
BuildRequires:  pkgconfig(openssl)
cd4c38
BuildRequires:  cmake(c-ares)
cd4c38
BuildRequires:  abseil-cpp-devel
cd4c38
# Sets XXH_INCLUDE_ALL, which means xxhash is used as a header-only library
cd4c38
BuildRequires:  pkgconfig(libxxhash)
cd4c38
BuildRequires:  xxhash-static
cd4c38
cd4c38
%if %{with core_tests}
cd4c38
BuildRequires:  cmake(benchmark)
cd4c38
%if %{with system_gtest}
cd4c38
BuildRequires:  cmake(gtest)
cd4c38
BuildRequires:  pkgconfig(gmock)
cd4c38
%endif
cd4c38
%if %{with valgrind}
cd4c38
BuildRequires:  valgrind
cd4c38
%endif
cd4c38
%if %{with gdb}
cd4c38
BuildRequires:  gdb
cd4c38
%endif
cd4c38
%endif
cd4c38
cd4c38
# ~~~~ Python ~~~~
cd4c38
cd4c38
BuildRequires:  python3-devel
cd4c38
BuildRequires:  python3dist(setuptools)
cd4c38
cd4c38
# grpcio (setup.py) setup_requires (with
cd4c38
#     GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD, which is NOT enabled):
cd4c38
# BuildRequires:  python3dist(sphinx)
cd4c38
cd4c38
# grpcio (setup.py) setup_requires (with
cd4c38
#     GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD, which is NOT enabled):
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(six) >= 1.10
cd4c38
# grpcio (setup.py) install_requires also has:
cd4c38
#   six>=1.5.2
cd4c38
cd4c38
# grpcio (setup.py) setup_requires (with GRPC_PYTHON_BUILD_WITH_CYTHON, or
cd4c38
# absent generated sources); also needed for grpcio_tools
cd4c38
# (tools/distrib/python/grpcio_tools/setup.py)
cd4c38
BuildRequires: python3dist(cython) > 0.23
cd4c38
cd4c38
# grpcio (setup.py) install_requires:
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
#   futures>=2.2.0; python_version<'3.2'
cd4c38
cd4c38
# grpcio (setup.py) install_requires:
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
#   enum34>=1.0.4; python_version<'3.4'
cd4c38
cd4c38
# grpcio_csds (src/python/grpcio_csds/setup.py) install_requires:
cd4c38
# grpcio_channelz (src/python/grpcio_channelz/setup.py) install_requires:
cd4c38
# grpcio_health_checking (src/python/grpcio_health_checking/setup.py)
cd4c38
#     install_requires:
cd4c38
# grpcio_reflection (src/python/grpcio_reflection/setup.py) install_requires:
cd4c38
# grpcio_status (src/python/grpcio_status/setup.py) install_requires:
cd4c38
# grpcio_testing (src/python/grpcio_testing/setup.py) install_requires:
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
# grpcio_tools (tools/distrib/python/grpcio_tools/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(protobuf) >= 3.12.0
cd4c38
cd4c38
# grpcio_status (src/python/grpcio_status/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(googleapis-common-protos) >= 1.5.5
cd4c38
cd4c38
# Several packages have dependencies on grpcio or grpcio_tools—and grpcio-tests
cd4c38
# depends on all of the other Python packages—which are satisfied within this
cd4c38
# package.
cd4c38
#
cd4c38
# Similarly, grpcio_admin depends on grpcio_channelz and grpcio_csds.
cd4c38
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(oauth2client) >= 1.4.7
cd4c38
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(google-auth) >= 1.17.2
cd4c38
cd4c38
# grpcio_tests (src/python/grpcio_tests/setup.py) install_requires:
cd4c38
BuildRequires:  python3dist(requests) >= 2.14.2
cd4c38
cd4c38
%if %{with python_gevent_tests}
cd4c38
# Required for “test_gevent” tests:
cd4c38
BuildRequires:  python3dist(gevent)
cd4c38
%endif
cd4c38
cd4c38
# For stopping the port server
cd4c38
BuildRequires:  curl
cd4c38
cd4c38
# ~~~~ Miscellaneous ~~~~
cd4c38
cd4c38
# https://bugzilla.redhat.com/show_bug.cgi?id=1893533
cd4c38
%global _lto_cflags %{nil}
cd4c38
cd4c38
# Reference documentation, which is *not* enabled
cd4c38
# BuildRequires:  doxygen
cd4c38
cd4c38
BuildRequires:  ca-certificates
cd4c38
# For converting absolute symlinks in the buildroot to relative ones
cd4c38
BuildRequires:  symlinks
cd4c38
# For hardlinking duplicate files in the examples
cd4c38
BuildRequires:  hardlink
cd4c38
cd4c38
# Apply Fedora system crypto policies. Since this is Fedora-specific, the patch
cd4c38
# is not suitable for upstream.
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications
cd4c38
#
cd4c38
# In fact, this may not be needed, since only testing code is patched.
cd4c38
Patch:          grpc-1.39.0-system-crypto-policies.patch
cd4c38
# Fix errors like:
cd4c38
#   TypeError: super(type, obj): obj must be an instance or subtype of type
cd4c38
# It is not clear why these occur.
cd4c38
Patch:          grpc-1.36.4-python-grpcio_tests-fixture-super.patch
cd4c38
# Skip tests requiring non-loopback network access when the
cd4c38
# FEDORA_NO_NETWORK_TESTS environment variable is set.
cd4c38
Patch:          grpc-1.40.0-python-grpcio_tests-make-network-tests-skippable.patch
cd4c38
# A handful of compression tests miss the compression ratio threshold. It seems
cd4c38
# to be inconsistent which particular combinations fail in a particular test
cd4c38
# run. It is not clear that this is a real problem. Any help in understanding
cd4c38
# the actual cause well enough to fix this or usefully report it upstream is
cd4c38
# welcome.
cd4c38
Patch:          grpc-1.48.0-python-grpcio_tests-skip-compression-tests.patch
cd4c38
# The upstream requirement to link gtest/gmock from grpc_cli is spurious.
cd4c38
# Remove it. We still have to build the core tests and link a test library
cd4c38
# (libgrpc++_test_config.so…)
cd4c38
Patch:          grpc-1.37.0-grpc_cli-do-not-link-gtest-gmock.patch
cd4c38
# Fix confusion about path to python_wrapper.sh in httpcli/httpscli tests. I
cd4c38
# suppose that the unpatched code must be correct for how upstream runs the
cd4c38
# tests, somehow.
cd4c38
Patch:          grpc-1.45.0-python_wrapper-path.patch
cd4c38
# Skip failing ChannelzServicerTest tests on Python 3.11
cd4c38
#
cd4c38
# Partially works around:
cd4c38
#
cd4c38
# grpc fails to build with Python 3.11: AttributeError: module 'inspect' has no
cd4c38
#   attribute 'getargspec'
cd4c38
# https://bugzilla.redhat.com/show_bug.cgi?id=2095027
cd4c38
#
cd4c38
# TODO: Attempt to reproduce this outside the RPM build environment and submit
cd4c38
# a useful/actionable upstream bug report.
cd4c38
Patch:          grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch
cd4c38
# Running Python “test_lite”, in grpcio_tests,
cd4c38
# unit._dynamic_stubs_test.DynamicStubTest.test_grpc_tools_unimportable hangs.
cd4c38
# This may be related to:
cd4c38
#   [FLAKE] DynamicStubTest timeout under gevent macOS
cd4c38
#   https://github.com/grpc/grpc/issues/25368
cd4c38
# The patch simply skips the test.
cd4c38
Patch:          grpc-1.48.0-python-grpcio_tests-DynamicStubTest-hang.patch
cd4c38
# Use CMake variables for paths in pkg-config files
cd4c38
#
cd4c38
# Use @gRPC_INSTALL_LIBDIR@ for libdir; this fixes an incorrect
cd4c38
# -L/usr/lib on multilib Linux systems where that is the 32-bit library
cd4c38
# path and the correct path is /usr/lib64.
cd4c38
#
cd4c38
# Use @gRPC_INSTALL_INCLUDEDIR@ for consistency.
cd4c38
#
cd4c38
# See also:
cd4c38
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/
cd4c38
#   thread/P2N35UMQVEXPILAF47RQB53MWRV2GM3J/
cd4c38
#
cd4c38
# https://github.com/grpc/grpc/pull/31671
cd4c38
Patch:          %{forgeurl}/pull/31671.patch
cd4c38
# [Test] Use ssl.SSLContext.wrap_socket, not ssl.wrap_socket
cd4c38
#
cd4c38
# The latter emits a DeprecationWarning since Python 3.10 and is removed
cd4c38
# in Python 3.12.
cd4c38
#
cd4c38
# https://github.com/grpc/grpc/pull/33492
cd4c38
#
cd4c38
# Backported to 1.48.4.
cd4c38
Patch:          grpc-1.48.4-wrap_socket.patch
cd4c38
# [Test] Do not use importlib find_module API, removed in Python 3.12
cd4c38
# https://github.com/grpc/grpc/pull/33506
cd4c38
#
cd4c38
# Backported to 1.48.4.
cd4c38
Patch:          grpc-1.48.4-find_module.patch
cd4c38
# Backport several #include directives
cd4c38
# These were included in https://github.com/grpc/grpc/pull/30952
cd4c38
#
cd4c38
# [Fix] Added missing #include (#34359)
cd4c38
# See: https://github.com/grpc/grpc/pull/34359
cd4c38
#
cd4c38
# Add abseil includes in test/cpp/end2end/xds/xds_server.h
cd4c38
# Downstream-only because the current release, 1.60.0, builds without changes.
cd4c38
#
cd4c38
# Together, these fix compatibility with abseil-cpp-20240116.rc1.
cd4c38
Patch:          grpc-1.48.4-abseil-cpp-includes.patch
cd4c38
cd4c38
# [http2] Dont drop connections on metadata limit exceeded (#32309)
cd4c38
#
cd4c38
# * [http] Dont drop connections on metadata limit exceeded
cd4c38
#
cd4c38
# * remove bad test
cd4c38
#
cd4c38
# * Automated change: Fix sanity tests
cd4c38
# https://github.com/grpc/grpc/commit/29d8beee0ac2555773b2a2dda5601c74a95d6c10
cd4c38
# https://github.com/grpc/grpc/pull/32309
cd4c38
#
cd4c38
# Fixes CVE-2023-32732
cd4c38
# https://nvd.nist.gov/vuln/detail/CVE-2023-32732
cd4c38
# CVE-2023-32732 grpc: denial of service [fedora-all]
cd4c38
# https://bugzilla.redhat.com/show_bug.cgi?id=2214470
cd4c38
#
cd4c38
# Backported to 1.48.4.
cd4c38
Patch:          0001-http2-Dont-drop-connections-on-metadata-limit-exceed.patch
cd4c38
# [Python] Specify noexcept for cdef functions (#34242)
cd4c38
#
cd4c38
# This is needed to build grpc with Cython 3.
cd4c38
#
cd4c38
# https://github.com/grpc/grpc/issues/33918#issuecomment-1703386656
cd4c38
# https://github.com/grpc/grpc/issues/33918#issuecomment-1788823585
cd4c38
# https://github.com/grpc/grpc/pull/34242
cd4c38
Patch:          0001-Specify-noexcept-for-cdef-functions.patch
cd4c38
# [Python] Do not call PyEval_InitThreads
cd4c38
# https://github.com/grpc/grpc/pull/34857
cd4c38
Patch:          %{forgeurl}/pull/34857.patch
cd4c38
cd4c38
# Downstream-only patch to remove usage of coverage, per the packaging
cd4c38
# guidelines.  This reduces the build-time dependencies, which slightly speeds
cd4c38
# up builds.  It also makes this package easier port to new EPEL branches.
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
cd4c38
Patch:          0001-Remove-usage-of-coverage.patch
cd4c38
cd4c38
# Don't include <openssl/engine.h>
cd4c38
# OpenSSL in Fedora provides a dummy openssl-devel-engine rpm with a
cd4c38
# dummy <openssl/engine.h>. EPEL10 has no such package, nor has this
cd4c38
# version of grpc has not caught up with the removal of engine and
cd4c38
# related headers.
cd4c38
Patch:		grpc-1.48.4-core-tsi-ssl_transport_security.cc.patch
cd4c38
cd4c38
Requires:       grpc-data = %{version}-%{release}
cd4c38
cd4c38
# Upstream https://github.com/protocolbuffers/upb does not support building
cd4c38
# with anything other than Bazel, and Bazel is not likely to make it into
cd4c38
# Fedora anytime soon due to its nightmarish collection of dependencies.
cd4c38
# Monitor this at https://bugzilla.redhat.com/show_bug.cgi?id=1470842.
cd4c38
# Therefore upb cannot be packaged for Fedora, and we must use the bundled
cd4c38
# copy.
cd4c38
#
cd4c38
# Note that upstream has never chosen a version, and it is not clear from which
cd4c38
# commit the bundled copy was taken or forked.
cd4c38
#
cd4c38
# Note also that libupb is installed in the system-wide linker path, which will
cd4c38
# be a problem if upb is ever packaged separately. We will cross that bridge if
cd4c38
# we get there.
cd4c38
Provides:       bundled(upb)
cd4c38
# The bundled upb itself bundles https://github.com/cyb70289/utf8; we follow
cd4c38
# upstream in styling this as “utf8_range”. It cannot reasonably be unbundled
cd4c38
# because the original code is not structured for distribution as a library (it
cd4c38
# does not even include header files). It is not clear which upstream commit
cd4c38
# was used.
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
# Regarding third_party/address_sorting: this looks a bit like a bundled
cd4c38
# library, but it is not. From a source file comment:
cd4c38
#   This is an adaptation of Android's implementation of RFC 6724 (in Android’s
cd4c38
#   getaddrinfo.c). It has some cosmetic differences from Android’s
cd4c38
#   getaddrinfo.c, but Android’s getaddrinfo.c was used as a guide or example
cd4c38
#   of a way to implement the RFC 6724 spec when this was written.
cd4c38
cd4c38
%description
cd4c38
gRPC is a modern open source high performance RPC framework that can run in any
cd4c38
environment. It can efficiently connect services in and across data centers
cd4c38
with pluggable support for load balancing, tracing, health checking and
cd4c38
authentication. It is also applicable in last mile of distributed computing to
cd4c38
connect devices, mobile applications and browsers to backend services.
cd4c38
cd4c38
The main usage scenarios:
cd4c38
cd4c38
  • Efficiently connecting polyglot services in microservices style
cd4c38
    architecture
cd4c38
  • Connecting mobile devices, browser clients to backend services
cd4c38
  • Generating efficient client libraries
cd4c38
cd4c38
Core Features that make it awesome:
cd4c38
cd4c38
  • Idiomatic client libraries in 10 languages
cd4c38
  • Highly efficient on wire and with a simple service definition framework
cd4c38
  • Bi-directional streaming with http/2 based transport
cd4c38
  • Pluggable auth, tracing, load balancing and health checking
cd4c38
cd4c38
This package provides the shared C core library.
cd4c38
cd4c38
cd4c38
%package data
cd4c38
Summary:        Data for gRPC bindings
cd4c38
License:        Apache-2.0
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
Requires:       ca-certificates
cd4c38
cd4c38
%description data
cd4c38
Common data for gRPC bindings: currently, this contains only a symbolic link to
cd4c38
the system shared TLS certificates.
cd4c38
cd4c38
cd4c38
%package doc
cd4c38
Summary:        Documentation and examples for gRPC
cd4c38
License:        Apache-2.0
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
Obsoletes:      python-grpcio-doc < 1.26.0-13
cd4c38
Provides:       python-grpcio-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-admin-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-csds-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-channelz-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-health-checking-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-reflection-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-status-doc = %{version}-%{release}
cd4c38
Provides:       python-grpcio-testing-doc = %{version}-%{release}
cd4c38
cd4c38
%description doc
cd4c38
Documentation and examples for gRPC, including Markdown documentation sources
cd4c38
for the following:
cd4c38
cd4c38
  • C (core)
cd4c38
    ○ API
cd4c38
    ○ Internals
cd4c38
  • C++
cd4c38
    ○ API
cd4c38
    ○ Internals
cd4c38
  • Objective C
cd4c38
    ○ API
cd4c38
    ○ Internals
cd4c38
  • Python
cd4c38
    ○ grpcio
cd4c38
    ○ grpcio_admin
cd4c38
    ○ grpcio_csds
cd4c38
    ○ grpcio_channelz
cd4c38
    ○ grpcio_health_checking
cd4c38
    ○ grpcio_reflection
cd4c38
    ○ grpcio_status
cd4c38
    ○ grpcio_testing
cd4c38
cd4c38
For rendered HTML documentation, please see https://grpc.io/docs/.
cd4c38
cd4c38
cd4c38
%package cpp
cd4c38
Summary:        C++ language bindings for gRPC
cd4c38
# License:        same as base package
cd4c38
cd4c38
Requires:       grpc%{?_isa} = %{version}-%{release}
cd4c38
Requires:       grpc-cpp%{?_isa} = %{version}-%{release}
cd4c38
cd4c38
Provides:       bundled(upb)
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
%description cpp
cd4c38
C++ language bindings for gRPC.
cd4c38
cd4c38
cd4c38
%package plugins
cd4c38
Summary:        Protocol buffers compiler plugins for gRPC
cd4c38
# License:        same as base package
cd4c38
cd4c38
Requires:       grpc%{?_isa} = %{version}-%{release}
cd4c38
Requires:       grpc-cpp%{?_isa} = %{version}-%{release}
cd4c38
Requires:       protobuf-compiler
cd4c38
cd4c38
Provides:       bundled(upb)
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
%description plugins
cd4c38
Plugins to the protocol buffers compiler to generate gRPC sources.
cd4c38
cd4c38
cd4c38
%package cli
cd4c38
Summary:        Command-line tool for gRPC
cd4c38
# License:        same as base package
cd4c38
cd4c38
Requires:       grpc%{?_isa} = %{version}-%{release}
cd4c38
Requires:       grpc-cpp%{?_isa} = %{version}-%{release}
cd4c38
cd4c38
Provides:       bundled(upb)
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
%description cli
cd4c38
The command line tool can do the following things:
cd4c38
cd4c38
  • Send unary rpc.
cd4c38
  • Attach metadata and display received metadata.
cd4c38
  • Handle common authentication to server.
cd4c38
  • Infer request/response types from server reflection result.
cd4c38
  • Find the request/response types from a given proto file.
cd4c38
  • Read proto request in text form.
cd4c38
  • Read request in wire form (for protobuf messages, this means serialized
cd4c38
    binary form).
cd4c38
  • Display proto response in text form.
cd4c38
  • Write response in wire form to a file.
cd4c38
cd4c38
cd4c38
%package devel
cd4c38
Summary:        Development files for gRPC library
cd4c38
# License:        same as base package
cd4c38
Requires:       grpc%{?_isa} = %{version}-%{release}
cd4c38
Requires:       grpc-cpp%{?_isa} = %{version}-%{release}
cd4c38
Requires:       grpc-plugins%{?_isa} = %{version}-%{release}
cd4c38
cd4c38
# grpc/impl/codegen/port_platform.h includes linux/version.h
cd4c38
Requires:       kernel-headers%{?_isa}
cd4c38
# grpcpp/impl/codegen/config_protobuf.h includes google/protobuf/…
cd4c38
Requires:       pkgconfig(protobuf)
cd4c38
# grpcpp/test/mock_stream.h includes gmock/gmock.h
cd4c38
Requires:       pkgconfig(gmock)
cd4c38
# grpcpp/impl/codegen/sync.h includes absl/synchronization/mutex.h
cd4c38
# grpc.pc has -labsl_[…]
cd4c38
Requires:       abseil-cpp-devel%{?_isa}
cd4c38
# grpc.pc has -lre2
cd4c38
Requires:       pkgconfig(re2)
cd4c38
# grpc.pc has -lcares
cd4c38
Requires:       cmake(c-ares)
cd4c38
# grpc.pc has -lz
cd4c38
Requires:       pkgconfig(zlib)
cd4c38
cd4c38
%description devel
cd4c38
Development headers and files for gRPC libraries (both C and C++).
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio
cd4c38
Summary:        Python language bindings for gRPC
cd4c38
# License:        same as base package
cd4c38
cd4c38
# Note that the Python package has no runtime dependency on the base C library;
cd4c38
# everything it needs is linked statically. It is not practical to change this,
cd4c38
# and since they both come from the same source RPM, we do not need to attempt
cd4c38
# to do so.
cd4c38
Requires:       grpc-data = %{version}-%{release}
cd4c38
cd4c38
Provides:       bundled(upb)
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
# We no longer package these because they require python3dist(xds-protos),
cd4c38
# which has some issues:
cd4c38
#   - It provides files that overlap with several other packages, including
cd4c38
#     python-googleapis-common-protos, python-opencensus-proto, and
cd4c38
#     python-opentelemetry
cd4c38
#   - The PyPI release is not updated regularly, and version skew only makes
cd4c38
#     the above-mentioned problem of overlapping files worse.
cd4c38
#   - The “validate” package conflicts with one belonging to python-configobj
cd4c38
#     (in F38+), and it is the latter package that owns
cd4c38
#     https://pypi.org/project/validate/.
cd4c38
Obsoletes:      python3-grpcio-admin < 1.48.4-7
cd4c38
Obsoletes:      python3-grpcio-csds < 1.48.4-7
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc
cd4c38
cd4c38
%description -n python3-grpcio
cd4c38
Python language bindings for gRPC (HTTP/2-based RPC framework).
cd4c38
cd4c38
cd4c38
%global grpcio_egg %{python3_sitearch}/grpcio-%{pyversion}-py%{python3_version}.egg-info
cd4c38
%{?python_extras_subpkg:%python_extras_subpkg -n python3-grpcio -i %{grpcio_egg} protobuf}
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-tools
cd4c38
Summary:       Package for gRPC Python tools
cd4c38
# License:        same as base package
cd4c38
cd4c38
Provides:       bundled(upb)
cd4c38
Provides:       bundled(utf8_range)
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-tools
cd4c38
cd4c38
%description -n python3-grpcio-tools
cd4c38
Package for gRPC Python tools.
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-channelz
cd4c38
Summary:        Channel Level Live Debug Information Service for gRPC
cd4c38
License:        Apache-2.0
cd4c38
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-channelz
cd4c38
cd4c38
%description -n python3-grpcio-channelz
cd4c38
gRPC Python Channelz package
cd4c38
============================
cd4c38
cd4c38
Channelz is a live debug tool in gRPC Python.
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-health-checking
cd4c38
Summary:        Standard Health Checking Service for gRPC
cd4c38
License:        Apache-2.0
cd4c38
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-health
cd4c38
cd4c38
%description -n python3-grpcio-health-checking
cd4c38
gRPC Python Health Checking
cd4c38
===========================
cd4c38
cd4c38
Reference package for GRPC Python health checking.
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-reflection
cd4c38
Summary:        Standard Protobuf Reflection Service for gRPC
cd4c38
License:        Apache-2.0
cd4c38
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-reflection
cd4c38
cd4c38
%description -n python3-grpcio-reflection
cd4c38
gRPC Python Reflection package
cd4c38
==============================
cd4c38
cd4c38
Reference package for reflection in GRPC Python.
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-status
cd4c38
Summary:        Status proto mapping for gRPC
cd4c38
License:        Apache-2.0
cd4c38
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-status
cd4c38
cd4c38
%description -n python3-grpcio-status
cd4c38
gRPC Python Status Proto
cd4c38
===========================
cd4c38
cd4c38
Reference package for GRPC Python status proto mapping.
cd4c38
cd4c38
cd4c38
%package -n python3-grpcio-testing
cd4c38
Summary:        Testing utilities for gRPC Python
cd4c38
License:        Apache-2.0
cd4c38
cd4c38
BuildArch:      noarch
cd4c38
cd4c38
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
cd4c38
%py_provides python3-grpc-testing
cd4c38
cd4c38
%description -n python3-grpcio-testing
cd4c38
gRPC Python Testing Package
cd4c38
===========================
cd4c38
cd4c38
Testing utilities for gRPC Python.
cd4c38
cd4c38
cd4c38
%prep
cd4c38
%autosetup -p1 -n grpc-%{srcversion}
cd4c38
cd4c38
cp -p third_party/upb/third_party/utf8_range/LICENSE LICENSE-utf8_range
cd4c38
cd4c38
echo '===== Patching grpcio_tools for system protobuf =====' 2>&1
cd4c38
# Build python3-grpcio_tools against system protobuf packages instead of
cd4c38
# expecting a git submodule. Must also add requisite linker flags using
cd4c38
# GRPC_PYTHON_LDFLAGS. This was formerly done by
cd4c38
# grpc-VERSION-python-grpcio_tools-use-system-protobuf.patch, but it had to be
cd4c38
# tediously but trivially rebased every patch release as the CC_FILES list
cd4c38
# changed, so we automated the patch.
cd4c38
sed -r -i \
cd4c38
    -e "s/^(# AUTO-GENERATED .*)/\\1\\n\
cd4c38
# Then, modified by hand to build with an external system protobuf\
cd4c38
# installation./" \
cd4c38
    -e 's/^(CC_FILES=\[).*(\])/\1\2/' \
cd4c38
    -e "s@^((CC|PROTO)_INCLUDE=')[^']+'@\1%{_includedir}'@" \
cd4c38
    -e '/^PROTOBUF_SUBMODULE_VERSION=/d' \
cd4c38
    'tools/distrib/python/grpcio_tools/protoc_lib_deps.py'
cd4c38
cd4c38
echo '===== Preparing gtest/gmock =====' 2>&1
cd4c38
%if %{without system_gtest}
cd4c38
# Copy in the needed gtest/gmock implementations.
cd4c38
%setup -q -T -D -b 1 -n grpc-%{srcversion}
cd4c38
rm -rvf 'third_party/googletest'
cd4c38
mv '../%{gtest_dir}' 'third_party/googletest'
cd4c38
%else
cd4c38
# Patch CMakeLists for external gtest/gmock.
cd4c38
#
cd4c38
#  1. Create dummy sources, adding a typedef so the translation unit is not
cd4c38
#     empty, rather than removing references to these sources from
cd4c38
#     CMakeLists.txt. This is so that we do not end up with executables with no
cd4c38
#     sources, only libraries, which is a CMake error.
cd4c38
#  2. Either remove references to the corresponding include directories, or
cd4c38
#     create the directories and leave them empty.
cd4c38
#  3. “Stuff” the external library into the target_link_libraries() for each
cd4c38
#     test by noting that GMock/GTest/GFlags are always used together.
cd4c38
for gwhat in test mock
cd4c38
do
cd4c38
  mkdir -p "third_party/googletest/google${gwhat}/src" \
cd4c38
      "third_party/googletest/google${gwhat}/include"
cd4c38
  echo "typedef int dummy_${gwhat}_type;" \
cd4c38
      > "third_party/googletest/google${gwhat}/src/g${gwhat}-all.cc"
cd4c38
done
cd4c38
sed -r -i 's/^([[:blank:]]*)(\$\{_gRPC_GFLAGS_LIBRARIES\})/'\
cd4c38
'\1\2\n\1gtest\n\1gmock/' CMakeLists.txt
cd4c38
%endif
cd4c38
cd4c38
# Extract the source tarballs needed for their .proto files, which upstream
cd4c38
# expects to download at build time.
cd4c38
%setup -q -T -D -b 2 -n grpc-%{srcversion}
cd4c38
%setup -q -T -D -b 3 -n grpc-%{srcversion}
cd4c38
%setup -q -T -D -b 4 -n grpc-%{srcversion}
cd4c38
%setup -q -T -D -b 5 -n grpc-%{srcversion}
cd4c38
{
cd4c38
  awk '$1 ~ /^(#|$)/ { next }; 1' <<'EOF'
cd4c38
../%{envoy_api_dir}/ third_party/envoy-api/
cd4c38
../%{googleapis_dir}/ third_party/googleapis/
cd4c38
../%{opencensus_proto_dir}/ third_party/opencensus-proto/
cd4c38
../%{xds_dir}/ third_party/xds/
cd4c38
EOF
cd4c38
} | while read -r fromdir todir
cd4c38
do
cd4c38
  # Remove everything from the external source tree except the .proto files, to
cd4c38
  # prove that none of it is bundled.
cd4c38
  find "${fromdir}" -type f ! -name '*.proto' -print -delete
cd4c38
  # Remove the empty directory corresponding to the git submodule
cd4c38
  rm -rvf "${todir}"
cd4c38
  # Move the extracted source, to the location where the git submodule would be
cd4c38
  # in a git checkout that included it.
cd4c38
  mv "${fromdir}" "${todir}"
cd4c38
done
cd4c38
cd4c38
echo '===== Removing bundled xxhash =====' 2>&1
cd4c38
# Remove bundled xxhash
cd4c38
rm -rvf third_party/xxhash
cd4c38
# Since grpc sets XXH_INCLUDE_ALL wherever it uses xxhash, it is using xxhash
cd4c38
# as a header-only library. This means we can replace it with the system copy
cd4c38
# by doing nothing further; xxhash.h is in the system include path and will be
cd4c38
# found instead, and there are no linker flags to add. See also
cd4c38
# https://github.com/grpc/grpc/issues/25945.
cd4c38
cd4c38
echo '===== Fixing permissions =====' 2>&1
cd4c38
# https://github.com/grpc/grpc/pull/27069
cd4c38
find . -type f -perm /0111 \
cd4c38
    -exec gawk '!/^#!/ { print FILENAME }; { nextfile }' '{}' '+' |
cd4c38
  xargs -r chmod -v a-x
cd4c38
cd4c38
echo '===== Removing selected unused sources =====' 2>&1
cd4c38
# Remove unused sources that have licenses not in the License field, to ensure
cd4c38
# they are not accidentally used in the build. See the comment above the base
cd4c38
# package License field for more details.
cd4c38
rm -rfv \
cd4c38
    src/boringssl/boringssl_prefix_symbols.h \
cd4c38
    third_party/cares/ares_build.h \
cd4c38
    third_party/upb/third_party/lunit
cd4c38
# Since we are replacing roots.pem with a symlink to the shared system
cd4c38
# certificates, we do not include its license (MPLv2.0) in any License field.
cd4c38
# We remove its contents so that, if we make a packaging mistake, we will have
cd4c38
# a bug but not an incorrect License field.
cd4c38
echo '' > etc/roots.pem
cd4c38
cd4c38
# Remove Android sources and examples. We do not need these on Linux, and they
cd4c38
# have some issues that will be flagged when reviewing the package, such as:
cd4c38
#   - Another copy of the MPLv2.0-licensed certificate bundle from
cd4c38
#     etc/roots.pem, in src/android/test/interop/app/src/main/assets/roots.pem
cd4c38
#   - Pre-built jar files at
cd4c38
#     src/android/test/interop/gradle/wrapper/gradle-wrapper.jar and
cd4c38
#     examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar
cd4c38
rm -rvf examples/android src/android
cd4c38
cd4c38
# Drop the NodeJS example’s package-lock.json file, which will hopefully keep
cd4c38
# us from having bugs filed due to CVE’s in its (unpackaged) recursive
cd4c38
# dependencies.
cd4c38
rm -vf examples/node/package-lock.json
cd4c38
cd4c38
# Remove unwanted .gitignore files, generally in examples. One could argue that
cd4c38
# a sample .gitignore file is part of the example, but, well, we’re not going
cd4c38
# to do that.
cd4c38
find . -type f -name .gitignore -print -delete
cd4c38
cd4c38
echo '===== Fixing shebangs =====' 2>&1
cd4c38
# Find executables with /usr/bin/env shebangs in the examples, and fix them.
cd4c38
find . -type f -perm /0111 -exec gawk \
cd4c38
    '/^#!\/usr\/bin\/env[[:blank:]]/ { print FILENAME }; { nextfile }' \
cd4c38
    '{}' '+' |
cd4c38
  xargs -r sed -r -i '1{s|^(#!/usr/bin/)env[[:blank:]]+([^[:blank:]]+)|\1\2|}'
cd4c38
cd4c38
echo '===== Fixing hard-coded C++ standard =====' 2>&1
cd4c38
# We need to adjust the C++ standard to avoid abseil-related linker errors. For
cd4c38
# the main C++ build, we can use CMAKE_CXX_STANDARD. For extensions, examples,
cd4c38
# etc., we must patch.
cd4c38
sed -r -i 's/(std=c\+\+)14/\1%{cpp_std}/g' \
cd4c38
    setup.py grpc.gyp Rakefile \
cd4c38
    examples/cpp/*/Makefile \
cd4c38
    examples/cpp/*/CMakeLists.txt \
cd4c38
    tools/run_tests/artifacts/artifact_targets.py \
cd4c38
    tools/distrib/python/grpcio_tools/setup.py
cd4c38
cd4c38
cd4c38
%build
cd4c38
# ~~~~ C (core) and C++ (cpp) ~~~~
cd4c38
cd4c38
# Length of the prefix (e.g. /usr), plus a trailing slash (or newline), plus
cd4c38
# one, to get the index of the first relative path character after the prefix.
cd4c38
# This is needed because gRPC_INSTALL_*DIR options expect paths relative to the
cd4c38
# prefix, and supplying absolute paths causes certain subtle problems.
cd4c38
%global rmprefix %(echo $(($(wc -c <<<'%{_prefix}')+1)))
cd4c38
cd4c38
echo '===== Building C (core) and C++ components =====' 2>&1
cd4c38
# We could use either make or ninja as the backend; ninja is faster and has no
cd4c38
# disadvantages (except a small additional BR, given we already need Python)
cd4c38
#
cd4c38
# We need to adjust the C++ standard to avoid abseil-related linker errors.
cd4c38
%cmake \
cd4c38
    -DgRPC_INSTALL:BOOL=ON \
cd4c38
    -DCMAKE_CXX_STANDARD:STRING=%{cpp_std} \
cd4c38
    -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
cd4c38
    -DgRPC_INSTALL_BINDIR:PATH=%(cut -b %{rmprefix}- <<<'%{_bindir}') \
cd4c38
    -DgRPC_INSTALL_LIBDIR:PATH=%(cut -b %{rmprefix}- <<<'%{_libdir}') \
cd4c38
    -DgRPC_INSTALL_INCLUDEDIR:PATH=%(cut -b %{rmprefix}- <<<'%{_includedir}') \
cd4c38
    -DgRPC_INSTALL_CMAKEDIR:PATH=%(cut -b %{rmprefix}- <<<'%{_libdir}/cmake/grpc') \
cd4c38
    -DgRPC_INSTALL_SHAREDIR:PATH=%(cut -b %{rmprefix}- <<<'%{_datadir}/grpc') \
cd4c38
    -DgRPC_BUILD_TESTS:BOOL=%{?with_core_tests:ON}%{?!with_core_tests:OFF} \
cd4c38
    -DgRPC_BUILD_CODEGEN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_CSHARP_EXT:BOOL=ON \
cd4c38
    -DgRPC_BACKWARDS_COMPATIBILITY_MODE:BOOL=OFF \
cd4c38
    -DgRPC_ZLIB_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_CARES_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_RE2_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_SSL_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_PROTOBUF_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_PROTOBUF_PACKAGE_TYPE:STRING='MODULE' \
cd4c38
    -DgRPC_BENCHMARK_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_ABSL_PROVIDER:STRING='package' \
cd4c38
    -DgRPC_USE_PROTO_LITE:BOOL=OFF \
cd4c38
    -DgRPC_BUILD_GRPC_CPP_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_CSHARP_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_NODE_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_PHP_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_PYTHON_PLUGIN:BOOL=ON \
cd4c38
    -DgRPC_BUILD_GRPC_RUBY_PLUGIN:BOOL=ON \
cd4c38
    -GNinja
cd4c38
%cmake_build
cd4c38
# ~~~~ Python ~~~~
cd4c38
cd4c38
echo '===== Building Python grpcio package =====' 2>&1
cd4c38
# Since there are some interdependencies in the Python packages (e.g., many
cd4c38
# have setup_requires: grpcio-tools), we do temporary installs of built
cd4c38
# packages into a local directory as needed, and add it to the PYTHONPATH.
cd4c38
PYROOT="${PWD}/%{_vpath_builddir}/pyroot"
cd4c38
if [ -n "${PYTHONPATH-}" ]; then PYTHONPATH="${PYTHONPATH}:"; fi
cd4c38
PYTHONPATH="${PYTHONPATH-}${PYROOT}%{python3_sitelib}"
cd4c38
PYTHONPATH="${PYTHONPATH}:${PYROOT}%{python3_sitearch}"
cd4c38
export PYTHONPATH
cd4c38
cd4c38
# ~~ grpcio ~~
cd4c38
export GRPC_PYTHON_BUILD_WITH_CYTHON='True'
cd4c38
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL='True'
cd4c38
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB='True'
cd4c38
export GRPC_PYTHON_BUILD_SYSTEM_CARES='True'
cd4c38
export GRPC_PYTHON_BUILD_SYSTEM_RE2='True'
cd4c38
export GRPC_PYTHON_BUILD_SYSTEM_ABSL='True'
cd4c38
export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY='True'
cd4c38
export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD='False'
cd4c38
# Use the upstream defaults for GRPC_PYTHON_CFLAGS adn GRPC_PYTHON_LDFLAGS,
cd4c38
# except:
cd4c38
#
cd4c38
# - Add any flags necessary for using the system protobuf library.
cd4c38
# - Drop -lpthread and -lrt, since these are not needed on glibc 2.34 and
cd4c38
#   later.
cd4c38
# - Do not link libgcc statically (-static-libgcc).
cd4c38
#
cd4c38
# See also:
cd4c38
# https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread
cd4c38
export GRPC_PYTHON_CFLAGS="$(
cd4c38
  pkg-config --cflags protobuf
cd4c38
) -std=c++%{cpp_std} -fvisibility=hidden -fno-wrapv -fno-exceptions"
cd4c38
export GRPC_PYTHON_LDFLAGS="$(pkg-config --libs protobuf)"
cd4c38
%py3_build
cd4c38
%{__python3} %{py_setup} %{?py_setup_args} install \
cd4c38
    -O1 --skip-build --root "${PYROOT}" --prefix %{_prefix}
cd4c38
cd4c38
# ~~ grpcio-tools ~~
cd4c38
echo '===== Building Python grpcio_tools package =====' 2>&1
cd4c38
pushd "tools/distrib/python/grpcio_tools/" >/dev/null
cd4c38
# When copying more things in here, make sure the subpackage License field
cd4c38
# stays correct. We need copies, not symlinks, so that the “graft” in
cd4c38
# MANIFEST.in works.
cd4c38
mkdir -p grpc_root/src
cd4c38
for srcdir in compiler
cd4c38
do
cd4c38
  cp -rp "../../../../src/${srcdir}" "grpc_root/src/"
cd4c38
done
cd4c38
cp -rp '../../../../include' 'grpc_root/'
cd4c38
# We must set GRPC_PYTHON_CFLAGS and GRPC_PYTHON_LDFLAGS again; grpcio_tools
cd4c38
# does not have the same default upstream flags as grpcio does, and it needs to
cd4c38
# link the protobuf compiler library.
cd4c38
export GRPC_PYTHON_CFLAGS="-fno-wrapv -frtti $(pkg-config --cflags protobuf)"
cd4c38
export GRPC_PYTHON_LDFLAGS="$(pkg-config --libs protobuf) -lprotoc"
cd4c38
%py3_build
cd4c38
# Remove unwanted shebang from grpc_tools.protoc source file, which will be
cd4c38
# installed without an executable bit:
cd4c38
find . -type f -name protoc.py -execdir sed -r -i '1{/^#!/d}' '{}' '+'
cd4c38
%{__python3} %{py_setup} %{?py_setup_args} install \
cd4c38
    -O1 --skip-build --root "${PYROOT}" --prefix %{_prefix}
cd4c38
popd >/dev/null
cd4c38
cd4c38
echo '===== Building pure-Python packages =====' 1>&2
cd4c38
for suffix in channelz health_checking reflection status testing tests
cd4c38
do
cd4c38
  echo "----> grpcio_${suffix} <----" 1>&2
cd4c38
  pushd "src/python/grpcio_${suffix}/" >/dev/null
cd4c38
  if ! echo "${suffix}" | grep -E "^(admin|csds)$" >/dev/null
cd4c38
  then
cd4c38
    %{__python3} %{py_setup} %{?py_setup_args} preprocess
cd4c38
  fi
cd4c38
  if ! echo "${suffix}" | grep -E "^(admin|csds|testing)$" >/dev/null
cd4c38
  then
cd4c38
    %{__python3} %{py_setup} %{?py_setup_args} build_package_protos
cd4c38
  fi
cd4c38
  %py3_build
cd4c38
  %{__python3} %{py_setup} %{?py_setup_args} install \
cd4c38
      -O1 --skip-build --root "${PYROOT}" --prefix %{_prefix}
cd4c38
  popd >/dev/null
cd4c38
done
cd4c38
cd4c38
cd4c38
%install
cd4c38
# ~~~~ C (core) and C++ (cpp) ~~~~
cd4c38
%cmake_install
cd4c38
cd4c38
%if %{with core_tests}
cd4c38
# For some reason, grpc_cli is not installed. Do it manually.
cd4c38
install -t '%{buildroot}%{_bindir}' -p -D '%{_vpath_builddir}/grpc_cli'
cd4c38
# grpc_cli build does not respect CMAKE_INSTALL_RPATH
cd4c38
# https://github.com/grpc/grpc/issues/25176
cd4c38
chrpath --delete '%{buildroot}%{_bindir}/grpc_cli'
cd4c38
cd4c38
# This library is also required for grpc_cli; it is built as part of the test
cd4c38
# code.
cd4c38
install -t '%{buildroot}%{_libdir}' -p \
cd4c38
    '%{_vpath_builddir}/libgrpc++_test_config.so.%{cpp_so_version}'
cd4c38
chrpath --delete \
cd4c38
    '%{buildroot}%{_libdir}/libgrpc++_test_config.so.%{cpp_so_version}'
cd4c38
cd4c38
install -d '%{buildroot}/%{_mandir}/man1'
cd4c38
install -t '%{buildroot}/%{_mandir}/man1' -p -m 0644 \
cd4c38
    %{SOURCE100} %{SOURCE101} %{SOURCE102} %{SOURCE103} %{SOURCE104} \
cd4c38
    %{SOURCE106} %{SOURCE107} %{SOURCE108}
cd4c38
%endif
cd4c38
cd4c38
# Remove any static libraries that may have been installed against our wishes
cd4c38
find %{buildroot} -type f -name '*.a' -print -delete
cd4c38
# Fix wrong permissions on installed headers
cd4c38
find %{buildroot}%{_includedir}/grpc* -type f -name '*.h' -perm /0111 \
cd4c38
    -execdir chmod -v a-x '{}' '+'
cd4c38
cd4c38
# ~~~~ Python ~~~~
cd4c38
cd4c38
# Since several packages have an install_requires: grpcio-tools, we must ensure
cd4c38
# the buildroot Python site-packages directories are in the PYTHONPATH.
cd4c38
pushd '%{buildroot}'
cd4c38
PYROOT="${PWD}"
cd4c38
popd
cd4c38
if [ -n "${PYTHONPATH-}" ]; then PYTHONPATH="${PYTHONPATH}:"; fi
cd4c38
PYTHONPATH="${PYTHONPATH-}${PYROOT}%{python3_sitelib}"
cd4c38
PYTHONPATH="${PYTHONPATH}:${PYROOT}%{python3_sitearch}"
cd4c38
export PYTHONPATH
cd4c38
cd4c38
# ~~ grpcio ~~
cd4c38
%py3_install
cd4c38
cd4c38
# ~~ grpcio-tools ~~
cd4c38
pushd "tools/distrib/python/grpcio_tools/" >/dev/null
cd4c38
%py3_install
cd4c38
popd >/dev/null
cd4c38
cd4c38
# ~~ pure-python modules grpcio-* ~~
cd4c38
for suffix in channelz health_checking reflection status testing
cd4c38
do
cd4c38
  pushd "src/python/grpcio_${suffix}/" >/dev/null
cd4c38
  %py3_install
cd4c38
  popd >/dev/null
cd4c38
done
cd4c38
# The grpcio_tests package should not be installed; it would provide top-level
cd4c38
# packages with generic names like “tests” or “tests_aio”.
cd4c38
cd4c38
# ~~~~ Miscellaneous ~~~~
cd4c38
cd4c38
# Replace copies of the certificate bundle with symlinks to the shared system
cd4c38
# certificates. This has the following benefits:
cd4c38
#   - Reduces duplication and save space
cd4c38
#   - Respects system-wide administrative trust configuration
cd4c38
#   - Keeps “MPLv2.0” from having to be added to a number of License fields
cd4c38
%global sysbundle /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
cd4c38
# We do not own this file; we temporarily install it in the buildroot so we do
cd4c38
# not have dangling symlinks.
cd4c38
install -D -t "%{buildroot}$(dirname '%{sysbundle}')" -m 0644 '%{sysbundle}'
cd4c38
cd4c38
find '%{buildroot}' -type f -name 'roots.pem' |
cd4c38
  while read -r fn
cd4c38
  do
cd4c38
    ln -s -f "%{buildroot}%{sysbundle}" "${fn}"
cd4c38
    symlinks -c -o "${fn}"
cd4c38
  done
cd4c38
cd4c38
rm -rvf "%{buildroot}$(dirname '%{sysbundle}')"
cd4c38
cd4c38
# ~~ documentation and examples ~~
cd4c38
cd4c38
install -D -t '%{buildroot}%{_pkgdocdir}' -m 0644 -p \
cd4c38
    AUTHORS \
cd4c38
    CONCEPTS.md \
cd4c38
    MAINTAINERS.md \
cd4c38
    README.md \
cd4c38
    SECURITY.md \
cd4c38
    TROUBLESHOOTING.md
cd4c38
cp -rvp doc examples '%{buildroot}%{_pkgdocdir}'
cd4c38
# Hardlink duplicate files in the examples
cd4c38
hardlink -v '%{buildroot}%{_pkgdocdir}/examples/'
cd4c38
cd4c38
cd4c38
%check
cd4c38
%ifarch %{ix86}
cd4c38
cd4c38
cat <<'EOF'
cd4c38
Since the following changes are accepted for F37:
cd4c38
cd4c38
https://fedoraproject.org/wiki/Changes/RetireARMv7
cd4c38
https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
cd4c38
cd4c38
…we still build for i686 since this is not a leaf packages, but skip tests so
cd4c38
we do not have to keep track of 32-bit-specific issues.
cd4c38
EOF
cd4c38
cd4c38
%else
cd4c38
cd4c38
export FEDORA_NO_NETWORK_TESTS=1
cd4c38
cd4c38
%if %{with core_tests}
cd4c38
PORT_SERVER_PORT="$(awk '
cd4c38
  /_PORT_SERVER_PORT[[:blank:]]*=[[:blank:]]*[[:digit:]]+$/ { print $NF }
cd4c38
' tools/run_tests/python_utils/start_port_server.py)"
cd4c38
cd4c38
# Note that no tests are actually found by ctest:
cd4c38
%ctest
cd4c38
cd4c38
# Exclude tests that are known to hang or otherwise fail. Assistance welcome in
cd4c38
# figuring out what is wrong with these.  Note, however, that we are running
cd4c38
# the tests very differently from upstream, which uses scripts in
cd4c38
# tools/run_tests/ that rebuild the entire source and use Docker, so it is
cd4c38
# likely to be difficult to get help from upstream for any failures here. Note
cd4c38
# that some of these tests would never work in an environment without Internet
cd4c38
# access.
cd4c38
{ sed -r -e '/^(#|$)/d' -e 's|^(.*)$|%{_vpath_builddir}/\1_test|' <<'EOF'
cd4c38
cd4c38
# Requires (or may require) network:
cd4c38
resolve_address_using_ares_resolver
cd4c38
resolve_address_using_ares_resolver_posix
cd4c38
resolve_address_using_native_resolver
cd4c38
resolve_address_using_native_resolver_posix
cd4c38
ssl_transport_security
cd4c38
cd4c38
# Seems to require privilege:
cd4c38
flaky_network
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] AddressSortingTest.TestSorterKnowsIpv6LoopbackIsAvailable
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/naming/address_sorting_test.cc:827: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   source_addr_output->sin6_family
cd4c38
#     Which is: 0
cd4c38
#   10
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/naming/address_sorting_test.cc:837: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   source_addr_str
cd4c38
#     Which is: "::"
cd4c38
#   "::1"
cd4c38
# [  FAILED  ] AddressSortingTest.TestSorterKnowsIpv6LoopbackIsAvailable (1 ms)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-13, possibly flaky
cd4c38
address_sorting
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# Status is not ok: Setting authenticated associated data failed
cd4c38
# E0912 22:53:27.561134727   29675 aes_gcm_test.cc:77]         assertion failed: status == GRPC_STATUS_OK
cd4c38
# *** SIGABRT received at time=1663023207 on cpu 1 ***
cd4c38
# PC: @      0x3ffb381cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ffb3702560  (unknown)  (unknown)
cd4c38
#     @      0x3ffb3702802  (unknown)  (unknown)
cd4c38
#     @      0x3ffb44fe490  (unknown)  (unknown)
cd4c38
#     @      0x3ffb381cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ffb37c9d20  (unknown)  gsignal
cd4c38
#     @      0x3ffb37ab364  (unknown)  abort
cd4c38
#     @      0x2aa26304a28  (unknown)  gsec_assert_ok()
cd4c38
#     @      0x2aa26304b54  (unknown)  gsec_test_random_encrypt_decrypt()
cd4c38
#     @      0x2aa26302536  (unknown)  main
cd4c38
#     @      0x3ffb37ab618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ffb37ab700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa263036f0  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-12
cd4c38
alts_crypt
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# (aborted without output)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-12
cd4c38
alts_crypter
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] AltsConcurrentConnectivityTest.TestBasicClientServerHandshakes
cd4c38
# E0912 22:58:34.364900111   29674 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# [… 11 similar lines omitted …]
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/tsi/alts/handshaker/alts_concurrent_connectivity_test.cc:244: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   ev.type
cd4c38
#     Which is: 1
cd4c38
#   GRPC_OP_COMPLETE
cd4c38
#     Which is: 2
cd4c38
# connect_loop runner:0x3ffc817e2f8 got ev.type:1 i:0
cd4c38
# [  FAILED  ] AltsConcurrentConnectivityTest.TestBasicClientServerHandshakes (5016 ms)
cd4c38
# [ RUN      ] AltsConcurrentConnectivityTest.TestConcurrentClientServerHandshakes
cd4c38
# E0912 22:58:39.512378993   29762 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# [… 1015 similar lines omitted …]
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/tsi/alts/handshaker/alts_concurrent_connectivity_test.cc:244: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   ev.type
cd4c38
#     Which is: 1
cd4c38
#   GRPC_OP_COMPLETE
cd4c38
#     Which is: 2
cd4c38
# connect_loop runner:0x2aa1c0a7f40 got ev.type:1 i:0
cd4c38
# [… 28 similar 7-line groups omitted …]
cd4c38
# E0912 22:58:54.393525915   30129 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# E0912 22:58:54.393664601   30143 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/tsi/alts/handshaker/alts_concurrent_connectivity_test.cc:244: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   ev.type
cd4c38
#     Which is: 1
cd4c38
#   GRPC_OP_COMPLETE
cd4c38
#     Which is: 2
cd4c38
# connect_loop runner:0x2aa1c0acbe0 got ev.type:1 i:0
cd4c38
# [… 19 similar 7-line groups omitted …]
cd4c38
# E0912 22:58:54.401378896   30129 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# E0912 22:58:54.401549994   30143 alts_grpc_privacy_integrity_record_protocol.cc:107] Failed to unprotect, More bytes written than expected. Frame decryption failed.
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/tsi/alts/handshaker/alts_concurrent_connectivity_test.cc:244: Failure
cd4c38
# Expected equality of these values:
cd4c38
#   ev.type
cd4c38
#     Which is: 1
cd4c38
#   GRPC_OP_COMPLETE
cd4c38
#     Which is: 2
cd4c38
# connect_loop runner:0x2aa1c0a8650 got ev.type:1 i:0
cd4c38
# [  FAILED  ] AltsConcurrentConnectivityTest.TestConcurrentClientServerHandshakes (15056 ms)
cd4c38
# [ RUN      ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenPeerEndpointClosesConnectionAfterAccepting
cd4c38
# [       OK ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenPeerEndpointClosesConnectionAfterAccepting (3080 ms)
cd4c38
# [ RUN      ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenHandshakeServerClosesConnectionAfterAccepting
cd4c38
# E0912 22:58:57.502419569   30351 alts_handshaker_client.cc:223] recv_buffer is nullptr in alts_tsi_handshaker_handle_response()
cd4c38
# [… 160 similar lines omitted …]
cd4c38
# [       OK ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenHandshakeServerClosesConnectionAfterAccepting (1199 ms)
cd4c38
# [ RUN      ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenHandshakeServerHangsAfterAccepting
cd4c38
# [       OK ] AltsConcurrentConnectivityTest.TestHandshakeFailsFastWhenHandshakeServerHangsAfterAccepting (308 ms)
cd4c38
# [----------] 5 tests from AltsConcurrentConnectivityTest (24661 ms total)
cd4c38
# [----------] Global test environment tear-down
cd4c38
# [==========] 5 tests from 1 test suite ran. (24661 ms total)
cd4c38
# [  PASSED  ] 3 tests.
cd4c38
# [  FAILED  ] 2 tests, listed below:
cd4c38
# [  FAILED  ] AltsConcurrentConnectivityTest.TestBasicClientServerHandshakes
cd4c38
# [  FAILED  ] AltsConcurrentConnectivityTest.TestConcurrentClientServerHandshakes
cd4c38
#  2 FAILED TESTS
cd4c38
# E0912 22:59:08.997892504   29669 test_config.cc:175]         Timeout in waiting for gRPC shutdown
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-12
cd4c38
alts_concurrent_connectivity
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# (aborted without output)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-12
cd4c38
alts_frame_protector
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# E0914 15:16:37.948845070   29676 alts_grpc_integrity_only_record_protocol.cc:109] Failed to protect, Setting authenticated associated data failed
cd4c38
# E0914 15:16:37.949063396   29676 alts_grpc_record_protocol_test.cc:283] assertion failed: status == TSI_OK
cd4c38
# *** SIGABRT received at time=1663168597 on cpu 2 ***
cd4c38
# PC: @      0x3ff8da1cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff8d902560  (unknown)  (unknown)
cd4c38
#     @      0x3ff8d902802  (unknown)  (unknown)
cd4c38
#     @      0x3ff8e77e490  (unknown)  (unknown)
cd4c38
#     @      0x3ff8da1cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff8d9c9d20  (unknown)  gsignal
cd4c38
#     @      0x3ff8d9ab364  (unknown)  abort
cd4c38
#     @      0x2aa2f28375e  (unknown)  random_seal_unseal()
cd4c38
#     @      0x2aa2f284008  (unknown)  alts_grpc_record_protocol_tests()
cd4c38
#     @      0x2aa2f28258c  (unknown)  main
cd4c38
#     @      0x3ff8d9ab618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ff8d9ab700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa2f282680  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
alts_grpc_record_protocol
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# (aborted without output)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
alts_iovec_record_protocol
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# E0914 15:23:44.474978044   29723 alts_grpc_integrity_only_record_protocol.cc:109] Failed to protect, Setting authenticated associated data failed
cd4c38
# E0914 15:23:44.475141948   29723 alts_zero_copy_grpc_protector_test.cc:186] assertion failed: tsi_zero_copy_grpc_protector_protect( sender, &var->original_sb, &var->protected_sb) == TSI_OK
cd4c38
# *** SIGABRT received at time=1663169024 on cpu 0 ***
cd4c38
# PC: @      0x3ff9079cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff90682560  (unknown)  (unknown)
cd4c38
#     @      0x3ff90682802  (unknown)  (unknown)
cd4c38
#     @      0x3ff914fe490  (unknown)  (unknown)
cd4c38
#     @      0x3ff9079cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff90749d20  (unknown)  gsignal
cd4c38
#     @      0x3ff9072b364  (unknown)  abort
cd4c38
#     @      0x2aa01c83324  (unknown)  seal_unseal_small_buffer()
cd4c38
#     @      0x2aa01c83538  (unknown)  alts_zero_copy_protector_seal_unseal_small_buffer_tests()
cd4c38
#     @      0x2aa01c8254a  (unknown)  main
cd4c38
#     @      0x3ff9072b618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ff9072b700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa01c82630  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
alts_zero_copy_grpc_protector
cd4c38
%endif
cd4c38
cd4c38
# Unexplained, flaky:
cd4c38
#
cd4c38
# (hangs indefinitely, timeout triggered)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-13
cd4c38
client_ssl
cd4c38
cd4c38
%ifarch s390x riscv64
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] CredentialsTest.TestOauth2TokenFetcherCredsParsingEmptyHttpBody
cd4c38
# E0907 14:32:31.499040041   70130 oauth2_credentials.cc:177]  Call to http server ended with error 401 [{"access_token":"ya29.AHES6ZRN3-HlhAPya30GnW_bHSb_", "expires_in":3599,  "token_type":"Bearer"}].
cd4c38
# *** SIGSEGV received at time=1662561151 on cpu 2 ***
cd4c38
# PC: @      0x3ffb434b8c8  (unknown)  grpc_oauth2_token_fetcher_credentials_parse_server_response()
cd4c38
#     @      0x3ffb3102560  (unknown)  (unknown)
cd4c38
#     @      0x3ffb3102802  (unknown)  (unknown)
cd4c38
#     @      0x3ffb467e490  (unknown)  (unknown)
cd4c38
#     @      0x3ffb434b8c8  (unknown)  grpc_oauth2_token_fetcher_credentials_parse_server_response()
cd4c38
#     @      0x2aa1f82c360  (unknown)  grpc_core::(anonymous namespace)::CredentialsTest_TestOauth2TokenFetcherCredsParsingEmptyHttpBody_Test::TestBody()
cd4c38
#     @      0x2aa1f890e76  (unknown)  testing::internal::HandleExceptionsInMethodIfSupported<>()
cd4c38
#     @      0x2aa1f87af2a  (unknown)  testing::Test::Run()
cd4c38
#     @      0x2aa1f87b1fe  (unknown)  testing::TestInfo::Run()
cd4c38
#     @      0x2aa1f87b420  (unknown)  testing::TestSuite::Run()
cd4c38
#     @      0x2aa1f884936  (unknown)  testing::internal::UnitTestImpl::RunAllTests()
cd4c38
#     @      0x2aa1f891406  (unknown)  testing::internal::HandleExceptionsInMethodIfSupported<>()
cd4c38
#     @      0x2aa1f87b706  (unknown)  testing::UnitTest::Run()
cd4c38
#     @      0x2aa1f81e96e  (unknown)  main
cd4c38
#     @      0x3ffb31ab618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ffb31ab700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa1f823d80  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-07
cd4c38
test_core_security_credentials
cd4c38
%endif
cd4c38
cd4c38
%ifarch x86_64 aarch64
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] ExamineStackTest.AbseilStackProvider
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/gprpp/examine_stack_test.cc:75: Failure
cd4c38
# Value of: stack_trace->find("GetCurrentStackTrace") != std::string::npos
cd4c38
#   Actual: false
cd4c38
# Expected: true
cd4c38
# [  FAILED  ] ExamineStackTest.AbseilStackProvider (0 ms)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-13
cd4c38
examine_stack
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# E0914 18:50:00.139725989   58193 cq_verifier.cc:228]         no event received, but expected:tag(257) GRPC_OP_COMPLETE success=1 /builddir/build/BUILD/grpc-1.48.1/test/core/end2end/goaway_server_test.cc:271
cd4c38
# tag(769) GRPC_OP_COMPLETE success=1 /builddir/build/BUILD/grpc-1.48.1/test/core/end2end/goaway_server_test.cc:272
cd4c38
# *** SIGABRT received at time=1663181400 on cpu 0 ***
cd4c38
# PC: @      0x3ff8bf9cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff8be82560  (unknown)  (unknown)
cd4c38
#     @      0x3ff8be82802  (unknown)  (unknown)
cd4c38
#     @      0x3ff8cefe490  (unknown)  (unknown)
cd4c38
#     @      0x3ff8bf9cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ff8bf49d20  (unknown)  gsignal
cd4c38
#     @      0x3ff8bf2b364  (unknown)  abort
cd4c38
#     @      0x2aa21f05a88  (unknown)  cq_verify()
cd4c38
#     @      0x2aa21f03fc8  (unknown)  main
cd4c38
#     @      0x3ff8bf2b618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ff8bf2b700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa21f04730  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
goaway_server
cd4c38
%endif
cd4c38
cd4c38
%ifarch aarch64 x86_64 ppc64le s390x riscv64
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] GrpcToolTest.CallCommandWithTimeoutDeadlineSet
cd4c38
# [libprotobuf ERROR google/protobuf/text_format.cc:335] Error parsing text-format grpc.testing.SimpleRequest: 1:7: Message type "grpc.testing.SimpleRequest" has no field named "redhat".
cd4c38
# Failed to convert text format to proto.
cd4c38
# Failed to parse request.
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/util/grpc_tool_test.cc:915: Failure
cd4c38
# Value of: 0 == GrpcToolMainLib(ArraySize(argv), argv, TestCliCredentials(), std::bind(PrintStream, &output_stream, std::placeholders::_1))
cd4c38
#   Actual: false
cd4c38
# Expected: true
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/util/grpc_tool_test.cc:920: Failure
cd4c38
# Value of: nullptr != strstr(output_stream.str().c_str(), "message: \"true\"")
cd4c38
#   Actual: false
cd4c38
# Expected: true
cd4c38
# [  FAILED  ] GrpcToolTest.CallCommandWithTimeoutDeadlineSet (5 ms)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
grpc_tool
cd4c38
%endif
cd4c38
cd4c38
%ifarch s390x
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# *** SIGABRT received at time=1663181750 on cpu 2 ***
cd4c38
# PC: @      0x3ffaec9cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ffaeb82560  (unknown)  (unknown)
cd4c38
#     @      0x3ffaeb82802  (unknown)  (unknown)
cd4c38
#     @      0x3ffaf37e490  (unknown)  (unknown)
cd4c38
#     @      0x3ffaec9cf2a  (unknown)  __pthread_kill_implementation
cd4c38
#     @      0x3ffaec49d20  (unknown)  gsignal
cd4c38
#     @      0x3ffaec2b364  (unknown)  abort
cd4c38
#     @      0x2aa1be8145e  (unknown)  verification_test()
cd4c38
#     @      0x2aa1be811e8  (unknown)  main
cd4c38
#     @      0x3ffaec2b618  (unknown)  __libc_start_call_main
cd4c38
#     @      0x3ffaec2b700  (unknown)  __libc_start_main@GLIBC_2.2
cd4c38
#     @      0x2aa1be81270  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
murmur_hash
cd4c38
%endif
cd4c38
cd4c38
%ifarch x86_64 aarch64
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# [ RUN      ] StackTracerTest.Basic
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/core/util/stack_tracer_test.cc:36: Failure
cd4c38
# Value of: absl::StrContains(stack_trace, "Basic")
cd4c38
#   Actual: false
cd4c38
# Expected: true
cd4c38
# [  FAILED  ] StackTracerTest.Basic (0 ms)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
stack_tracer
cd4c38
%endif
cd4c38
cd4c38
%ifarch aarch64 x86_64 ppc64le
cd4c38
# Unexplained:
cd4c38
#
cd4c38
# This may be flaky and sometimes succeed; this was known to be the case on
cd4c38
# ppc64le in older versions.
cd4c38
#
cd4c38
# [ RUN      ] CredentialsTest.TestOauth2TokenFetcherCredsParsingEmptyHttpBody
cd4c38
# *** SIGSEGV received at time=1663181447 on cpu 2 ***
cd4c38
# PC: @     0x7fdda4098c3c  (unknown)  __strlen_evex
cd4c38
#     @               0x32  (unknown)  (unknown)
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-14
cd4c38
test_core_security_credentials
cd4c38
%endif
cd4c38
cd4c38
%ifarch aarch64 x86_64 ppc64le s390x riscv64
cd4c38
# It looks like server_key_log has the right lines, but in an unexpected order.
cd4c38
# It is not immediately obvious if this a real problem, or an implementation
cd4c38
# quirk. Opinions about whether, or how, to report this upstream are welcome!
cd4c38
#
cd4c38
# [ RUN      ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_false__enable_tls_key_logging_true
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 f7d20427eda7b69db54be3032a3f1f05a0f55d1108defd15e1a2dae211dc00214554caaaac25e541e08a8a49976f2094\rEXPORTER_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 b0b765b3d8df4388fd1232921dfe943923c971886feda8bb55673d91f90be4466d18e47305c6c84348a58d6d1f1d1d2e\rSERVER_TRAFFIC_SECRET_0 eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 58fcaf175146ac0efc4e32ed3cd73bb10e35103453ea3bf3ad11296a5902628ba692f4c06269912d94982ea56276dd6b\rCLIENT_HANDSHAKE_TRAFFIC_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 92814e941dd4b724b0eadebdb424c029d2bd4f028cf693f72315752198a9d0ec85a68a3197570f1b7aaa1b1f200c2797\rCLIENT_TRAFFIC_SECRET_0 eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 3a9d4b7afebad9b50d7b9d71f5f508df54d90303d6beb941c5b1d8d10e19923f3928546bbe7a64c8613d5e715ff030b9\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 f7d20427eda7b69db54be3032a3f1f05a0f55d1108defd15e1a2dae211dc00214554caaaac25e541e08a8a49976f2094\rCLIENT_HANDSHAKE_TRAFFIC_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 92814e941dd4b724b0eadebdb424c029d2bd4f028cf693f72315752198a9d0ec85a68a3197570f1b7aaa1b1f200c2797\rEXPORTER_SECRET eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 b0b765b3d8df4388fd1232921dfe943923c971886feda8bb55673d91f90be4466d18e47305c6c84348a58d6d1f1d1d2e\rSERVER_TRAFFIC_SECRET_0 eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 58fcaf175146ac0efc4e32ed3cd73bb10e35103453ea3bf3ad11296a5902628ba692f4c06269912d94982ea56276dd6b\rCLIENT_TRAFFIC_SECRET_0 eef4f25d9d199eb0df0e2305e6d25339b85921dc6cc074fc8c20dbd6accc0203 3a9d4b7afebad9b50d7b9d71f5f508df54d90303d6beb941c5b1d8d10e19923f3928546bbe7a64c8613d5e715ff030b9\r"
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 dcd6d6638d96fe74db4bf9ac393a4b481a7d611972c21e95da4f971e6295fe60fbce33a8bdb466fe4e2a409e005259b5\rEXPORTER_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 0637c81033fdfe3bed0b3eb3a4ea4c23246641d530fa695672d2e00aef18ebab4b25d6d38fd7a948f6a77fade9297fe7\rSERVER_TRAFFIC_SECRET_0 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 987dde02bc0757e3e9b309bf57c228c43243fe5abc2b93fa7bffa400065935d7b4e04fb709609e018fe94c71f5cd283e\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 e4badfe723bd95761bad8be436d3db2af0d4ed724cf0de092a2cad635e4bdead50a428a5e3a566c766ab92f8d2c47468\rCLIENT_TRAFFIC_SECRET_0 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 ce55a02ed58902ccf6b70df880d3314a584a686bb751cc168c4a6aa9753312c051000e8fbf01de957f2cdee41563604a\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 dcd6d6638d96fe74db4bf9ac393a4b481a7d611972c21e95da4f971e6295fe60fbce33a8bdb466fe4e2a409e005259b5\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 e4badfe723bd95761bad8be436d3db2af0d4ed724cf0de092a2cad635e4bdead50a428a5e3a566c766ab92f8d2c47468\rEXPORTER_SECRET 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 0637c81033fdfe3bed0b3eb3a4ea4c23246641d530fa695672d2e00aef18ebab4b25d6d38fd7a948f6a77fade9297fe7\rSERVER_TRAFFIC_SECRET_0 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 987dde02bc0757e3e9b309bf57c228c43243fe5abc2b93fa7bffa400065935d7b4e04fb709609e018fe94c71f5cd283e\rCLIENT_TRAFFIC_SECRET_0 0aa0e0df58ebad99c8610573e28cdd0ea6629bc3e4eab31ec45a713e9a789ae6 ce55a02ed58902ccf6b70df880d3314a584a686bb751cc168c4a6aa9753312c051000e8fbf01de957f2cdee41563604a\r"
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 c5fc8018e0d9b3d1af85cc5fff423b8f45087ca07194ff9f3576656111c566e8bef7e3e896b75aa2fd601ad6333f0f26\rEXPORTER_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 84233022a806f7f281cdec34cf2312b8e7101e428a84abf85c03e8478ec846a31d874dda24a7589d44c7d51610a67ea5\rSERVER_TRAFFIC_SECRET_0 df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 6463382c0cdf3d2b850419e70bffeb8c6d9bce5db1c112cae4baf2b553fc3d9a7b783ed38c2f45b0e806d5a024aaffab\rCLIENT_HANDSHAKE_TRAFFIC_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 b55c4d1d1e72714014c3505ff3da57bd14490b299c8f6398ef6a3aba03c090c8514dc4e0b8e2e9503e59af82d793b78d\rCLIENT_TRAFFIC_SECRET_0 df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 b11c752b4e715a8b40d23791c47eace7a59c5e73080b1da04cae557a1881d01c9e3fd191d96747b2926b422c08dc87b1\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 c5fc8018e0d9b3d1af85cc5fff423b8f45087ca07194ff9f3576656111c566e8bef7e3e896b75aa2fd601ad6333f0f26\rCLIENT_HANDSHAKE_TRAFFIC_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 b55c4d1d1e72714014c3505ff3da57bd14490b299c8f6398ef6a3aba03c090c8514dc4e0b8e2e9503e59af82d793b78d\rEXPORTER_SECRET df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 84233022a806f7f281cdec34cf2312b8e7101e428a84abf85c03e8478ec846a31d874dda24a7589d44c7d51610a67ea5\rSERVER_TRAFFIC_SECRET_0 df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 6463382c0cdf3d2b850419e70bffeb8c6d9bce5db1c112cae4baf2b553fc3d9a7b783ed38c2f45b0e806d5a024aaffab\rCLIENT_TRAFFIC_SECRET_0 df2e54c90fc9036eb8a8565733de306f36e60067df4d83772ee8105ff7ddaea7 b11c752b4e715a8b40d23791c47eace7a59c5e73080b1da04cae557a1881d01c9e3fd191d96747b2926b422c08dc87b1\r"
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 5496b13a3e9064741476ab17e308263a9fe55e47d26f136895dc551f4ebd9d90738960e97cd1d78cb5e5326669e7d74d\rEXPORTER_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 59f36680c801582c2c4e8f05ed2f7d838cbecdb741004d1f49377bd268cde3d317c913de38baf5fa701232a3e7c262a7\rSERVER_TRAFFIC_SECRET_0 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 0abcaad18e36929489b73a4783d41a4c52f0086923b1476ea3cfed5035ae9377b39ed9b9b51e153267f305b31610482d\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 cc36b79ed8d7986164bd4e3482239b3dabc4348f1ea1d70048ac8d1fd884dbbd0b3afbb33a17018444cba0cd739a136c\rCLIENT_TRAFFIC_SECRET_0 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 a84993ee9b9b938f68bfebf1abd703f7c7b776b9170c913c27385d0be9b133374b542bd8769e9272232894a008c45bae\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 5496b13a3e9064741476ab17e308263a9fe55e47d26f136895dc551f4ebd9d90738960e97cd1d78cb5e5326669e7d74d\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 cc36b79ed8d7986164bd4e3482239b3dabc4348f1ea1d70048ac8d1fd884dbbd0b3afbb33a17018444cba0cd739a136c\rEXPORTER_SECRET 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 59f36680c801582c2c4e8f05ed2f7d838cbecdb741004d1f49377bd268cde3d317c913de38baf5fa701232a3e7c262a7\rSERVER_TRAFFIC_SECRET_0 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 0abcaad18e36929489b73a4783d41a4c52f0086923b1476ea3cfed5035ae9377b39ed9b9b51e153267f305b31610482d\rCLIENT_TRAFFIC_SECRET_0 28b08520f2b4f4238e78adf378efc0caea3bbf123767522d950f75da0f0c09b4 a84993ee9b9b938f68bfebf1abd703f7c7b776b9170c913c27385d0be9b133374b542bd8769e9272232894a008c45bae\r"
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 451c0c2e870b4971c2f965d75baa1ca1c5bd417aeb6d9f7fd20a45424505249c87d4b4d6437f2c4fe06e0f4652a68564\rEXPORTER_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 fc31c6fb0afdb466c17e3cee04564f7061a553239d88b0c7a1711de757d37288814e6a27e00dbad87ef610d5460db8bd\rSERVER_TRAFFIC_SECRET_0 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 c00928d08ab817a90a9abb72b8b3caedeb7f575c917bb923635ec9b6023a4dc205275cc60cf891fe5102b4375a4823e9\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 fb6067e497dafcfeb3c8cc5183c64d560d7fd59e012f0def755eb5b54436a9d4f369dd30fc0cad8f629406520edc2116\rCLIENT_TRAFFIC_SECRET_0 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 27b3e7b94858f398a8359f332caebd571ed63e8f2c7fec489e9b33d1ed369201b308922b96d15522a75987e6634c61f3\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 451c0c2e870b4971c2f965d75baa1ca1c5bd417aeb6d9f7fd20a45424505249c87d4b4d6437f2c4fe06e0f4652a68564\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 fb6067e497dafcfeb3c8cc5183c64d560d7fd59e012f0def755eb5b54436a9d4f369dd30fc0cad8f629406520edc2116\rEXPORTER_SECRET 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 fc31c6fb0afdb466c17e3cee04564f7061a553239d88b0c7a1711de757d37288814e6a27e00dbad87ef610d5460db8bd\rSERVER_TRAFFIC_SECRET_0 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 c00928d08ab817a90a9abb72b8b3caedeb7f575c917bb923635ec9b6023a4dc205275cc60cf891fe5102b4375a4823e9\rCLIENT_TRAFFIC_SECRET_0 5b30cc82f1b34055a02ba85fa15f08e909a2d4dfe1a07d43143e3c7df0efa250 27b3e7b94858f398a8359f332caebd571ed63e8f2c7fec489e9b33d1ed369201b308922b96d15522a75987e6634c61f3\r"
cd4c38
# [  FAILED  ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_false__enable_tls_key_logging_true, where GetParam() = 8-byte object <05-00 00-00 00-01 00-00> (82 ms)
cd4c38
# [ RUN      ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_true__enable_tls_key_logging_true
cd4c38
# /builddir/build/BUILD/grpc-1.48.1/test/cpp/end2end/tls_key_export_test.cc:277: Failure
cd4c38
# Value of: server_key_log
cd4c38
# Expected: is equal to "SERVER_HANDSHAKE_TRAFFIC_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e c46a83cd4156c9f5a3c53a8d673cb888543a535fcacc6e5a0067ccf92afd7104213effe874ff31ea930210caa480cf27\rEXPORTER_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 07b8fce3c826593d7e66527c22ebc710b4ef64f8c2921b9c89f99ebfca4df37d9852dc0f35ffc0b5046c5daee48b35d4\rSERVER_TRAFFIC_SECRET_0 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 672b3ece1a18396aa4645db0617cf4002c6ce8b039a6b522fa3a6788ec1744b3e189304a99906c24cd95298e258b54ad\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 4fc7b8e8577b8ac51e59f13acf73c8a67a15af43f4965dad6ecfd31136cc09a2b518784925e5c0bf6375f23d5e088113\rCLIENT_TRAFFIC_SECRET_0 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 20bd3408a8d1f2c779e1895c74b639631d645e1b97cf291964a0fa7b4702ad308213170e7784d47cd411d881d258b9e6\rSERVER_HANDSHAKE_TRAFFIC_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 521a5a83ce0b115757dddfc068379813eba5ecbca8e0dc6c8211a05b029b13cb6c4acf359697a9c0b02e55bfdcf1fb57\rEXPORTER_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 15c107ae3607293d1a245dada03d96ca3ac0b2e94447ec6bc6d5af695e54960397c431da64c04c702ea226338128067a\rSERVER_TRAFFIC_SECRET_0 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 5956d61b750355c655304d1aca8d723b15a9b29fe18609784e0b6c8d819e53cf45030669b9a51a886f3f18ca4d1b0f73\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 09045680090473c5920facdcc5849fa98b267803d0216257a0c552806073de15a73d3e47bf28374e030ed4de1ffe9be9\rCLIENT_TRAFFIC_SECRET_0 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 79f9b1819ccd9b69980c4788cd65f87b0d288835c62890234eb0fc942eede6b74a789ce9767bc3245e6363f18ac58fa6\rSERVER_HANDSHAKE_TRAFFIC_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 f491b5d8e9c5bf4a38d12966093f8da613766d4c7dc3f557337b08e4f6b1af105527e2e46f19c4bd947b2b1b5fe3e314\rEXPORTER_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 a2467e5c30484d3f7b3ce05be675c2465a237e1b3d772fd2745e9b181a881a8f9aaee8ae4b7980ab8c934a02c58e61a7\rSERVER_TRAFFIC_SECRET_0 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 990211d781ad8eb19cc2db122eb3868e737aa6b7143799f4b8f72a7ea672bef0e65ab6630924169c6dd2f59f55846aee\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 612f16033cc1e94849dc3a206247c5760421a94f68f2e9cde33b48e616b591d60be853f27b7537aa8f59ad4aec85e55a\rCLIENT_TRAFFIC_SECRET_0 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 2093ffbaa9b85f7cbb4d00653036f3f6986dfaec000b46add51919390b17b49e02ecb34c3be5dc48aa21e218d9d3d70f\rSERVER_HANDSHAKE_TRAFFIC_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 3ae3754f332170315dd4516cb8f062ac5fae2afa54f6820403d22ddb2397ae30b4aa21140a68162acac270a6a71d9f51\rEXPORTER_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 553d9efb308797f20cbfe73096082bf3c07725f0b4d0d151d1c0322aa49623a25184c9fe845069d040d6ec9f0e75f214\rSERVER_TRAFFIC_SECRET_0 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 95c9db31c38deb0c074ee7cea5e8e454ab30afea554f5d7ea5f7e91f28665d9990da2630dd55721046eb87acb3ddb335\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 54d0f425309fe118311e179d8bcd965ef696a9cacca1a78369ef10164dbc7e7418f2ceaf9cceb51033e5984aed76ef3a\rCLIENT_TRAFFIC_SECRET_0 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 9c44fcd6a41a5c3701365fbc28ddc6dd1369ddf82cbaac150995424782d2a0dc0dcf58676b88f939e403fbd5580a74bf\rSERVER_HANDSHAKE_TRAFFIC_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 cbf5ae80e7c2d4f4d8a76bafed3a9b297ec8a35ef6ce8d1b2328afc20a73407b7e237ad100761e81e3dda1a4a7e329e1\rEXPORTER_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 43c3d3ca25c476f8a929cc90101b91e740a54e83e31a1eb651327b7dd597a9a6d30ad62d9eae5f2de21720883fa4ab7f\rSERVER_TRAFFIC_SECRET_0 c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 26af089be6c5e54a725d099b1ddb7d2ce703dce8e84b3575d283703f690c7acce0fd775eac9abf9b2ccb04f49f6bfb1c\rCLIENT_HANDSHAKE_TRAFFIC_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 957b72988d54b864532fe51256a59c55b69b8dfefcbbf81f4378493d0cf3b288fe111f9000c49857d35d63ea3e519d72\rCLIENT_TRAFFIC_SECRET_0 c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 62b416237b731eb435e5392baf3ae37be85c9844f9f55a7440bb74b60a2866b72b09bfaba1f6ea7b07328a38b3595808\r"
cd4c38
#   Actual: "SERVER_HANDSHAKE_TRAFFIC_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e c46a83cd4156c9f5a3c53a8d673cb888543a535fcacc6e5a0067ccf92afd7104213effe874ff31ea930210caa480cf27\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 4fc7b8e8577b8ac51e59f13acf73c8a67a15af43f4965dad6ecfd31136cc09a2b518784925e5c0bf6375f23d5e088113\rEXPORTER_SECRET 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 07b8fce3c826593d7e66527c22ebc710b4ef64f8c2921b9c89f99ebfca4df37d9852dc0f35ffc0b5046c5daee48b35d4\rSERVER_TRAFFIC_SECRET_0 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 672b3ece1a18396aa4645db0617cf4002c6ce8b039a6b522fa3a6788ec1744b3e189304a99906c24cd95298e258b54ad\rCLIENT_TRAFFIC_SECRET_0 20afdda8ca612c07e6ae5036ce4cd572edf444e61112b85908b15a9ca4ac3a5e 20bd3408a8d1f2c779e1895c74b639631d645e1b97cf291964a0fa7b4702ad308213170e7784d47cd411d881d258b9e6\rSERVER_HANDSHAKE_TRAFFIC_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 521a5a83ce0b115757dddfc068379813eba5ecbca8e0dc6c8211a05b029b13cb6c4acf359697a9c0b02e55bfdcf1fb57\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 09045680090473c5920facdcc5849fa98b267803d0216257a0c552806073de15a73d3e47bf28374e030ed4de1ffe9be9\rEXPORTER_SECRET 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 15c107ae3607293d1a245dada03d96ca3ac0b2e94447ec6bc6d5af695e54960397c431da64c04c702ea226338128067a\rSERVER_TRAFFIC_SECRET_0 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 5956d61b750355c655304d1aca8d723b15a9b29fe18609784e0b6c8d819e53cf45030669b9a51a886f3f18ca4d1b0f73\rCLIENT_TRAFFIC_SECRET_0 27174ce3e1d552c80bd1a22d2cec50f31dee027f362ff7f3bf9f5d77ba464cef 79f9b1819ccd9b69980c4788cd65f87b0d288835c62890234eb0fc942eede6b74a789ce9767bc3245e6363f18ac58fa6\rSERVER_HANDSHAKE_TRAFFIC_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 f491b5d8e9c5bf4a38d12966093f8da613766d4c7dc3f557337b08e4f6b1af105527e2e46f19c4bd947b2b1b5fe3e314\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 612f16033cc1e94849dc3a206247c5760421a94f68f2e9cde33b48e616b591d60be853f27b7537aa8f59ad4aec85e55a\rEXPORTER_SECRET 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 a2467e5c30484d3f7b3ce05be675c2465a237e1b3d772fd2745e9b181a881a8f9aaee8ae4b7980ab8c934a02c58e61a7\rSERVER_TRAFFIC_SECRET_0 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 990211d781ad8eb19cc2db122eb3868e737aa6b7143799f4b8f72a7ea672bef0e65ab6630924169c6dd2f59f55846aee\rCLIENT_TRAFFIC_SECRET_0 37cf050f83316e6f7cb7256d5ece7b9f4c53e014bebdd9bc4393c934c5120ac9 2093ffbaa9b85f7cbb4d00653036f3f6986dfaec000b46add51919390b17b49e02ecb34c3be5dc48aa21e218d9d3d70f\rSERVER_HANDSHAKE_TRAFFIC_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 3ae3754f332170315dd4516cb8f062ac5fae2afa54f6820403d22ddb2397ae30b4aa21140a68162acac270a6a71d9f51\rCLIENT_HANDSHAKE_TRAFFIC_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 54d0f425309fe118311e179d8bcd965ef696a9cacca1a78369ef10164dbc7e7418f2ceaf9cceb51033e5984aed76ef3a\rEXPORTER_SECRET 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 553d9efb308797f20cbfe73096082bf3c07725f0b4d0d151d1c0322aa49623a25184c9fe845069d040d6ec9f0e75f214\rSERVER_TRAFFIC_SECRET_0 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 95c9db31c38deb0c074ee7cea5e8e454ab30afea554f5d7ea5f7e91f28665d9990da2630dd55721046eb87acb3ddb335\rCLIENT_TRAFFIC_SECRET_0 034d3800864d87141abc05a3e17e84726ce10b85d931eb5d00eadd80984dbb7e 9c44fcd6a41a5c3701365fbc28ddc6dd1369ddf82cbaac150995424782d2a0dc0dcf58676b88f939e403fbd5580a74bf\rSERVER_HANDSHAKE_TRAFFIC_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 cbf5ae80e7c2d4f4d8a76bafed3a9b297ec8a35ef6ce8d1b2328afc20a73407b7e237ad100761e81e3dda1a4a7e329e1\rCLIENT_HANDSHAKE_TRAFFIC_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 957b72988d54b864532fe51256a59c55b69b8dfefcbbf81f4378493d0cf3b288fe111f9000c49857d35d63ea3e519d72\rEXPORTER_SECRET c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 43c3d3ca25c476f8a929cc90101b91e740a54e83e31a1eb651327b7dd597a9a6d30ad62d9eae5f2de21720883fa4ab7f\rSERVER_TRAFFIC_SECRET_0 c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 26af089be6c5e54a725d099b1ddb7d2ce703dce8e84b3575d283703f690c7acce0fd775eac9abf9b2ccb04f49f6bfb1c\rCLIENT_TRAFFIC_SECRET_0 c98b2b143864bb78bfb7bac233c1e4bb463eb7bbfe18ed056293e4d8752596c9 62b416237b731eb435e5392baf3ae37be85c9844f9f55a7440bb74b60a2866b72b09bfaba1f6ea7b07328a38b3595808\r"
cd4c38
# [  FAILED  ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_true__enable_tls_key_logging_true, where GetParam() = 8-byte object <05-00 00-00 01-01 00-00> (69 ms)
cd4c38
# [ RUN      ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_true__enable_tls_key_logging_false
cd4c38
# [       OK ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_true__enable_tls_key_logging_false (64 ms)
cd4c38
# [ RUN      ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_false__enable_tls_key_logging_false
cd4c38
# [       OK ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_false__enable_tls_key_logging_false (66 ms)
cd4c38
# [----------] 4 tests from TlsKeyLogging/TlsKeyLoggingEnd2EndTest (284 ms total)
cd4c38
# [----------] Global test environment tear-down
cd4c38
# [==========] 4 tests from 1 test suite ran. (284 ms total)
cd4c38
# [  PASSED  ] 2 tests.
cd4c38
# [  FAILED  ] 2 tests, listed below:
cd4c38
# [  FAILED  ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_false__enable_tls_key_logging_true, where GetParam() = 8-byte object <05-00 00-00 00-01 00-00>
cd4c38
# [  FAILED  ] TlsKeyLogging/TlsKeyLoggingEnd2EndTest.KeyLogging/TestScenario__num_listening_ports_5__share_tls_key_log_file_true__enable_tls_key_logging_true, where GetParam() = 8-byte object <05-00 00-00 01-01 00-00>
cd4c38
# 2 FAILED TESTS
cd4c38
#
cd4c38
# Confirmed in 1.48.1 2022-09-15
cd4c38
tls_key_export
cd4c38
%endif
cd4c38
cd4c38
EOF
cd4c38
} | xargs -r chmod -v a-x
cd4c38
cd4c38
find %{_vpath_builddir} -type f -perm /0111 -name '*_test' | sort |
cd4c38
  while read -r testexe
cd4c38
  do
cd4c38
    echo "==== $(date -u --iso-8601=ns): $(basename "${testexe}") ===="
cd4c38
    %{__python3} tools/run_tests/start_port_server.py
cd4c38
cd4c38
%if %{without gdb}
cd4c38
    # There is a history of some tests failing by hanging. We use “timeout” so
cd4c38
    # that a test that does hang breaks the build in a vagurely reasonable
cd4c38
    # amount of time. Some tests really can be slow, so the timeout is long!
cd4c38
    timeout -k 61m -v 60m \
cd4c38
%if %{with valgrind}
cd4c38
        valgrind --trace-children=yes --leak-check=full --track-origins=yes \
cd4c38
%endif
cd4c38
        "${testexe}"
cd4c38
%else
cd4c38
    # Script gdb to run the test file and record any backtrace. Note that this
cd4c38
    # reports an error when tests fail, because there is no stack on which to
cd4c38
    # report a backtrace after the test exits successfully, and that this keeps
cd4c38
    # going after a test fails, because we ignore the mentioned error. A
cd4c38
    # cleverer gdb script would be nice, but this is good enough for the
cd4c38
    # intended purpose.
cd4c38
    tee "${testexe}-script.gdb" <
cd4c38
set pagination off
cd4c38
set logging file ${testexe}-gdb.log
cd4c38
set logging on
cd4c38
file ${testexe}
cd4c38
run
cd4c38
bt -full
cd4c38
set logging off
cd4c38
quit
cd4c38
EOF
cd4c38
    gdb -q -x "${testexe}-script.gdb" --batch 
cd4c38
%endif
cd4c38
  done
cd4c38
cd4c38
# Stop the port server
cd4c38
curl "http://localhost:${PORT_SERVER_PORT}/quitquitquit" || :
cd4c38
%endif
cd4c38
cd4c38
pushd src/python/grpcio_tests
cd4c38
for suite in \
cd4c38
    test_lite \
cd4c38
    %{?with_python_aio_tests:test_aio} \
cd4c38
    %{?with_python_gevent_tests:test_gevent} \
cd4c38
    test_py3_only
cd4c38
do
cd4c38
  echo "==== $(date -u --iso-8601=ns): Python ${suite} ===="
cd4c38
  # See the implementation of the %%pytest macro, upon which the following is
cd4c38
  # based. We add a timeout that is rather long, as it must apply to the entire
cd4c38
  # test suite. (Patching in a per-test timeout would be harder.)
cd4c38
  %{py3_test_envvars} timeout -k 31m -v 30m \
cd4c38
      %{python3} %{py_setup} %{?py_setup_args} "${suite}"
cd4c38
done
cd4c38
popd
cd4c38
cd4c38
%endif
cd4c38
cd4c38
%if %{without system_gtest}
cd4c38
# As a sanity check for our claim that gtest/gmock are not bundled, check
cd4c38
# installed executables for symbols that appear to have come from gtest/gmock.
cd4c38
foundgtest=0
cd4c38
if find %{buildroot} -type f -perm /0111 \
cd4c38
      -execdir objdump --syms --dynamic-syms --demangle '{}' '+' 2>/dev/null |
cd4c38
    grep -E '[^:]testing::'
cd4c38
then
cd4c38
  echo 'Found traces of gtest/gmock' 1>&2
cd4c38
  exit 1
cd4c38
fi
cd4c38
%endif
cd4c38
cd4c38
cd4c38
%files
cd4c38
%license LICENSE NOTICE.txt LICENSE-utf8_range
cd4c38
%{_libdir}/libaddress_sorting.so.%{c_so_version}{,.*}
cd4c38
%{_libdir}/libgpr.so.%{c_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc.so.%{c_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc_unsecure.so.%{c_so_version}{,.*}
cd4c38
%{_libdir}/libupb.so.%{c_so_version}{,.*}
cd4c38
cd4c38
cd4c38
%files data
cd4c38
%license LICENSE NOTICE.txt
cd4c38
%dir %{_datadir}/grpc/
cd4c38
%{_datadir}/grpc/roots.pem
cd4c38
cd4c38
cd4c38
%files doc
cd4c38
%license LICENSE NOTICE.txt
cd4c38
cd4c38
%doc %{_pkgdocdir}/AUTHORS
cd4c38
%doc %{_pkgdocdir}/CONCEPTS.md
cd4c38
%doc %{_pkgdocdir}/MAINTAINERS.md
cd4c38
%doc %{_pkgdocdir}/README.md
cd4c38
%doc %{_pkgdocdir}/SECURITY.md
cd4c38
%doc %{_pkgdocdir}/TROUBLESHOOTING.md
cd4c38
cd4c38
%doc %{_pkgdocdir}/doc/
cd4c38
%doc %{_pkgdocdir}/examples/
cd4c38
cd4c38
cd4c38
cd4c38
%files cpp
cd4c38
%{_libdir}/libgrpc++.so.%{cpp_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc++_alts.so.%{cpp_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc++_error_details.so.%{cpp_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc++_reflection.so.%{cpp_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc++_unsecure.so.%{cpp_so_version}{,.*}
cd4c38
%{_libdir}/libgrpc_plugin_support.so.%{cpp_so_version}{,.*}
cd4c38
cd4c38
%{_libdir}/libgrpcpp_channelz.so.%{cpp_so_version}{,.*}
cd4c38
cd4c38
cd4c38
%if %{with core_tests}
cd4c38
%files cli
cd4c38
%{_bindir}/grpc_cli
cd4c38
%{_libdir}/libgrpc++_test_config.so.%{cpp_so_version}
cd4c38
%{_mandir}/man1/grpc_cli.1*
cd4c38
%{_mandir}/man1/grpc_cli-*.1*
cd4c38
%endif
cd4c38
cd4c38
cd4c38
%files plugins
cd4c38
# These are for program use and do not offer a CLI for the end user, so they
cd4c38
# should really be in %%{_libexecdir}; however, too many downstream users
cd4c38
# expect them in $PATH to change this for the time being.
cd4c38
%{_bindir}/grpc_*_plugin
cd4c38
cd4c38
cd4c38
%files devel
cd4c38
%{_libdir}/libaddress_sorting.so
cd4c38
%{_libdir}/libgpr.so
cd4c38
%{_libdir}/libgrpc.so
cd4c38
%{_libdir}/libgrpc_unsecure.so
cd4c38
%{_libdir}/libupb.so
cd4c38
%{_includedir}/grpc/
cd4c38
%{_libdir}/pkgconfig/gpr.pc
cd4c38
%{_libdir}/pkgconfig/grpc.pc
cd4c38
%{_libdir}/pkgconfig/grpc_unsecure.pc
cd4c38
%{_libdir}/cmake/grpc/
cd4c38
cd4c38
%{_libdir}/libgrpc++.so
cd4c38
%{_libdir}/libgrpc++_alts.so
cd4c38
%{_libdir}/libgrpc++_error_details.so
cd4c38
%{_libdir}/libgrpc++_reflection.so
cd4c38
%{_libdir}/libgrpc++_unsecure.so
cd4c38
%{_libdir}/libgrpc_plugin_support.so
cd4c38
%{_includedir}/grpc++/
cd4c38
%{_libdir}/pkgconfig/grpc++.pc
cd4c38
%{_libdir}/pkgconfig/grpc++_unsecure.pc
cd4c38
cd4c38
%{_libdir}/libgrpcpp_channelz.so
cd4c38
%{_includedir}/grpcpp/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio
cd4c38
%license LICENSE NOTICE.txt LICENSE-utf8_range
cd4c38
%{python3_sitearch}/grpc/
cd4c38
%{python3_sitearch}/grpcio-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-tools
cd4c38
%license LICENSE NOTICE.txt LICENSE-utf8_range
cd4c38
%{python3_sitearch}/grpc_tools/
cd4c38
%{python3_sitearch}/grpcio_tools-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-channelz
cd4c38
%{python3_sitelib}/grpc_channelz/
cd4c38
%{python3_sitelib}/grpcio_channelz-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-health-checking
cd4c38
%{python3_sitelib}/grpc_health/
cd4c38
%{python3_sitelib}/grpcio_health_checking-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-reflection
cd4c38
%{python3_sitelib}/grpc_reflection/
cd4c38
%{python3_sitelib}/grpcio_reflection-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-status
cd4c38
%{python3_sitelib}/grpc_status/
cd4c38
%{python3_sitelib}/grpcio_status-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%files -n python3-grpcio-testing
cd4c38
%{python3_sitelib}/grpc_testing/
cd4c38
%{python3_sitelib}/grpcio_testing-%{pyversion}-py%{python3_version}.egg-info/
cd4c38
cd4c38
cd4c38
%changelog
cd4c38
* Thu Oct 17 2024 Neil Hanlon <neil@shrug.pw> - 1.48.4-44
cd4c38
- rebuild for re2 update
cd4c38
cd4c38
* Mon Oct 14 2024 Kaleb S. KEITHLEY <kkeithle@redhat.com> - 1.48.4-43
cd4c38
- Remove openssl-devel-engine, and add associated patch
cd4c38
cd4c38
* Tue Sep 10 2024 Carl George <carlwgeorge@fedoraproject.org> - 1.48.4-42
cd4c38
- Remove usage of coverage, per the packaging guidelines
cd4c38
cd4c38
* Sun Aug 18 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-41
cd4c38
- Rebuilt for abseil-cpp-20240722.0
cd4c38
cd4c38
* Wed Aug 14 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-40
cd4c38
- Rebuilt for re2-20240702
cd4c38
cd4c38
* Wed Aug 14 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-39
cd4c38
- Adjust to Changes/OpensslDeprecateEngine
cd4c38
cd4c38
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.48.4-38
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
cd4c38
cd4c38
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 1.48.4-37
cd4c38
- Rebuilt for Python 3.13
cd4c38
cd4c38
* Sun May 26 2024 U2FsdGVkX1 <U2FsdGVkX1@gmail.com> - 1.48.4-36
cd4c38
- Add riscv64 support
cd4c38
cd4c38
* Sat Feb 24 2024 Paul Wouters <paul.wouters@aiven.io> - 1.48.4-35
cd4c38
- Rebuilt for libre2.so.11 bump
cd4c38
cd4c38
* Sun Feb 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-34
cd4c38
- Rebuild for abseil-cpp-20240116.0
cd4c38
cd4c38
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.48.4-33
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
cd4c38
cd4c38
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.48.4-32
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
cd4c38
cd4c38
* Thu Jan 18 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-31
cd4c38
- Add missing includes for abseil-cpp-20240116.rc1
cd4c38
cd4c38
* Tue Nov 21 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.48.4-30
cd4c38
- Fix flatpak build
cd4c38
cd4c38
* Thu Nov 02 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-28
cd4c38
- Do not call PyEval_InitThreads (fix RHBZ#2247486)
cd4c38
cd4c38
* Wed Nov 01 2023 Miro Hrončok <miro@hroncok.cz> - 1.48.4-27
cd4c38
- Use Cython 3, specify noexcept for cdef functions
cd4c38
cd4c38
* Wed Oct 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-26
cd4c38
- F38+: Simplify Python test environment setup
cd4c38
- Use %%{py3_test_envvars}
cd4c38
cd4c38
* Tue Aug 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-25
cd4c38
- Rebuild for abseil-cpp-20230802.0
cd4c38
cd4c38
* Fri Jul 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-24
cd4c38
- Use the Cython compat package for now
cd4c38
cd4c38
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.48.4-23
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
cd4c38
cd4c38
* Fri Jul 14 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-22
cd4c38
- Use new (rpm 4.17.1+) bcond style
cd4c38
cd4c38
* Wed Jul 05 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-20
cd4c38
- Backport fix for CVE-2023-32732 (fix RHBZ#2214470)
cd4c38
cd4c38
* Thu Jun 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-19
cd4c38
- Improved find_module patch
cd4c38
cd4c38
* Thu Jun 22 2023 Python Maint <python-maint@redhat.com> - 1.48.4-18
cd4c38
- Rebuilt for Python 3.12
cd4c38
cd4c38
* Wed Jun 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-17
cd4c38
- Fix grpcio tests for Python 3.12
cd4c38
cd4c38
* Wed Jun 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-16
cd4c38
- Patch HTTP test server for Python 3.12
cd4c38
cd4c38
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 1.48.4-15
cd4c38
- Rebuilt for Python 3.12
cd4c38
cd4c38
* Fri May 12 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-14
cd4c38
- Add a trailing slash to one more directory in the files lists
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-13
cd4c38
- Add %%py_provides for importable modules
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-12
cd4c38
- List directories with trailing slashes
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-11
cd4c38
- List .so files more precisely
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-10
cd4c38
- Update rpmlintrc rules
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-9
cd4c38
- Hardlink duplicate files in the examples
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-8
cd4c38
- List doc/example files more explicitly
cd4c38
- Drop some less-relevant text documentation files
cd4c38
cd4c38
* Thu May 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-7
cd4c38
- Drop python3-grpcio-admin and python3-grpcio-csds subpackages
cd4c38
cd4c38
* Wed May 10 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.48.4-6
cd4c38
- Always disable xds-protos dependency in RHEL builds
cd4c38
cd4c38
* Tue Apr 25 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1.48.4-5
cd4c38
- Revbump for ELN rebuild
cd4c38
cd4c38
* Sun Mar 05 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-4
cd4c38
- Post-bootstrap rebuild for abseil-cpp-20230125
cd4c38
cd4c38
* Sat Mar 04 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-3
cd4c38
- Bootstrap for abseil-cpp-20230125
cd4c38
cd4c38
* Sat Mar 04 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-2
cd4c38
- Skip a couple of new failing tests on aarch64 for abseil-cpp-20230125.0
cd4c38
cd4c38
* Thu Mar 02 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.4-1
cd4c38
- Update to 1.48.4
cd4c38
cd4c38
* Thu Feb 09 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.3-1
cd4c38
- Update to 1.48.3 (close RHBZ#2126980)
cd4c38
cd4c38
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.48.2-3
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
cd4c38
cd4c38
* Tue Jan 10 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.2-2
cd4c38
- Update License to include header-only dependencies
cd4c38
cd4c38
* Sat Dec 17 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.2-1
cd4c38
- Update to 1.48.2
cd4c38
cd4c38
* Mon Nov 21 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.1-4
cd4c38
- More-correct .pc file path fix
cd4c38
- When passing paths to the build system, they are now correctly relative
cd4c38
  to the prefix rather than absolute.
cd4c38
cd4c38
* Wed Nov 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.1-3
cd4c38
- Fix wrong paths in .pc files
cd4c38
cd4c38
* Sat Sep 17 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.1-2
cd4c38
- Update test skips for 1.48.1
cd4c38
cd4c38
* Thu Sep 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.1-1
cd4c38
- Update to grpc 1.48.1 (close RHBZ#2123215)
cd4c38
cd4c38
* Fri Aug 19 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.0-2
cd4c38
- Update to grpc 1.48.0 (close RHBZ#2100262)
cd4c38
cd4c38
* Fri Aug 19 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.48.0-1
cd4c38
- Update to grpc 1.48.0 (bootstrap build)
cd4c38
cd4c38
* Sun Aug 14 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.47.1-1
cd4c38
- Update to 1.47.1
cd4c38
cd4c38
* Sat Aug 13 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-10
cd4c38
- Update License fields to SPDX
cd4c38
cd4c38
* Thu Aug 04 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-9
cd4c38
- Add dependency on grpc-plugins from grpc-devel
cd4c38
cd4c38
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.46.3-8
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
cd4c38
cd4c38
* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 1.46.3-7
cd4c38
- Rebuilt for Python 3.11
cd4c38
cd4c38
* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 1.46.3-6
cd4c38
- Bootstrap for Python 3.11
cd4c38
cd4c38
* Fri Jun 10 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-5
cd4c38
- Work around ChannelzServicerTest Python 3.11 regressions for now
cd4c38
- Skips five failing tests. Closes RHBZ#2095027.
cd4c38
cd4c38
* Fri Jun 10 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-4
cd4c38
- Fix deprecated “inspect.getargspec”
cd4c38
cd4c38
* Fri May 27 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-3
cd4c38
- Use new upstream PR#25635 as .pc path fix
cd4c38
cd4c38
* Sat May 21 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-2
cd4c38
- Add exact-version dependency on grpc-cpp from grpc-cli
cd4c38
cd4c38
* Sat May 21 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.3-1
cd4c38
- Update to 1.46.3 (close RHBZ#2088859)
cd4c38
cd4c38
* Tue May 17 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.2-1
cd4c38
- Update to 1.46.2 (close RHBZ#2087019)
cd4c38
cd4c38
* Tue May 17 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.1-2
cd4c38
- Trivial typo fixes in spec file comments
cd4c38
cd4c38
* Sun May 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.46.1-1
cd4c38
- Update to 1.46.1 (close RHBZ#2024386)
cd4c38
- No longer depends on wyhash, as the core of the algorithm has been
cd4c38
  rewritten and included in the primary sources
cd4c38
cd4c38
* Mon May 02 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-21
cd4c38
- F37+: Stop tracking test failures on 32-bit arches
cd4c38
cd4c38
* Thu Mar 31 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-20
cd4c38
- Improve grpc-1.40.0-python-grpcio-use-system-abseil.patch
cd4c38
cd4c38
* Wed Mar 30 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-19
cd4c38
- Add exactly-versioned grpc-cpp subpackage dependencies
cd4c38
cd4c38
* Wed Mar 30 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-18
cd4c38
- Add virtual Provides for bundled upb to binary packages
cd4c38
cd4c38
* Mon Mar 28 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-17
cd4c38
- Skip client_ssl_test, which is prone to occasional timeouts
cd4c38
cd4c38
* Mon Mar 28 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-16
cd4c38
- Drop the NodeJS example’s package-lock.json file
cd4c38
cd4c38
* Wed Mar 09 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-15
cd4c38
- Rebuild for abseil-cpp 20211102.0 (non-bootstrap)
cd4c38
cd4c38
* Tue Mar 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-14
cd4c38
- Rebuild for abseil-cpp 20211102.0 (bootstrap)
cd4c38
cd4c38
* Tue Mar 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-13
cd4c38
- Rebuild for abseil-cpp 20211102.0
cd4c38
cd4c38
* Sat Feb 05 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-12
cd4c38
- Drop Conflicts with libgpr (fix RHBZ#2017576)
cd4c38
cd4c38
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.41.1-11
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
cd4c38
cd4c38
* Sun Jan 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-10
cd4c38
- Add link to PR for GCC 12 fix
cd4c38
cd4c38
* Sun Jan 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-9
cd4c38
- Fix build on GCC 12
cd4c38
cd4c38
* Thu Jan 13 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-8
cd4c38
- Non-bootstrap rebuild
cd4c38
cd4c38
* Wed Jan 12 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-7
cd4c38
- Bootstrap after libre2.so.9 bump (fix RHBZ#2038546)
cd4c38
cd4c38
* Sat Jan 08 2022 Miro Hrončok <miro@hroncok.cz> - 1.41.1-6
cd4c38
- Rebuilt for libre2.so.9
cd4c38
cd4c38
* Tue Dec 14 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-5
cd4c38
- Dep. on cmake-filesystem is now auto-generated
cd4c38
cd4c38
* Fri Nov 05 2021 Adrian Reber <adrian@lisas.de> - 1.41.1-4
cd4c38
- Rebuilt for protobuf 3.19.0
cd4c38
cd4c38
* Tue Oct 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-3
cd4c38
- Add explicit Conflicts with libgpr for now (RHBZ#2017576)
cd4c38
cd4c38
* Tue Oct 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-2
cd4c38
- Fix mixed spaces and tabs in spec file
cd4c38
cd4c38
* Tue Oct 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.1-1
cd4c38
- Update to 1.41.1 (close RHBZ#20172232)
cd4c38
cd4c38
* Tue Oct 26 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.0-4
cd4c38
- Reduce macro indirection in the spec file
cd4c38
cd4c38
* Mon Oct 25 2021 Adrian Reber <adrian@lisas.de> - 1.41.0-3
cd4c38
- Rebuilt for protobuf 3.18.1
cd4c38
cd4c38
* Tue Oct 12 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.0-2
cd4c38
- Update failing/skipped tests
cd4c38
cd4c38
* Wed Oct 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.41.0-1
cd4c38
- Update to 1.41.0
cd4c38
cd4c38
* Thu Sep 30 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.40.0-3
cd4c38
- Add missing python3-grpcio+protobuf extras metapackage
cd4c38
cd4c38
* Tue Sep 28 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.40.0-2
cd4c38
- Drop HTML documentation
cd4c38
cd4c38
* Fri Sep 17 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.40.0-1
cd4c38
- Update to 1.40.0 (close RHBZ#2002019)
cd4c38
cd4c38
* Wed Sep 15 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-10
cd4c38
- Trivial fix to grpc_cli-call man page
cd4c38
cd4c38
* Tue Sep 14 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-9
cd4c38
- Adapt to google-benchmark 1.6.0
cd4c38
cd4c38
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 1.39.1-8
cd4c38
- Rebuilt with OpenSSL 3.0.0
cd4c38
cd4c38
* Mon Aug 23 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-7
cd4c38
- Update some spec file comments
cd4c38
cd4c38
* Fri Aug 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-6
cd4c38
- Remove arguably-excessive use of the %%%%{name} macro
cd4c38
cd4c38
* Fri Aug 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-5
cd4c38
- No files need CRNL line ending fixes anymore
cd4c38
cd4c38
* Fri Aug 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-4
cd4c38
- Spiff up shebang-fixing snippet
cd4c38
cd4c38
* Fri Aug 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-3
cd4c38
- Remove executable permissions from more non-script sources, and send a PR
cd4c38
  upstream
cd4c38
cd4c38
* Fri Aug 20 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-2
cd4c38
- Some minor spec file cleanup
cd4c38
cd4c38
* Thu Aug 19 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.1-1
cd4c38
- Update to grpc 1.39.1 (close RHBZ#1993554)
cd4c38
cd4c38
* Thu Aug 19 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.0-3
cd4c38
- More updates to documented/skipped test failures
cd4c38
cd4c38
* Fri Aug 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.0-2
cd4c38
- Some updates to documented/skipped test failures
cd4c38
cd4c38
* Tue Aug 03 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.39.0-1
cd4c38
- Update to 1.39.0
cd4c38
cd4c38
* Wed Jul 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-10
cd4c38
- Simplify core test exclusion (no more useless use of cat)
cd4c38
cd4c38
* Fri Jul  9 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-8
cd4c38
- Use googletest 1.11.0
cd4c38
cd4c38
* Mon Jun 14 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-7
cd4c38
- Add BR on xxhash-static since we use it as a header-only library
cd4c38
cd4c38
* Thu Jun 10 2021 Rich Mattes <richmattes@gmail.com> - 1.37.1-6
cd4c38
- Rebuild for abseil-cpp-20210324.2
cd4c38
cd4c38
* Thu Jun 10 2021 Stephen Gallagher <sgallagh@redhat.com> - 1.37.1-5
cd4c38
- Fix builds against Python 3.10 on ELN/RHEL as well
cd4c38
cd4c38
* Thu Jun 10 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-4
cd4c38
- Since it turns out xxhash is used as a header-only library, we can stop
cd4c38
  patching the source to unbundle it; removing the bundled copy suffices
cd4c38
cd4c38
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.37.1-3
cd4c38
- Rebuilt for Python 3.10
cd4c38
cd4c38
* Fri May 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-2
cd4c38
- Use full gRPC_{CPP,CSHARP}_SOVERSION in file globs
cd4c38
cd4c38
* Tue May 11 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.37.1-1
cd4c38
- General:
cd4c38
  * New version 1.37.1
cd4c38
  * Drop patches that were upstreamed since the last packaged release, were
cd4c38
    backported from upstream in the first place, or have otherwise been
cd4c38
    obsoleted by upstream changes.
cd4c38
  * Rebase/update remaining patches as needed
cd4c38
  * Drop Fedora 32 compatibility
cd4c38
  * Add man pages for grpc_cli
cd4c38
- C (core) and C++ (cpp):
cd4c38
  * Switch to CMake build system
cd4c38
  * Build with C++17 for compatibility with the abseil-cpp package in Fedora
cd4c38
  * Add various Requires to -devel subpackage
cd4c38
cd4c38
* Tue Apr 06 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.26.0-15
cd4c38
- General:
cd4c38
  * Do not use %%exclude for unpackaged files (RPM 4.17 compatibility)
cd4c38
- Python:
cd4c38
  * Stop using %%pyproject_buildrequires, since it is difficult to fit the
cd4c38
    pyproject-rpm-macros build and install macros into this package, and Miro
cd4c38
    Hrončok has advised that “mixing %%pyproject_buildrequires with
cd4c38
    %%py3_build/%%py3_install is generally not a supported way of building
cd4c38
    Python packages.”
cd4c38
cd4c38
* Thu Mar 25 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.26.0-14
cd4c38
- General:
cd4c38
  * Improved googletest source URL (better tarball name)
cd4c38
cd4c38
* Tue Mar 23 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.26.0-13
cd4c38
- General:
cd4c38
  * Replace * with • in descriptions
cd4c38
  * Use cmake() dependencies first, and pkgconfig() dependencies second, where
cd4c38
    available
cd4c38
  * Drop explicit pkgconfig BR
cd4c38
  * Fix the directory in which CMake installs pkgconfig files
cd4c38
  * Improved CMake options
cd4c38
  * Build the Doxygen reference manuals
cd4c38
- C (core) and C++ (cpp):
cd4c38
  * Let the -devel package require cmake-filesystem
cd4c38
  * Allow building tests with our own copy of gtest/gmock, which will become
cd4c38
    mandatory when we depend on abseil-cpp and switch to C++17
cd4c38
  * Fix a link error in the core tests when using CMake
cd4c38
  * Manually install grpc_cli (CMake)
cd4c38
  * Add CMake files to the files list for the -devel package
cd4c38
  * Start running some of the core tests in %%check
cd4c38
- Python:
cd4c38
  * Add several patches required for the tests
cd4c38
  * BR gevent for gevent_tests
cd4c38
  * Fix build; in particular, add missing preprocess and build_package_protos
cd4c38
    steps, without which the packages were missing generated proto modules and
cd4c38
    were not
cd4c38
    usable!
cd4c38
  * Add %%py_provides for Fedora 32
cd4c38
  * Drop python3dist(setuptools) BR, redundant with %%pyproject_buildrequires
cd4c38
  * Start running most of the Python tests in %%check
cd4c38
  * Merge the python-grpcio-doc subpackage into grpc-doc
cd4c38
cd4c38
* Tue Feb 16 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.26.0-12
cd4c38
- C (core) and C++ (cpp):
cd4c38
  * Add CMake build support but do not enable it yet; there is still a problem
cd4c38
    where grpc_cli is only built with the tests, and a linking problem when
cd4c38
    building the tests
cd4c38
cd4c38
* Tue Feb 02 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 1.26.0-11
cd4c38
- General:
cd4c38
  * Update summaries and descriptions
cd4c38
  * Update License fields to include licenses from bundled components
cd4c38
  * Fix failure to respect Fedora build flags
cd4c38
  * Use the system shared certificate bundle instead of shipping our own
cd4c38
- CLI:
cd4c38
  * No longer set rpath $ORIGIN
cd4c38
- C (core) and C++ (cpp):
cd4c38
  * Add c_so_version/cpp_so_version macros
cd4c38
  * Split out C++ bindings and shared data into subpackages
cd4c38
  * Drop obsolete ldconfig_scriptlets macro
cd4c38
  * Stop stripping debugging symbols
cd4c38
- Python:
cd4c38
  * Use generated BR’s
cd4c38
  * Build and package Python binding documentation
cd4c38
  * Disable accommodations for older libc’s
cd4c38
  * Patch out -std=gnu99 flag, which is inappropriate for C++
cd4c38
  * Build additional Python packages grpcio_tools, gprcio_channelz,
cd4c38
    grpcio_health_checking, grpcio_reflection, grpcio_status, and
cd4c38
    grpcio_testing
cd4c38
cd4c38
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.26.0-10
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
cd4c38
cd4c38
* Thu Jan 14 08:46:34 CET 2021 Adrian Reber <adrian@lisas.de> - 1.26.0-9
cd4c38
- Rebuilt for protobuf 3.14
cd4c38
cd4c38
* Fri Nov 13 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 1.26.0-8
cd4c38
- build: disable LTO due to rh#1893533
cd4c38
cd4c38
* Thu Sep 24 2020 Adrian Reber <adrian@lisas.de> - 1.26.0-7
cd4c38
- Rebuilt for protobuf 3.13
cd4c38
cd4c38
* Mon Aug 03 2020 Gwyn Ciesla <gwync@protonmail.com> - 1.26.0-6
cd4c38
- Patches for https://github.com/grpc/grpc/pull/21669
cd4c38
cd4c38
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.26.0-5
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
cd4c38
cd4c38
* Sun Jun 14 2020 Adrian Reber <adrian@lisas.de> - 1.26.0-4
cd4c38
- Rebuilt for protobuf 3.12
cd4c38
cd4c38
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.26.0-3
cd4c38
- Rebuilt for Python 3.9
cd4c38
cd4c38
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.26.0-2
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
cd4c38
cd4c38
* Wed Jan 15 2020 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.26.0-1
cd4c38
- Update to 1.26.0
cd4c38
cd4c38
* Thu Dec 19 2019 Orion Poplawski <orion@nwra.com> - 1.20.1-5
cd4c38
- Rebuild for protobuf 3.11
cd4c38
cd4c38
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.20.1-4
cd4c38
- Rebuilt for Python 3.8.0rc1 (#1748018)
cd4c38
cd4c38
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.20.1-3
cd4c38
- Rebuilt for Python 3.8
cd4c38
cd4c38
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.1-2
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
cd4c38
cd4c38
* Fri May 17 2019 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.20.1-1
cd4c38
- Update to 1.20.1
cd4c38
cd4c38
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.0-2
cd4c38
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
cd4c38
cd4c38
* Wed Jan 16 2019 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.18.0-1
cd4c38
- Update to 1.18.0
cd4c38
cd4c38
* Mon Dec 17 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.17.1-3
cd4c38
- Properly store patch in SRPM
cd4c38
cd4c38
* Mon Dec 17 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.1-2
cd4c38
- Build without ruby plugin for Fedora < 30 (Thanks to Mathieu Bridon)
cd4c38
cd4c38
* Fri Dec 14 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.1-1
cd4c38
- Update to 1.17.1 and package python bindings
cd4c38
cd4c38
* Fri Dec 07 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1.17.0-1
cd4c38
- Initial revision