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