#14 ANNOUNCED: Update to 1.48.0 (close RHBZ#2100262)
Merged 2 years ago by music. Opened 2 years ago by music.
rpms/ music/grpc v1.47.0  into  rawhide

file modified
+8
@@ -27,3 +27,11 @@ 

  /grpc-1.46.1.tar.gz

  /grpc-1.46.2.tar.gz

  /grpc-1.46.3.tar.gz

+ /grpc-1.47.0.tar.gz

+ /data-plane-api-df3b1ab2773147f292c4f175f790c35448328161.tar.gz

+ /googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz

+ /opencensus-proto-0.3.0.tar.gz

+ /xds-cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz

+ /grpc-1.47.1.tar.gz

+ /grpc-1.48.0.tar.gz

+ /data-plane-api-9c42588c956220b48eb3099d186487c2f04d32ec.tar.gz

file removed
-25
@@ -1,25 +0,0 @@ 

- From 1988ebe6547df3a6b45d46a495ff5845cc9740d2 Mon Sep 17 00:00:00 2001

- From: "Benjamin A. Beasley" <code@musicinmybrain.net>

- Date: Fri, 8 Apr 2022 15:34:49 -0400

- Subject: [PATCH] Do not segfault when peer CN is absent

- 

- In HostNameCertificateVerifier::Verify, do not use the

- peer_info->common_name if it is a null pointer.

- ---

-  .../security/credentials/tls/grpc_tls_certificate_verifier.cc  | 3 ++-

-  1 file changed, 2 insertions(+), 1 deletion(-)

- 

- diff --git a/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc b/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc

- index 9bf92c6c0195..7651f17ffcb8 100644

- --- a/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc

- +++ b/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc

- @@ -142,7 +142,8 @@ bool HostNameCertificateVerifier::Verify(

-      const char* common_name = request->peer_info.common_name;

-      // We are using the target name sent from the client as a matcher to match

-      // against identity name on the peer cert.

- -    if (VerifySubjectAlternativeName(common_name, std::string(target_host))) {

- +    if (common_name != nullptr &&

- +        VerifySubjectAlternativeName(common_name, std::string(target_host))) {

-        return true;  // synchronous check

-      }

-    }

file removed
-29
@@ -1,29 +0,0 @@ 

- From e78ef29524ba8b7e197c8fe3cc8012096c87b928 Mon Sep 17 00:00:00 2001

- From: "Benjamin A. Beasley" <code@musicinmybrain.net>

- Date: Tue, 3 May 2022 12:59:51 -0400

- Subject: [PATCH] Fix a segfault in client_lb_end2end_test

- 

- In the SubchannelStreamClient constructor, do not initialize an

- absl::string_view with a null pointer; this leads to strlen() being

- called on the null pointer. Let the absl::string_view be initialized

- with the string literal "SubchannelStreamClient" in this case instead.

- 

- Fixes #29567.

- ---

-  .../ext/filters/client_channel/subchannel_stream_client.cc     | 3 ++-

-  1 file changed, 2 insertions(+), 1 deletion(-)

- 

- diff --git a/src/core/ext/filters/client_channel/subchannel_stream_client.cc b/src/core/ext/filters/client_channel/subchannel_stream_client.cc

- index a596e044568e..1079948bc3a4 100644

- --- a/src/core/ext/filters/client_channel/subchannel_stream_client.cc

- +++ b/src/core/ext/filters/client_channel/subchannel_stream_client.cc

- @@ -50,7 +50,8 @@ SubchannelStreamClient::SubchannelStreamClient(

-        call_allocator_(

-            ResourceQuotaFromChannelArgs(connected_subchannel_->args())

-                ->memory_quota()

- -              ->CreateMemoryAllocator(tracer)),

- +              ->CreateMemoryAllocator(

- +                  (tracer != nullptr) ? tracer : "SubchannelStreamClient")),

-        event_handler_(std::move(event_handler)),

-        retry_backoff_(

-            BackOff::Options()

file removed
-50
@@ -1,50 +0,0 @@ 

- From 4138f4bc0347e090431d2476610cbbcaf1397f41 Mon Sep 17 00:00:00 2001

- From: "Benjamin A. Beasley" <code@musicinmybrain.net>

- Date: Fri, 27 May 2022 14:41:08 -0400

- Subject: [PATCH 1/2] Use gRPC_INSTALL_LIBDIR for pkgconfig files

- 

- Fixes #25635.

- 

- If grpc libraries are installed in <prefix>/lib64, then .pc files should

- be installed in <prefix>/lib64/pkgconfig. Before this commit, they were

- always installed in <prefix>/lib/pkgconfig.

- ---

-  templates/CMakeLists.txt.template | 2 +-

-  1 file changed, 1 insertion(+), 1 deletion(-)

- 

- diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template

- index 9096d9125965..ee3e1782533b 100644

- --- a/templates/CMakeLists.txt.template

- +++ b/templates/CMakeLists.txt.template

- @@ -850,7 +850,7 @@

-        "<%text>${output_filepath}</%text>"

-        @ONLY)

-      install(FILES "<%text>${output_filepath}</%text>"

- -      DESTINATION "lib/pkgconfig/")

- +      DESTINATION "<%text>${gRPC_INSTALL_LIBDIR}/pkgconfig</%text>")

-    endfunction()

-  

-    # gpr .pc file

- 

- From 07a8e936c86b3852ebd14f6fccba53fdffb07a63 Mon Sep 17 00:00:00 2001

- From: "Benjamin A. Beasley" <code@musicinmybrain.net>

- Date: Fri, 27 May 2022 14:45:52 -0400

- Subject: [PATCH 2/2] Re-generate projects

- 

- ---

-  CMakeLists.txt | 2 +-

-  1 file changed, 1 insertion(+), 1 deletion(-)

- 

- diff --git a/CMakeLists.txt b/CMakeLists.txt

- index e7aa97e9fcff..76c9ef0eede9 100644

- --- a/CMakeLists.txt

- +++ b/CMakeLists.txt

- @@ -19820,7 +19820,7 @@ function(generate_pkgconfig name description version requires

-      "${output_filepath}"

-      @ONLY)

-    install(FILES "${output_filepath}"

- -    DESTINATION "lib/pkgconfig/")

- +    DESTINATION "${gRPC_INSTALL_LIBDIR}/pkgconfig")

-  endfunction()

-  

-  # gpr .pc file

file removed
-30
@@ -1,30 +0,0 @@ 

- From 56fd184b8db962a95574142aa2a8cf80df51bf6b Mon Sep 17 00:00:00 2001

- From: "Benjamin A. Beasley" <code@musicinmybrain.net>

- Date: Wed, 8 Jun 2022 17:03:51 -0400

- Subject: [PATCH] =?UTF-8?q?Replace=20deprecated=20Python=20=E2=80=9Cinspec?=

-  =?UTF-8?q?t.getargspec=E2=80=9D?=

- MIME-Version: 1.0

- Content-Type: text/plain; charset=UTF-8

- Content-Transfer-Encoding: 8bit

- 

- This has been deprecated since Python 3.0 and is removed in Python 3.11.

- We can use “inspect.getfullargspec” instead.

- 

- Fixes #29962.

- ---

-  src/python/grpcio/grpc/_auth.py | 2 +-

-  1 file changed, 1 insertion(+), 1 deletion(-)

- 

- diff --git a/src/python/grpcio/grpc/_auth.py b/src/python/grpcio/grpc/_auth.py

- index 2d38320afff6..67113ceb5867 100644

- --- a/src/python/grpcio/grpc/_auth.py

- +++ b/src/python/grpcio/grpc/_auth.py

- @@ -30,7 +30,7 @@ def __init__(self, credentials):

-          self._credentials = credentials

-          # Hack to determine if these are JWT creds and we need to pass

-          # additional_claims when getting a token

- -        self._is_jwt = 'additional_claims' in inspect.getargspec(  # pylint: disable=deprecated-method

- +        self._is_jwt = 'additional_claims' in inspect.getfullargspec(

-              credentials.get_access_token).args

-  

-      def __call__(self, context, callback):

@@ -1,21 +0,0 @@ 

- diff -Naur grpc-1.36.4-original/src/python/grpcio_tests/tests/unit/_compression_test.py grpc-1.36.4/src/python/grpcio_tests/tests/unit/_compression_test.py

- --- grpc-1.36.4-original/src/python/grpcio_tests/tests/unit/_compression_test.py	2021-03-17 15:59:05.000000000 -0400

- +++ grpc-1.36.4/src/python/grpcio_tests/tests/unit/_compression_test.py	2021-03-22 16:46:55.555358822 -0400

- @@ -318,6 +318,7 @@

-          else:

-              self.assertNotCompressed(received_ratio)

-  

- +    @unittest.skip('Wrong compression ratio may occur; unknown cause')

-      def testDisableNextCompressionStreaming(self):

-          server_kwargs = {

-              'compression': grpc.Compression.Deflate,

- @@ -372,6 +373,9 @@

-          def _test_compression(self):

-              self.assertConfigurationCompressed(**kwargs)

-  

- +        _test_compression = unittest.skip(

- +            'Wrong compression ratio may occur; unknown cause'

- +        )(_test_compression)

-          return _test_compression

-  

-      setattr(CompressionTest, _get_compression_test_name(**options),

@@ -1,45 +0,0 @@ 

- diff -Naur grpc-1.40.0-original/setup.py grpc-1.40.0/setup.py

- --- grpc-1.40.0-original/setup.py	2021-09-03 19:20:52.000000000 -0400

- +++ grpc-1.40.0/setup.py	2021-09-07 14:57:55.247990450 -0400

- @@ -29,6 +29,7 @@

-  from distutils import util

-  import os

-  import os.path

- +import pathlib

-  import platform

-  import re

-  import shlex

- @@ -154,6 +155,11 @@

-  # runtime, the shared library must be installed

-  BUILD_WITH_SYSTEM_RE2 = _env_bool_value('GRPC_PYTHON_BUILD_SYSTEM_RE2', 'False')

-  

- +# Export this variable to use the system installation of abseil. You need to

- +# have the header files installed (in /usr/include/absl) and during

- +# runtime, the shared library must be installed

- +BUILD_WITH_SYSTEM_ABSL = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_ABSL', '0') in ('1', 'True')

- +

-  # Export this variable to force building the python extension with a statically linked libstdc++.

-  # At least on linux, this is normally not needed as we can build manylinux-compatible wheels on linux just fine

-  # without statically linking libstdc++ (which leads to a slight increase in the wheel size).

- @@ -296,6 +302,10 @@

-      CORE_C_FILES = filter(lambda x: 'third_party/re2' not in x, CORE_C_FILES)

-      RE2_INCLUDE = (os.path.join('/usr', 'include', 're2'),)

-  

- +if BUILD_WITH_SYSTEM_ABSL:

- +    CORE_C_FILES = filter(lambda x: 'third_party/abseil-cpp' not in x, CORE_C_FILES)

- +    ABSL_INCLUDE = (os.path.join('/usr', 'include'),)

- +

-  EXTENSION_INCLUDE_DIRECTORIES = ((PYTHON_STEM,) + CORE_INCLUDE + ABSL_INCLUDE +

-                                   ADDRESS_SORTING_INCLUDE + CARES_INCLUDE +

-                                   RE2_INCLUDE + SSL_INCLUDE + UPB_INCLUDE +

- @@ -325,6 +335,10 @@

-      EXTENSION_LIBRARIES += ('cares',)

-  if BUILD_WITH_SYSTEM_RE2:

-      EXTENSION_LIBRARIES += ('re2',)

- +if BUILD_WITH_SYSTEM_ABSL:

- +    EXTENSION_LIBRARIES += tuple(

- +        lib.stem[3:] for lib in pathlib.Path('/usr').glob('lib*/libabsl_*.so')

- +    )

-  

-  DEFINE_MACROS = (('_WIN32_WINNT', 0x600),)

-  asm_files = []

@@ -0,0 +1,11 @@ 

+ diff -Naur grpc-1.48.0-original/src/python/grpcio_tests/tests/unit/_dynamic_stubs_test.py grpc-1.48.0/src/python/grpcio_tests/tests/unit/_dynamic_stubs_test.py

+ --- grpc-1.48.0-original/src/python/grpcio_tests/tests/unit/_dynamic_stubs_test.py	2022-07-18 20:40:04.000000000 -0400

+ +++ grpc-1.48.0/src/python/grpcio_tests/tests/unit/_dynamic_stubs_test.py	2022-08-14 15:41:01.208719432 -0400

+ @@ -128,6 +128,7 @@

+  @unittest.skipIf(os.name == "nt", "Windows multiprocessing unsupported")

+  @unittest.skipIf(test_common.running_under_gevent(),

+                   "Import paths do not work with gevent runner.")

+ +@unittest.skip("Tests hang; possibly related to upstream issue #25368?")

+  class DynamicStubTest(unittest.TestCase):

+  

+      def test_sunny_day(self):

@@ -0,0 +1,19 @@ 

+ diff -Naur grpc-1.48.0-original/src/python/grpcio_tests/tests/unit/_compression_test.py grpc-1.48.0/src/python/grpcio_tests/tests/unit/_compression_test.py

+ --- grpc-1.48.0-original/src/python/grpcio_tests/tests/unit/_compression_test.py	2022-07-18 20:40:04.000000000 -0400

+ +++ grpc-1.48.0/src/python/grpcio_tests/tests/unit/_compression_test.py	2022-08-14 11:07:13.780565137 -0400

+ @@ -298,6 +298,7 @@

+                                  multicallable_kwargs, server_kwargs,

+                                  server_handler, _REQUEST)

+  

+ +    @unittest.skip('Wrong compression ratio may occur; unknown cause')

+      def testDisableNextCompressionStreaming(self):

+          server_kwargs = {

+              'compression': grpc.Compression.Deflate,

+ @@ -349,6 +350,7 @@

+  

+      def test_compression(**kwargs):

+  

+ +        @unittest.skip('Wrong compression ratio may occur; unknown cause')

+          def _test_compression(self):

+              self.assertConfigurationCompressed(**kwargs)

+  

file modified
+135 -85
@@ -10,16 +10,64 @@ 

  # is used only at build time, and contributes nothing to the installed files.

  # We take measures to verify this in %%check. As long as we are using our own

  # copy, we use the exact same version as upstream.

+ %global gtest_url https://github.com/google/googletest

+ %global gtest_dir googletest-%{gtest_commit}

  %global gtest_commit 0e402173c97aea7a00749e825b194bfede4f2e45

  #global gtest_version 1.11.0

+ #global gtest_dir googletest-release-#{gtest_version}

  %bcond_with system_gtest

  

+ # =====

+ 

+ # Parameters for third-party sources needed for their .proto files, which

+ # upstream expects to download at build time.

+ #

+ # See https://github.com/grpc/grpc/pull/29254 “[xDS Proto] Enhence gRPC

+ # buildgen for 3rd party proto compilation” and

+ # https://github.com/grpc/grpc/commit/99752b173cfa2fba81dedb482ee4fd74b2a46bb0,

+ # in which the download mechanism was added.

+ #

+ # Check CMakeLists.txt (search for “download_archive”) for a list of these

+ # third-party sources and the commit hashes used in the grpc release.

+ #

+ # Note that we do not treat these additional sources as bundled dependencies,

+ # since (provably) only the .proto files are used.

+ #

+ # In practice, it seems the generated binding code for these protos is not

+ # re-generated when building this package, so we could get by with creating the

+ # appropriate directories and touching an empty file within each. We include

+ # these archives in the source RPM anyway, since they are in some sense part of

+ # the original sources for the generated proto code.

+ 

+ # This will probably never be separately packaged in Fedora, since upstream can

+ # only build with Bazel (and Bazel is such a mess of bundled dependencies that

+ # it is unlikely to every be successfully packaged under the Fedora packaging

+ # guidelines. Note that the URL is a read-only mirror based on

+ # https://github.com/envoyproxy/envoy, with different commit hashes.

+ %global envoy_api_commit 9c42588c956220b48eb3099d186487c2f04d32ec

+ %global envoy_api_url https://github.com/envoyproxy/data-plane-api

+ %global envoy_api_dir data-plane-api-%{envoy_api_commit}

+ 

+ %global googleapis_commit 2f9af297c84c55c8b871ba4495e01ade42476c92

+ %global googleapis_url https://github.com/googleapis/googleapis

+ %global googleapis_dir googleapis-%{googleapis_commit}

+ 

+ %global opencensus_proto_version 0.3.0

+ %global opencensus_proto_url https://github.com/census-instrumentation/opencensus-proto

+ %global opencensus_proto_dir opencensus-proto-%{opencensus_proto_version}

+ 

+ %global xds_commit cb28da3451f158a947dfc45090fe92b07b243bc1

+ %global xds_url https://github.com/cncf/xds

+ %global xds_dir xds-%{xds_commit}

+ 

+ # =====

+ 

  # Bootstrapping breaks the circular dependency on python3dist(xds-protos),

  # which is packaged separately but ultimately generated from grpc sources using

  # the proto compilers in this package; the consequence is that we cannot build

  # the python3-grpcio-admin or python3-grpcio-csds subpackages until after

  # bootstrapping.

- %bcond_with bootstrap

+ %bcond_without bootstrap

  

  # This must be enabled to get grpc_cli, which is apparently considered part of

  # the tests by upstream. This is mentioned in
@@ -31,7 +79,18 @@ 

  %bcond_with python_aio_tests

  

  %ifnarch s390x

- %bcond_without python_gevent_tests

+ # There are currently a significant number of failures like:

+ #

+ #   Exception serializing message!

+ #   Traceback (most recent call last):

+ #     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

+ #       return transformer(message)

+ #              ^^^^^^^^^^^^^^^^^^^^

+ #     File "/usr/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 1082, in SerializeToString

+ #       if not self.IsInitialized():

+ #              ^^^^^^^^^^^^^^^^^^

+ #   AttributeError: 'NoneType' object has no attribute 'IsInitialized'

+ %bcond_with python_gevent_tests

  %else

  # A significant number of Python tests pass in test_lite but fail in

  # test_gevent, mostly by dumping core without a traceback.  Since it is tedious
@@ -64,7 +123,7 @@ 

  # documentation. Instead, we have just dropped all documentation.

  

  Name:           grpc

- Version:        1.46.3

+ Version:        1.48.0

  Release:        %autorelease

  Summary:        RPC library and framework

  
@@ -72,15 +131,15 @@ 

  %global pyversion %(echo '%{version}' | tr -d '~')

  

  # CMakeLists.txt: gRPC_CORE_SOVERSION

- %global c_so_version 24

+ %global c_so_version 26

  # CMakeLists.txt: gRPC_CPP_SOVERSION

  # See https://github.com/abseil/abseil-cpp/issues/950#issuecomment-843169602

  # regarding unusual C++ SOVERSION style (not a single number).

- %global cpp_so_version 1.46

+ %global cpp_so_version 1.48

  

- # The entire source is ASL 2.0 except the following:

+ # The entire source is Apache-2.0 except the following:

  #

- # BSD:

+ # BSD-3-Clause:

  #   - third_party/upb/, except third_party/upb/third_party/lunit/ and

  #     third_party/upb/third_party/utf8_range/

  #     * Potentially linked into any compiled subpackage (but not pure-Python
@@ -88,7 +147,6 @@ 

  #   - third_party/address_sorting/

  #     * Potentially linked into any compiled subpackage (but not pure-Python

  #       subpackages, etc.)

- #

  # MIT:

  #   - third_party/upb/third_party/utf8_range

  #     * Potentially linked into any compiled subpackage (but not pure-Python
@@ -97,7 +155,7 @@ 

  # as well as the following which do not contribute to the base License field or

  # any subpackage License field for the reasons noted:

  #

- # MPLv2.0:

+ # MPL-2.0:

  #   - etc/roots.pem

  #     * Truncated to an empty file in prep; a symlink to the shared system

  #       certificates is used instead
@@ -106,28 +164,28 @@ 

  # ISC:

  #   - src/boringssl/boringssl_prefix_symbols.h

  #     * Removed in prep; not used when building with system OpenSSL

- # BSD:

+ # BSD-3-Clause:

  #   - src/objective-c/*.podspec and

  #     templates/src/objective-c/*.podspec.template

- #     * Unused since the Objective-C bindings are not currently built

- # MIT:

+ #     * Unused since the Objective-C bindings are not currently built;

+ #       furthermore, these seem to be build-system files that would not

+ #       contribute their licenses to the binary RPM contents anyway

+ # NTP:

  #   - third_party/cares/ares_build.h

  #     * Removed in prep; header from system C-Ares used instead

- #   - third_party/rake-compiler-dock/

- #     * Removed in prep, since we build no containers

+ # MIT:

  #   - third_party/upb/third_party/lunit/

  #     * Removed in prep, since there is no obvious way to run the upb tests

- License:        ASL 2.0 and BSD and MIT

+ License:        Apache-2.0 AND BSD-3-Clause AND MIT

  URL:            https://www.grpc.io

  %global forgeurl https://github.com/grpc/grpc/

- # Used only at build time (not a bundled library); see notes at definition of

- # gtest_commit/gtest_version macro for explanation and justification.

- %global gtest_url https://github.com/google/googletest

- %global gtest_archivename googletest-%{gtest_commit}

- #global gtest_archivename googletest-release-#{gtest_version}

  Source0:        %{forgeurl}/archive/v%{srcversion}/grpc-%{srcversion}.tar.gz

- Source1:        %{gtest_url}/archive/%{gtest_commit}/%{gtest_archivename}.tar.gz

- #Source1:        #{gtest_url}/archive/release-#{gtest_version}/#{gtest_archivename}.tar.gz

+ Source1:        %{gtest_url}/archive/%{gtest_commit}/%{gtest_dir}.tar.gz

+ #Source1:        #{gtest_url}/archive/release-#{gtest_version}/#{gtest_dir}.tar.gz

+ Source2:        %{envoy_api_url}/archive/%{envoy_api_commit}/%{envoy_api_dir}.tar.gz

+ Source3:        %{googleapis_url}/archive/%{googleapis_commit}/%{googleapis_dir}.tar.gz

+ Source4:        %{opencensus_proto_url}/archive/v%{opencensus_proto_version}/%{opencensus_proto_dir}.tar.gz

+ Source5:        %{xds_url}/archive/%{xds_commit}/%{xds_dir}.tar.gz

  

  # Downstream grpc_cli man pages; hand-written based on “grpc_cli help” output.

  Source100:      grpc_cli.1
@@ -268,10 +326,6 @@ 

  #

  # In fact, this may not be needed, since only testing code is patched.

  Patch:          grpc-1.39.0-system-crypto-policies.patch

- # Add an option GRPC_PYTHON_BUILD_SYSTEM_ABSL to go with the gRPC_ABSL_PROVIDER

- # option already provided upstream. See

- # https://github.com/grpc/grpc/issues/25559.

- Patch:          grpc-1.40.0-python-grpcio-use-system-abseil.patch

  # Fix errors like:

  #   TypeError: super(type, obj): obj must be an instance or subtype of type

  # It is not clear why these occur.
@@ -284,7 +338,7 @@ 

  # run. It is not clear that this is a real problem. Any help in understanding

  # the actual cause well enough to fix this or usefully report it upstream is

  # welcome.

- Patch:          grpc-1.36.4-python-grpcio_tests-skip-compression-tests.patch

+ Patch:          grpc-1.48.0-python-grpcio_tests-skip-compression-tests.patch

  # The upstream requirement to link gtest/gmock from grpc_cli is spurious.

  # Remove it. We still have to build the core tests and link a test library

  # (libgrpc++_test_config.so…)
@@ -293,42 +347,6 @@ 

  # suppose that the unpatched code must be correct for how upstream runs the

  # tests, somehow.

  Patch:          grpc-1.45.0-python_wrapper-path.patch

- # Do not segfault when peer CN is absent

- Patch:          %{forgeurl}/pull/29359.patch

- # Fix a segfault in client_lb_end2end_test

- #

- # In the SubchannelStreamClient constructor, do not initialize an

- # absl::string_view with a null pointer; this lead to strlen() being

- # called on the null pointer. Let the absl::string_view be empty in this

- # case instead.

- #

- # Fixes #29567.

- #

- # “Segfault in client_lb_end2end_test due to absl::string_view(nullptr)”

- # https://github.com/grpc/grpc/issues/29567

- Patch:          %{forgeurl}/pull/29568.patch

- # Use gRPC_INSTALL_LIBDIR for pkgconfig files

- # https://github.com/grpc/grpc/pull/29826

- #

- # Fixes:

- #

- # Should install pkgconfig files under gRPC_INSTALL_LIBDIR

- # https://github.com/grpc/grpc/issues/25635

- Patch:          %{forgeurl}/pull/29826.patch

- # Replace deprecated Python “inspect.getargspec”

- # https://github.com/grpc/grpc/pull/29963

- #

- # Fixes:

- #

- # Uses deprecated “inspect.getargspec”, removed in Python 3.11

- # https://github.com/grpc/grpc/issues/29962

- #

- # Partially fixes:

- #

- # grpc fails to build with Python 3.11: AttributeError: module 'inspect' has no

- #   attribute 'getargspec'

- # https://bugzilla.redhat.com/show_bug.cgi?id=2095027

- Patch:          %{forgeurl}/pull/29963.patch

  # Skip failing ChannelzServicerTest tests on Python 3.11

  #

  # Partially works around:
@@ -340,6 +358,13 @@ 

  # TODO: Attempt to reproduce this outside the RPM build environment and submit

  # a useful/actionable upstream bug report.

  Patch:          grpc-1.46.3-ChannelzServicerTest-python3.11-regressions.patch

+ # Running Python “test_lite”, in grpcio_tests,

+ # unit._dynamic_stubs_test.DynamicStubTest.test_grpc_tools_unimportable hangs.

+ # This may be related to:

+ #   [FLAKE] DynamicStubTest timeout under gevent macOS

+ #   https://github.com/grpc/grpc/issues/25368

+ # The patch simply skips the test.

+ Patch:          grpc-1.48.0-python-grpcio_tests-DynamicStubTest-hang.patch

  

  Requires:       grpc-data = %{version}-%{release}

  
@@ -397,7 +422,7 @@ 

  

  %package data

  Summary:        Data for gRPC bindings

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  Requires:       ca-certificates
@@ -409,7 +434,7 @@ 

  

  %package doc

  Summary:        Documentation and examples for gRPC

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  Obsoletes:      python-grpcio-doc < 1.26.0-13
@@ -564,7 +589,7 @@ 

  %if %{without bootstrap}

  %package -n python3-grpcio-admin

  Summary:        A collection of admin services

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-admin
@@ -597,7 +622,7 @@ 

  %if %{without bootstrap}

  %package -n python3-grpcio-csds

  Summary:        xDS configuration dump library

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-csds
@@ -617,7 +642,7 @@ 

  

  %package -n python3-grpcio-channelz

  Summary:        Channel Level Live Debug Information Service for gRPC

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-channelz
@@ -629,7 +654,7 @@ 

  

  %package -n python3-grpcio-health-checking

  Summary:        Standard Health Checking Service for gRPC

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-health-checking
@@ -641,7 +666,7 @@ 

  

  %package -n python3-grpcio-reflection

  Summary:        Standard Protobuf Reflection Service for gRPC

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-reflection
@@ -653,7 +678,7 @@ 

  

  %package -n python3-grpcio-status

  Summary:        Status proto mapping for gRPC

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-status
@@ -665,7 +690,7 @@ 

  

  %package -n python3-grpcio-testing

  Summary:        Testing utilities for gRPC Python

- License:        ASL 2.0

+ License:        Apache-2.0

  BuildArch:      noarch

  

  %description -n python3-grpcio-testing
@@ -701,7 +726,7 @@ 

  # Copy in the needed gtest/gmock implementations.

  %setup -q -T -D -b 1 -n grpc-%{srcversion}

  rm -rvf 'third_party/googletest'

- mv '../%{gtest_archivename}' 'third_party/googletest'

+ mv '../%{gtest_dir}' 'third_party/googletest'

  %else

  # Patch CMakeLists for external gtest/gmock.

  #
@@ -724,6 +749,31 @@ 

  '\1\2\n\1gtest\n\1gmock/' CMakeLists.txt

  %endif

  

+ # Extract the source tarballs needed for their .proto files, which upstream

+ # expects to download at build time.

+ %setup -q -T -D -b 2 -n grpc-%{srcversion}

+ %setup -q -T -D -b 3 -n grpc-%{srcversion}

+ %setup -q -T -D -b 4 -n grpc-%{srcversion}

+ %setup -q -T -D -b 5 -n grpc-%{srcversion}

+ {

+   awk '$1 ~ /^(#|$)/ { next }; 1' <<'EOF'

+ ../%{envoy_api_dir}/ third_party/envoy-api/

+ ../%{googleapis_dir}/ third_party/googleapis/

+ ../%{opencensus_proto_dir}/ third_party/opencensus-proto/

+ ../%{xds_dir}/ third_party/xds/

+ EOF

+ } | while read -r fromdir todir

+ do

+   # Remove everything from the external source tree except the .proto files, to

+   # prove that none of it is bundled.

+   find "${fromdir}" -type f ! -name '*.proto' -print -delete

+   # Remove the empty directory corresponding to the git submodule

+   rm -rvf "${todir}"

+   # Move the extracted source, to the location where the git submodule would be

+   # in a git checkout that included it.

+   mv "${fromdir}" "${todir}"

+ done

+ 

  echo '===== Removing bundled xxhash =====' 2>&1

  # Remove bundled xxhash

  rm -rvf third_party/xxhash
@@ -746,7 +796,6 @@ 

  rm -rfv \

      src/boringssl/boringssl_prefix_symbols.h \

      third_party/cares/ares_build.h \

-     third_party/rake-compiler-dock \

      third_party/upb/third_party/lunit

  # Since we are replacing roots.pem with a symlink to the shared system

  # certificates, we do not include its license (MPLv2.0) in any License field.
@@ -784,7 +833,7 @@ 

  # We need to adjust the C++ standard to avoid abseil-related linker errors. For

  # the main C++ build, we can use CMAKE_CXX_STANDARD. For extensions, examples,

  # etc., we must patch.

- sed -r -i 's/(std=c\+\+)11/\1%{cpp_std}/g' \

+ sed -r -i 's/(std=c\+\+)14/\1%{cpp_std}/g' \

      setup.py grpc.gyp Rakefile \

      examples/cpp/*/Makefile \

      examples/cpp/*/CMakeLists.txt \
@@ -844,7 +893,6 @@ 

  export PYTHONPATH

  

  # ~~ grpcio ~~

- # Note that we had to patch in the GRPC_PYTHON_BUILD_SYSTEM_ABSL option.

  export GRPC_PYTHON_BUILD_WITH_CYTHON='True'

  export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL='True'

  export GRPC_PYTHON_BUILD_SYSTEM_ZLIB='True'
@@ -853,17 +901,19 @@ 

  export GRPC_PYTHON_BUILD_SYSTEM_ABSL='True'

  export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY='True'

  export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD='False'

- # We must set GRPC_PYTHON_CFLAGS to avoid unwanted defaults. We take the

- # upstream flags except that we remove -std=c99, which is inapplicable to the

- # C++ parts of the extension.

+ # Use the upstream defaults for GRPC_PYTHON_CFLAGS adn GRPC_PYTHON_LDFLAGS,

+ # except:

+ #

+ # - Add any flags necessary for using the system protobuf library.

+ # - Drop -lpthread and -lrt, since these are not needed on glibc 2.34 and

+ #   later.

+ # - Do not link libgcc statically (-static-libgcc).

  #

- # We must set GRPC_PYTHON_LDFLAGS to avoid unwanted defaults. The upstream

- # flags attempt to statically link libgcc, so we do not need any of them. Since

- # we forcibly unbundle protobuf, we need to add linker flags for protobuf

- # ourselves.

- export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions $(

+ # See also:

+ # https://developers.redhat.com/articles/2021/12/17/why-glibc-234-removed-libpthread

+ export GRPC_PYTHON_CFLAGS="$(

    pkg-config --cflags protobuf

- )"

+ ) -std=c++%{cpp_std} -fvisibility=hidden -fno-wrapv -fno-exceptions"

  export GRPC_PYTHON_LDFLAGS="$(pkg-config --libs protobuf)"

  %py3_build

  %{__python3} %{py_setup} %{?py_setup_args} install \

file modified
+5 -1
@@ -1,2 +1,6 @@ 

- SHA512 (grpc-1.46.3.tar.gz) = e80322b65c6f8d64dc91bce9f612119191e8d329cac2fbc5da6dad9a2a7ccaa7a501470ed483e555c3ba596e8aff796fbda2747f09e9c4329aed3de4d9b6b666

+ SHA512 (grpc-1.48.0.tar.gz) = 558c659b325eb2f64f6caf78c0701eaaf3d9ae35f6d25ccd69b8995d5b82b98ca1a7ef9f497a0a1dab5914d2328c044c108373152426a15045d0c978b27f3503

  SHA512 (googletest-0e402173c97aea7a00749e825b194bfede4f2e45.tar.gz) = 5c5eaf6ff9f3c1bca025b7ef0234ba97232ba85b43e6354a92f49b7208f5c47581ebaf18bf58618498e5d264f2620c2b6676e81bb0f7df77112b96ba271ececf

+ SHA512 (data-plane-api-9c42588c956220b48eb3099d186487c2f04d32ec.tar.gz) = 9b1ceff5d018e70b36e02aa1b583f5495b0eb92506055bf6913d2e7ef401d3602cba8723efbc178ee31fdef9aba510fc2284612ebe22a24b5b4a703f07099897

+ SHA512 (googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92.tar.gz) = cdeefae807df7097174b4bb28c0900b06a68d424c00ebba4ff5add260c9c651351d5e429bfc5de42f95ebb75dadec313f7bd3991c2fa476c9104f9ea656acad4

+ SHA512 (opencensus-proto-0.3.0.tar.gz) = 39231a495dfdccfc8267d1e6af2ac624feea611a8691c10ec570de2194b352e4a9c3b0ce1606414fb98e5d77c66873bed4a9e56512efa12b267b8a91e0c5851e

+ SHA512 (xds-cb28da3451f158a947dfc45090fe92b07b243bc1.tar.gz) = eb5878764503872c18b8750b20e2c2e2224e73d9601197752cea7e1e4171899474ad4f39aacc80d6c1b57a50b2161d39f219df64ffb250d045af482dae01ea79

no initial comment

rebased onto ab88b4f45eb96e99bd6d50b3242f52962b36825c

2 years ago

rebased onto fe1acc0ca13bc850a30952a53b69168f4ebd95c4

2 years ago

rebased onto a90eadb0cc3d7c205ae1124e1945c6ab2de90c37

2 years ago

Build succeeded.

rebased onto 498bd737e2284784a9771d864b4b3b1bf5bcebe3

2 years ago

Build succeeded.

rebased onto ecb8da142fff23cc0abfee034dc8750405b59fca

2 years ago

rebased onto cc7cbca4b6c7f3c942946c324dc61480f78b3a3c

2 years ago

rebased onto 9091490

2 years ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

1 new commit added

  • WIP: Update to grpc 1.48.0 (close RHBZ#2100262)
2 years ago

3 new commits added

  • WIP: Update to grpc 1.48.0 (close RHBZ#2100262)
  • Update to 1.47.1
  • Update License fields to SPDX
2 years ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

3 new commits added

  • WIP: Update to grpc 1.48.0 (close RHBZ#2100262)
  • Update to 1.47.1
  • Update License fields to SPDX
2 years ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

3 new commits added

  • Update to grpc 1.48.0 (close RHBZ#2100262)
  • Update to 1.47.1
  • Update License fields to SPDX
2 years ago

Build succeeded.

Build succeeded.

3 new commits added

  • Update to grpc 1.48.0 (bootstrap build)
  • Update to 1.47.1
  • Update License fields to SPDX
2 years ago

Updated so that the initial build after merging the PR will be a bootstrap one—needed due to the concurrent abseil-cpp update.

I’ve opened side tags f38-build-side-57000 and f37-build-side-57002. After I finish building abseil-cpp, I’m ready to merge this PR to Rawhide and F37 and start building in those side tags, hoping to get most of the dependent packages rebuilt by the announced update date of 2022-08-21, and the side tag merged in time for the 2022-08-23 F37 beta freeze.

Pull-Request has been merged by music

2 years ago

Build succeeded.

Tracking rebuilds in the side tags. Some of these are for grpc only, some for abseil-cpp only, some for both.

☑ Rawhide ☑ F37