SHA256
1
0
forked from jengelh/grpc

Compare commits

...

4 Commits

9 changed files with 164 additions and 28 deletions

View File

@ -15,8 +15,8 @@ Subject: [PATCH] [ARM] Unaligned access fixes
diff --git a/xxhash.h b/xxhash.h
index 08ab794..4cf3f0d 100644
--- a/xxhash.h
+++ b/xxhash.h
--- a/third_party/xxhash/xxhash.h
+++ b/third_party/xxhash/xxhash.h
@@ -1402,28 +1402,18 @@ XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
*/

View File

@ -9,8 +9,8 @@ Subject: [PATCH] Fix compilation on RHEL 7 ppc64le (gcc 4.8)
diff --git a/xxhash.h b/xxhash.h
index 4cf3f0d..b07de0c 100644
--- a/xxhash.h
+++ b/xxhash.h
--- a/third_party/xxhash/xxhash.h
+++ b/third_party/xxhash/xxhash.h
@@ -4119,7 +4119,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
const void* XXH_RESTRICT secret)
{

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Tue Mar 25 21:48:57 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.71
* Fix call attempt tracer lifetimes for retries
* Fixed a bug that caused grpc to stop triggering connection
attempts
* Added support for service "deprecated" option
- Rework link-failure.patch to not link grpc_unsecure
into libgrpc(++). [boo#1237422]
- Make build recipe POSIX sh compatible.
-------------------------------------------------------------------
Wed Feb 12 14:22:59 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Add telemetry.patch
-------------------------------------------------------------------
Sun Feb 9 22:37:18 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.70.1
* grpc++ begins to require C++17 or later to build and use it
* chttp2_server: fix a race between connection starting and it
being orphaned
* chttp2Server: fix a race between connection manager updates
and handshake
- Add link-failure.patch, return-values.patch
-------------------------------------------------------------------
Sat Apr 27 09:40:46 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package grpc
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,11 +16,11 @@
#
%define lver 40
%define lverp 1_63
%define lver 46
%define lverp 1_71
%define src_install_dir /usr/src/%name
Name: grpc
Version: 1.63.0
Version: 1.71.0
Release: 0
Summary: HTTP/2-based Remote Procedure Call implementation
License: Apache-2.0
@ -29,9 +29,12 @@ URL: https://grpc.io/
Source: https://github.com/grpc/grpc/archive/v%version.tar.gz
Source2: %name-rpmlintrc
Patch1: terminate.patch
Patch4: ARM-Unaligned-access-fixes.patch
Patch5: Fix-compilation-on-RHEL-7-ppc64le-gcc-4.8.patch
BuildRequires: abseil-cpp-devel
Patch2: link-failure.patch
Patch3: return-values.patch
Patch4: telemetry.patch
Patch14: ARM-Unaligned-access-fixes.patch
Patch15: Fix-compilation-on-RHEL-7-ppc64le-gcc-4.8.patch
BuildRequires: abseil-cpp-devel >= 20240722
BuildRequires: cmake
BuildRequires: fdupes
%if 0%{?suse_version} < 1550
@ -84,7 +87,7 @@ Summary: A small protobuf implementation in C
Group: System/Libraries
%description -n libupb%lver
μpb (often written 'upb') is a small protobuf implementation written in C.
μpb (often written "upb") is a small protobuf implementation written in C.
upb generates a C API for creating, parsing, and serializing messages as
declared in .proto files. upb is heavily arena-based: all messages always live
@ -110,7 +113,7 @@ Group: Development/Tools/Building
Requires: libupb%lver = %version
%description -n upb-devel
μpb (often written 'upb') is a small protobuf implementation written in C.
μpb (often written "upb") is a small protobuf implementation written in C.
upb generates a C API for creating, parsing, and serializing messages as
declared in .proto files. upb is heavily arena-based: all messages always live
@ -127,8 +130,7 @@ BuildArch: noarch
This subpackage contains source code of the gRPC reference implementation.
%prep
%autosetup -N
%patch -P 1 -p1
%autosetup -p1
find "." -type f -exec grep -l '/usr/bin/python' {} + |
xargs -r perl -i -lpe \
's{#! ?/usr/bin/python\S*}{#!/usr/bin/python3}g;'
@ -138,13 +140,10 @@ find "." -type f -exec grep -l '/usr/bin/env ' {} + |
s{#! ?/usr/bin/env sh}{#!/bin/sh}g;
s{#! ?/usr/bin/env bash}{#!/bin/bash}g;
s{#! ?/usr/bin/env }{#!/usr/bin/}g;'
pushd third_party/xxhash
%patch -P 4 -P 5 -p1
popd
rm -Rf third_party/abseil-cpp/
%build
%if 0%{?suse_version} < 1550
%if 0%{?suse_version} < 1600
export CC=gcc-12
export CXX=g++-12
%endif
@ -157,7 +156,7 @@ cp -a /usr/src/opencensus-proto third_party/
export CFLAGS="%optflags -Wno-error"
export CXXFLAGS="$CFLAGS"
find "." -type f -exec grep '/usr/bin/env ' {} + || :
pushd .
s="$PWD"
%cmake -DgRPC_INSTALL=ON \
-DgRPC_INSTALL_LIBDIR:PATH="%_lib" \
-DgRPC_INSTALL_CMAKEDIR:PATH="%_libdir/cmake/grpc" \
@ -170,24 +169,24 @@ pushd .
-DgRPC_ZLIB_PROVIDER=package \
-DCMAKE_CXX_STANDARD=17
%cmake_build
popd
cd "$s"
find "." -type f -exec grep '/usr/bin/env ' {} + || :
%install
b="%buildroot"
%cmake_install
pushd "$b/usr"
cd "$b/usr"
rm -fv lib/*.a share/grpc/*.pem
popd
cd -
# Install sources
pushd %__builddir
cd "%__builddir"
rm -fv CMakeFiles/*.log
make clean
find . -type f "(" -name "*.so" -o -name "*.o" -o -name ".git*" -o \
-name "*.bin" -o -name "*.out" ")" -exec rm -Rfv {} +
popd
cd -
# Don't include abseil-cpp in sources
rm -fr third_party/abseil-cpp/*
# Don't include non-deterministic log in sources

33
link-failure.patch Normal file
View File

@ -0,0 +1,33 @@
From: Jan Engelhardt <ej@inai.de>
Date: 2025-02-09 18:51:55.470853259 +0100
happened since about 1.63 (last known good 1.62.x)
[ 9s] /usr/bin/cc -fPIC -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g -Wno-error -O2 -g -DNDEBUG -Wl,--dependency-file=CMakeFiles/upb_textformat_lib.dir/link.d -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -shared -Wl,-soname,libupb_textformat_lib.so.45 -o libupb_textformat_lib.so.45.0.0 CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/lex/atoi.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/lex/round_trip.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/lex/strtod.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/lex/unicode.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/message/copy.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/message/merge.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/def_pool.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/def_type.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/desc_state.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/enum_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/enum_reserved_range.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/enum_value_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/extension_range.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/field_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/file_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/internal/def_builder.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/internal/strdup2.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/message.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/message_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/message_reserved_range.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/method_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/oneof_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/reflection/service_def.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/text/encode.c.o CMakeFiles/upb_textformat_lib.dir/third_party/upb/upb/text/internal/encode.c.o -Wl,-rpath,/home/abuild/rpmbuild/BUILD/grpc-1.70.1-build/grpc-1.70.1/build: -ldl -lm -lrt libupb_mini_descriptor_lib.so.45.0.0 libupb_wire_lib.so.45.0.0 libutf8_range_lib.so.45.0.0 libupb_message_lib.so.45.0.0 libupb_base_lib.so.45.0.0 libupb_mem_lib.so.45.0.0 -ldl -lm -lrt
[ 9s] /home/abuild/rpmbuild/BUILD/grpc-1.70.1-build/grpc-1.70.1/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h:5195:(.text+0x3b0): undefined reference to `google__protobuf__ServiceOptions_msg_init'
[ 9s] collect2: error: ld returned 1 exit status
---
CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
Index: grpc-1.70.1/CMakeLists.txt
===================================================================
--- grpc-1.70.1.orig/CMakeLists.txt
+++ grpc-1.70.1/CMakeLists.txt
@@ -4054,6 +4054,7 @@ add_library(upb_json_lib ${_gRPC_STATIC_
third_party/upb/upb/reflection/method_def.c
third_party/upb/upb/reflection/oneof_def.c
third_party/upb/upb/reflection/service_def.c
+ src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
)
target_compile_features(upb_json_lib PUBLIC cxx_std_17)
@@ -4311,6 +4312,7 @@ add_library(upb_textformat_lib ${_gRPC_S
third_party/upb/upb/reflection/service_def.c
third_party/upb/upb/text/encode.c
third_party/upb/upb/text/internal/encode.c
+ src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
)
target_compile_features(upb_textformat_lib PUBLIC cxx_std_17)

54
return-values.patch Normal file
View File

@ -0,0 +1,54 @@
From: Jan Engelhardt <ej@inai.de>
Date: 2025-02-09 21:28:54.517217439 +0100
Fix some terrible code.
[ 28s] /home/abuild/rpmbuild/BUILD/grpc-1.70.1-build/grpc-1.70.1/src/core/lib/transport/call_state.h:157:3: error: control reaches end of non-void function [-Werror=return-type]
---
src/core/lib/transport/call_state.h | 5 +++++
1 file changed, 5 insertions(+)
Index: grpc-1.70.1/src/core/lib/transport/call_state.h
===================================================================
--- grpc-1.70.1.orig/src/core/lib/transport/call_state.h
+++ grpc-1.70.1/src/core/lib/transport/call_state.h
@@ -154,6 +154,7 @@ class CallState {
case ClientToServerPullState::kTerminated:
return "Terminated";
}
+ return "Undefined";
}
template <typename Sink>
friend void AbslStringify(Sink& out, ClientToServerPullState state) {
@@ -184,6 +185,7 @@ class CallState {
case ClientToServerPushState::kFinished:
return "Finished";
}
+ return "Undefined";
}
template <typename Sink>
friend void AbslStringify(Sink& out, ClientToServerPushState state) {
@@ -234,6 +236,7 @@ class CallState {
case ServerToClientPullState::kTerminated:
return "Terminated";
}
+ return "Undefined";
}
template <typename Sink>
friend void AbslStringify(Sink& out, ServerToClientPullState state) {
@@ -274,6 +277,7 @@ class CallState {
case ServerToClientPushState::kFinished:
return "Finished";
}
+ return "Undefined";
}
template <typename Sink>
friend void AbslStringify(Sink& out, ServerToClientPushState state) {
@@ -304,6 +308,7 @@ class CallState {
case ServerTrailingMetadataState::kPulledCancel:
return "PulledCancel";
}
+ return "Undefined";
}
template <typename Sink>
friend void AbslStringify(Sink& out, ServerTrailingMetadataState state) {

22
telemetry.patch Normal file
View File

@ -0,0 +1,22 @@
From: <ej@inai.de>
Date: 2025-02-12 15:22:18.058482440 +0100
CMakeLists.txt is using a bundled copy of otel, so there is no .pc file to depend on.
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: grpc-1.71.0/CMakeLists.txt
===================================================================
--- grpc-1.71.0.orig/CMakeLists.txt
+++ grpc-1.71.0/CMakeLists.txt
@@ -51170,7 +51170,7 @@ generate_pkgconfig(
"gRPC++ OpenTelemetry Plugin"
"OpenTelemetry Plugin for gRPC C++"
"${gRPC_CPP_VERSION}"
- "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api"
+ "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++"
"libcares openssl re2 zlib"
"-lgrpcpp_otel_plugin"
"-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mem_lib -lupb_base_lib"

BIN
v1.63.0.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
v1.71.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.