[packages/grpc] - updated to 1.81.1 (new sonames, opentelemetry support)
qboosh
qboosh at pld-linux.org
Tue Jun 23 20:33:10 CEST 2026
commit 98d3437c0bbb8d91ccac9d259c474c5ebcd3edbe
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue Jun 23 20:33:38 2026 +0200
- updated to 1.81.1 (new sonames, opentelemetry support)
grpc-opentelemetry.patch | 11 ++++++++++
grpc-system-absl.patch | 6 ++---
grpc.spec | 57 ++++++++++++++++++++++++++++++++----------------
3 files changed, 52 insertions(+), 22 deletions(-)
---
diff --git a/grpc.spec b/grpc.spec
index 0ccb0a9..11cdd42 100644
--- a/grpc.spec
+++ b/grpc.spec
@@ -4,23 +4,25 @@
#
# Conditional build:
%bcond_without apidocs # (Python) API docs build
+%bcond_without opentelemetry # OpenTelemetry support
%bcond_without python3 # CPython 3.x module
%bcond_without systemd # systemd support
#
Summary: RPC library and framework
Summary(pl.UTF-8): Biblioteka i szkielet RPC
Name: grpc
-Version: 1.78.1
+Version: 1.81.1
Release: 1
License: Apache v2.0
Group: Libraries
#Source0Download: https://github.com/grpc/grpc/releases
Source0: https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 9f22f0daeb0f0d75c8206654e4fc79b3
+# Source0-md5: 939012ba93545dd8e3055f05d83d7e14
Source1: https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0/opencensus-proto-0.3.0.tar.gz
# Source1-md5: 0b208800a68548cbf2d4bff763c050a2
Patch0: python-deps.patch
Patch1: %{name}-system-absl.patch
+Patch2: %{name}-opentelemetry.patch
URL: https://grpc.io/
BuildRequires: abseil-cpp-devel >= 20220623
BuildRequires: c-ares-devel >= 1.13.0
@@ -28,6 +30,9 @@ BuildRequires: cmake >= 3.16
BuildRequires: gcc >= 6:4.7
BuildRequires: libstdc++-devel >= 6:7
BuildRequires: openssl-devel
+%if %{with opentelemetry}
+BuildRequires: opentelemetry-cpp-devel
+%endif
BuildRequires: pkgconfig
BuildRequires: protobuf-devel >= 3.12
# with re2Config for cmake
@@ -38,9 +43,9 @@ BuildRequires: rpmbuild(macros) >= 1.714
%{?with_systemd:BuildRequires: systemd-devel >= 1:233}
BuildRequires: zlib-devel
%if %{with python3}
-BuildRequires: python3 >= 1:3.7
+BuildRequires: python3 >= 1:3.10
BuildRequires: python3-Cython >= 3.1.1
-BuildRequires: python3-modules >= 1:3.7
+BuildRequires: python3-modules >= 1:3.10
BuildRequires: python3-setuptools
%endif
%if %{with apidocs}
@@ -54,7 +59,7 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# Libs rquire non-function grpc_core::ExecCtx::exec_ctx_ and grpc_core::ApplicationCallbackExecCtx::callback_exec_ctx_ symbols.
# Wildcard '+' chars to workaround escape incompatibilities between rpm versions.
-%define skip_post_check_so libgrpc...so.* libgrpc.._channelz.so.* libgrpc.._reflection.so.* libgrpc.._unsecure.so.*
+%define skip_post_check_so libgrpc...so.* libgrpc.._channelz.so.* libgrpc.._reflection.so.* libgrpc.._unsecure.so.* libgrpcpp_otel_plugin.so.*
%description
gRPC is a modern, open source, high-performance remote procedure call
@@ -128,6 +133,7 @@ Dokumentacja API biblioteki Pythona gRPC.
%setup -q
%patch -P0 -p1
%patch -P1 -p1
+%patch -P2 -p1
%{__rm} doc/.gitignore
@@ -141,10 +147,14 @@ Dokumentacja API biblioteki Pythona gRPC.
-DgRPC_INSTALL_LIBDIR:PATH=%{_lib} \
-DgRPC_ABSL_PROVIDER=package \
-DgRPC_CARES_PROVIDER=package \
+ -DgRPC_OPENTELEMETRY_PROVIDER=package \
-DgRPC_PROTOBUF_PROVIDER=package \
-DgRPC_RE2_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package \
-DgRPC_ZLIB_PROVIDER=package \
+%if %{with opentelemetry}
+ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN:BOOL=ON \
+%endif
-DgRPC_DOWNLOAD_ARCHIVES:BOOL=OFF \
-DgRPC_USE_SYSTEMD:BOOL=%{__ON_OFF systemd}
@@ -206,35 +216,39 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/grpc_python_plugin
%attr(755,root,root) %{_bindir}/grpc_ruby_plugin
%{_libdir}/libgpr.so.*.*.*
-%ghost %{_libdir}/libgpr.so.52
+%ghost %{_libdir}/libgpr.so.54
%{_libdir}/libgrpc.so.*.*.*
-%ghost %{_libdir}/libgrpc.so.52
+%ghost %{_libdir}/libgrpc.so.54
%{_libdir}/libgrpc_authorization_provider.so.*.*.*
-%ghost %{_libdir}/libgrpc_authorization_provider.so.1.78
+%ghost %{_libdir}/libgrpc_authorization_provider.so.1.81
%{_libdir}/libgrpc_plugin_support.so.*.*.*
-%ghost %{_libdir}/libgrpc_plugin_support.so.1.78
+%ghost %{_libdir}/libgrpc_plugin_support.so.1.81
%{_libdir}/libgrpc_unsecure.so.*.*.*
-%ghost %{_libdir}/libgrpc_unsecure.so.52
+%ghost %{_libdir}/libgrpc_unsecure.so.54
%{_libdir}/libgrpc++.so.*.*.*
-%ghost %{_libdir}/libgrpc++.so.1.78
+%ghost %{_libdir}/libgrpc++.so.1.81
%{_libdir}/libgrpc++_alts.so.*.*.*
-%ghost %{_libdir}/libgrpc++_alts.so.1.78
+%ghost %{_libdir}/libgrpc++_alts.so.1.81
%{_libdir}/libgrpc++_error_details.so.*.*.*
-%ghost %{_libdir}/libgrpc++_error_details.so.1.78
+%ghost %{_libdir}/libgrpc++_error_details.so.1.81
%{_libdir}/libgrpc++_reflection.so.*.*.*
-%ghost %{_libdir}/libgrpc++_reflection.so.1.78
+%ghost %{_libdir}/libgrpc++_reflection.so.1.81
%{_libdir}/libgrpc++_unsecure.so.*.*.*
-%ghost %{_libdir}/libgrpc++_unsecure.so.1.78
+%ghost %{_libdir}/libgrpc++_unsecure.so.1.81
%{_libdir}/libgrpcpp_channelz.so.*.*.*
-%ghost %{_libdir}/libgrpcpp_channelz.so.1.78
+%ghost %{_libdir}/libgrpcpp_channelz.so.1.81
+%if %{with opentelemetry}
+%{_libdir}/libgrpcpp_otel_plugin.so.*.*.*
+%ghost %{_libdir}/libgrpcpp_otel_plugin.so.1.81
+%endif
# TODO: use system libs instead
%{_libdir}/libaddress_sorting.so.*.*.*
-%ghost %{_libdir}/libaddress_sorting.so.52
+%ghost %{_libdir}/libaddress_sorting.so.54
%{_libdir}/libupb_*.so.*.*.*
-%ghost %{_libdir}/libupb_*.so.52
+%ghost %{_libdir}/libupb_*.so.54
# TODO: use system libs instead
%{_libdir}/libutf8_range_lib.so.*.*.*
-%ghost %{_libdir}/libutf8_range_lib.so.52
+%ghost %{_libdir}/libutf8_range_lib.so.54
%{_datadir}/grpc
%files devel
@@ -250,6 +264,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/libgrpc++_reflection.so
%{_libdir}/libgrpc++_unsecure.so
%{_libdir}/libgrpcpp_channelz.so
+%if %{with opentelemetry}
+%{_libdir}/libgrpcpp_otel_plugin.so
+%endif
%{_libdir}/libaddress_sorting.so
%{_libdir}/libupb_*.so
%{_libdir}/libutf8_range_lib.so
@@ -262,7 +279,9 @@ rm -rf $RPM_BUILD_ROOT
%{_pkgconfigdir}/grpc_unsecure.pc
%{_pkgconfigdir}/grpc++.pc
%{_pkgconfigdir}/grpc++_unsecure.pc
+%if %{with opentelemetry}
%{_pkgconfigdir}/grpcpp_otel_plugin.pc
+%endif
%files apidocs
%defattr(644,root,root,755)
diff --git a/grpc-opentelemetry.patch b/grpc-opentelemetry.patch
new file mode 100644
index 0000000..d4d83ab
--- /dev/null
+++ b/grpc-opentelemetry.patch
@@ -0,0 +1,11 @@
+--- grpc-1.81.1/src/cpp/ext/otel/otel_plugin.cc.orig 2026-06-23 17:17:11.254026617 +0200
++++ grpc-1.81.1/src/cpp/ext/otel/otel_plugin.cc 2026-06-23 17:17:25.303950502 +0200
+@@ -485,7 +485,7 @@ class OpenTelemetryPluginImpl::CounterEx
+ : impl_(impl), md_(md) {}
+
+ void Export(opentelemetry::metrics::ObserverResult result) {
+- Sink sink(std::get<opentelemetry::nostd::shared_ptr<
++ Sink sink(opentelemetry::nostd::get<opentelemetry::nostd::shared_ptr<
+ opentelemetry::metrics::ObserverResultT<int64_t>>>(result),
+ md_->shape);
+ impl_->QueryMetrics({md_->name}, sink);
diff --git a/grpc-system-absl.patch b/grpc-system-absl.patch
index 8fa8e97..8e9d749 100644
--- a/grpc-system-absl.patch
+++ b/grpc-system-absl.patch
@@ -1,7 +1,7 @@
---- grpc-1.78.1/setup.py.orig 2026-03-01 08:16:24.126353937 +0100
-+++ grpc-1.78.1/setup.py 2026-03-01 18:19:07.470440279 +0100
+--- grpc-1.81.1/setup.py.orig 2026-03-01 08:16:24.126353937 +0100
++++ grpc-1.81.1/setup.py 2026-03-01 18:19:07.470440279 +0100
@@ -515,7 +515,7 @@ def cython_extensions_and_necessity():
- + list(CYTHON_HELPER_C_FILES)
+ + list(GRPCIO_CC_SRCS)
+ core_c_files
+ asm_files
- + ["third_party/abseil-cpp/absl/log/initialize.cc"]
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/grpc.git/commitdiff/98d3437c0bbb8d91ccac9d259c474c5ebcd3edbe
More information about the pld-cvs-commit
mailing list