• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%global c_so_version 37
2%global cpp_so_version 1.60
3%global cpp_std 17
4
5Name:          grpc
6Version:       1.60.0
7Release:       5
8Summary:       A modern, open source high performance RPC framework that can run in any environment
9License:       ASL 2.0
10URL:           https://www.grpc.io
11Source0:       https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
12
13Patch0006:     repair-pkgconfig-path.patch
14Patch0007:     add-secure-compile-option-in-Makefile.patch
15Patch0009:     remove-cert-expired-on-20230930.patch
16Patch0010:     backport-Specify-noexcept-for-cdef-functions.patch
17Patch0011:     remove-cert-expired-at-20250512.patch
18Patch0012:     backport-CVE-2024-7246-chttp2-Fix-a-bug-in-hpack-error-handling.patch
19Patch0013:     backport-CVE-2024-11407.patch
20
21BuildRequires: gcc-c++ pkgconfig protobuf-devel protobuf-compiler protobuf-lite-devel
22BuildRequires: openssl-devel c-ares-devel gtest-devel zlib-devel gperftools-devel
23BuildRequires: python3-devel python3-setuptools python3-Cython
24BuildRequires: cmake >= 3.13.0
25BuildRequires: pkgconfig(re2)
26BuildRequires: abseil-cpp-devel
27Requires:      protobuf-compiler
28
29%description
30gRPC is a modern open source high performance RPC framework that can run in any environment.
31It can efficiently connect services in and across data centers with pluggable support for
32load balancing, tracing, health checking and authentication. It is also applicable in last
33mile of distributed computing to connect devices, mobile applications and browsers to backend services.
34
35%package       devel
36Summary:       gRPC library development files
37Requires:      %{name} = %{version}-%{release}
38Requires:      pkgconfig(re2)
39Requires:      abseil-cpp-devel
40
41%description   devel
42Development headers and files for gRPC libraries.
43
44%package plugins
45Summary:        Protocol buffers compiler plugins for gRPC
46# License:        same as base package
47Requires:       grpc = %{version}-%{release}
48Requires:       protobuf-compiler
49
50%description plugins
51Plugins to the protocol buffers compiler to generate gRPC sources.
52
53%package -n python3-grpcio
54Summary:       Python3 language bindings for gRPC
55Requires:      %{name} = %{version}-%{release}
56%{?python_provide:%python_provide python3-%{pypi_name}}
57
58%description -n python3-grpcio
59Python3 bindings for gRPC.
60
61%prep
62%autosetup -p1 -n %{name}-%{version}
63sed -i 's:^prefix ?= .*:prefix ?= %{_prefix}:' Makefile
64sed -i 's:$(prefix)/lib:$(prefix)/%{_lib}:' Makefile
65sed -i 's:^GTEST_LIB =.*::' Makefile
66#avoid downloading
67mkdir  %{_builddir}/%{name}-%{version}/third_party/opencensus-proto/src
68sed -r -i 's/(std=c\+\+)14/\1%{cpp_std}/g' \
69    setup.py grpc.gyp Rakefile \
70    examples/cpp/*/Makefile \
71    examples/cpp/*/CMakeLists.txt \
72    tools/run_tests/artifacts/artifact_targets.py \
73    tools/distrib/python/grpcio_tools/setup.py
74
75%build
76mkdir -p cmake/build
77cd cmake/build
78cmake ../../ -DgRPC_INSTALL=ON\
79             -DCMAKE_CXX_STANDARD:STRING=%{cpp_std} \
80             -DgRPC_CARES_PROVIDER=package \
81             -DgRPC_PROTOBUF_PROVIDER=package \
82             -DgRPC_SSL_PROVIDER=package      \
83             -DgRPC_ZLIB_PROVIDER=package     \
84             -DgRPC_RE2_PROVIDER=package      \
85             -DgRPC_ABSL_PROVIDER=package     \
86             -DgRPC_INSTALL_LIBDIR=%{buildroot}%{_libdir} \
87             -DgRPC_INSTALL_BINDIR=%{buildroot}%{_bindir} \
88             -DgRPC_INSTALL_INCLUDEDIR=%{buildroot}%{_includedir} \
89             -DgRPC_INSTALL_CMAKEDIR=%{buildroot}%{_prefix}/lib/cmake/%{name} \
90             -DgRPC_INSTALL_SHAREDIR=%{buildroot}%{_datadir}/%{name} \
91             -DgRPC_INSTALL_PKGCONFIGDIR=%{buildroot}%{_libdir}/pkgconfig \
92             -DCMAKE_INSTALL_PREFIX=%{_prefix} \
93             -DBUILD_SHARED_LIBS=ON \
94             -DCMAKE_VERBOSE_MAKEFILE=ON \
95             -DCMAKE_EXE_LINKER_FLAGS=-Wl,--as-needed \
96             -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--as-needed
97make -j24 V=1
98
99# build python module
100export GRPC_PYTHON_BUILD_WITH_CYTHON=True
101export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True
102export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True
103export GRPC_PYTHON_BUILD_SYSTEM_CARES=True
104export GRPC_PYTHON_BUILD_SYSTEM_RE2=True
105export GRPC_PYTHON_BUILD_SYSTEM_ABSL=True
106export CFLAGS="%optflags"
107cd ../..
108%py3_build
109
110%install
111cd cmake/build
112make install/local
113rm -rf %{buildroot}%{_prefix}/lib
114
115%delete_la_and_a
116cd ../..
117%py3_install
118
119%ldconfig_scriptlets
120
121%files
122%defattr(-,root,root)
123%doc README.md
124%license LICENSE
125
126%{_datadir}/%{name}
127%{_libdir}/libaddress_sorting.so.%{c_so_version}*
128%{_libdir}/libgpr.so.%{c_so_version}*
129%{_libdir}/libgrpc.so.%{c_so_version}*
130%{_libdir}/libgrpc_unsecure.so.%{c_so_version}*
131%{_libdir}/libupb.so.%{c_so_version}*
132%{_libdir}/libgrpc++.so.%{cpp_so_version}*
133%{_libdir}/libgrpc++_alts.so.%{cpp_so_version}*
134%{_libdir}/libgrpc++_error_details.so.%{cpp_so_version}*
135%{_libdir}/libgrpc++_reflection.so.%{cpp_so_version}*
136%{_libdir}/libgrpc++_unsecure.so.%{cpp_so_version}*
137%{_libdir}/libgrpc_plugin_support.so.%{cpp_so_version}*
138%{_libdir}/libgrpcpp_channelz.so.%{cpp_so_version}*
139%{_libdir}/libgrpc_authorization_provider.so.%{cpp_so_version}*
140%{_libdir}/libupb_collections_lib.so.%{c_so_version}*
141%{_libdir}/libupb_json_lib.so.%{c_so_version}*
142%{_libdir}/libupb_textformat_lib.so.%{c_so_version}*
143%{_libdir}/libutf8_range_lib.so.%{c_so_version}*
144
145%files plugins
146%{_bindir}/grpc_*_plugin
147
148%files devel
149%defattr(-,root,root)
150%{_libdir}/*.so
151%{_libdir}/pkgconfig/*
152%{_includedir}/grpc
153%{_includedir}/grpc++
154%{_includedir}/grpcpp
155
156%files -n python3-grpcio
157%defattr(-,root,root)
158%{python3_sitearch}/grpc
159%{python3_sitearch}/grpcio-%{version}-py*
160
161%changelog
162* Tue Dec 03 2024 xinghe <xinghe2@h-partners.com> - 1.60.0-5
163- Type:CVE
164- CVE:CVE-2024-11407
165- SUG:NA
166- DESC:fix CVE-2024-11407
167
168* Wed Aug 14 2024 zhouyihang <zhouyihang3@h-partners.com> - 1.60.0-4
169- Type:CVE
170- CVE:CVE-2024-7246
171- SUG:NA
172- DESC:fix CVE-2024-7246
173
174* Fri Jun 21 2024 zhouyihang<zhouyihang3@h-partners.com> - 1.60.0-3
175- Type:bugfix
176- ID:NA
177- SUG:NA
178- DESC:remove cert expired at 20250512
179
180* Mon Feb 05 2024 zhouyihang <zhouyihang3@h-partners.com> - 1.60.0-2
181- Type:bugfix
182- CVE:NA
183- SUG:NA
184- DESC:add noexcept to adapt for Cython_3.X
185
186* Fri Jan 19 2024 zhouyihang <zhouyihang3@h-partners.com> - 1.60.0-1
187- Type:requirement
188- CVE:NA
189- SUG:NA
190- DESC:upgrade grpc to 1.60.0
191
192* Wed Nov 15 2023 zhouyihang<zhouyihang3@h-partners.com> - 1.54.2-3
193- Type:bugfix
194- ID:NA
195- SUG:NA
196- DESC:remove cert expired on 20230930
197
198* Thu Sep 14 2023 zhouyihang <zhouyihang3@h-partners.com> - 1.54.2-2
199- Type:CVE
200- ID:CVE-2023-4785
201- SUG:NA
202- DESC:fix CVE-2023-4785
203
204* Thu Aug 03 2023 zhouyihang <zhouyihang3@h-partners.com> - 1.54.2-1
205- Type:requirement
206- ID:NA
207- SUG:NA
208- DESC:upgrade grpc to 1.54.2
209
210* Fri Jul 28 2023 eaglegai <eaglegai@163.com> - 1.50.1-2
211- Type:bugfix
212- ID:NA
213- SUG:NA
214- DESC:use c++17 to fix build error
215
216* Fri Nov 11 2022 zhouyihang <zhouyihang3@h-partners.com> - 1.50.1-1
217- Type:requirement
218- ID:NA
219- SUG:NA
220- DESC:upgrade grpc to 1.50.1
221
222* Thu Oct 20 2022 zhouyihang <zhouyihang3@h-partners.com> - 1.41.1-4
223- Type:bugfix
224- ID:NA
225- SUG:NA
226- DESC:add some secure compilation options
227
228* Sat Apr 16 2022 xingwei <xingwei14@h-partners.com> - 1.41.1-3
229- Type:bugfix
230- ID:NA
231- SUG:NA
232- DESC:delete useless so files
233
234* Wed Mar 30 2022 xihaochen <xihaochen@h-partners.com> - 1.41.1-2
235- Type:requirement
236- ID:NA
237- SUG:NA
238- DESC:remove gflags
239
240* Tue Mar 29 2022 xihaochen <xihaochen@h-partners.com> - 1.41.1-1
241- Type:requirement
242- ID:NA
243- SUG:NA
244- DESC:update grpc to 1.41.1
245
246* Mon Jul 19 2021 lijingyuan <lijingyuan3@huawei.com> - 1.31.0-6
247- Type:requirement
248- ID:NA
249- SUG:NA
250- DESC:cancel gdb in buildrequires
251
252* Tue Jul 06 2021 gaihuiying <gaihuiying1@huawei.com> - 1.31.0-5
253- Type:requirement
254- ID:NA
255- SUG:NA
256- DESC:separate abseil-cpp from grpc source
257
258* Wed Jun 23 2021 gaihuiying <gaihuiying1@huawei.com> - 1.31.0-4
259- Type:requirement
260- ID:NA
261- SUG:NA
262- DESC:delete benchmark and googletest sources in grpc and rebase to 1.31.0-4
263
264* Wed Dec 09 2020 gaihuiying <gaihuiying1@huawei.com> - 1.31.0-2
265- Type:requirement
266- ID:NA
267- SUG:NA
268- DESC:separate re2 from grpc source
269
270* Fri Aug 28 2020 liuxin <liuxin264@huawei.com> - 1.31.0-1
271- Type:requirement
272- ID:NA
273- SUG:NA
274- DESC:update grpc version to 1.31.0
275
276* Tue Aug 18 2020 chenyaqiang <chenyaqiang@huawei.com> - 1.28.1-3
277- rebuild for package build and clarify last changelog info
278
279* Mon May 11 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.28.1-2
280- Type:rebuild
281- ID:NA
282- SUG:NA
283- DESC:update to 1.28.2
284
285* Mon May 11 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.28.1-1
286- Type:requirement
287- ID:NA
288- SUG:NA
289- DESC:update to 1.28.1
290
291* Fri Mar 20 2020 songnannan <songnannan2@huawei.com> - 1.22.0-3
292- add gdb in buildrequires
293
294* Sat Jan 11 2020 openEuler Buildteam <buildteam@openeuler.org> - 1.22.0-2
295- Delete unused patch
296
297* Sat Dec 21 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.22.0-1
298- Package init
299