2 # - system address_sorting and upb?
3 # - use shared grpc core in python modules
6 %bcond_without apidocs # (Python) API docs build
7 %bcond_without python2 # CPython 2.x module
8 %bcond_without python3 # CPython 3.x module
10 Summary: RPC library and framework
11 Summary(pl.UTF-8): Biblioteka i szkielet RPC
17 #Source0Download: https://github.com/grpc/grpc/releases
18 Source0: https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
19 # Source0-md5: 316b30c89b48b8ae0ad005bb12ac566a
20 Patch0: %{name}-system-absl.patch
21 Patch1: %{name}-sphinx.patch
22 Patch2: %{name}-x32.patch
23 Patch3: %{name}-libdir.patch
25 BuildRequires: abseil-cpp-devel
26 BuildRequires: c-ares-devel >= 1.13.0
27 BuildRequires: cmake >= 3.5.1
28 BuildRequires: libstdc++-devel >= 6:4.7
29 BuildRequires: openssl-devel
30 BuildRequires: protobuf-devel >= 3.12
31 BuildRequires: rpm-pythonprov
32 BuildRequires: rpmbuild(macros) >= 1.714
33 BuildRequires: zlib-devel
35 BuildRequires: python-Cython >= 0.23
36 BuildRequires: python-modules >= 1:2.7
39 BuildRequires: python3-Cython >= 0.23
40 BuildRequires: python3-modules >= 1:3.5
43 BuildRequires: python3-Sphinx >= 1.8.1
44 BuildRequires: python3-six >= 1.10
46 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 # require non-function grpc_core::ExecCtx::exec_ctx_ and grpc_core::ApplicationCallbackExecCtx::callback_exec_ctx_ symbols
49 %define skip_post_check_so libgrpc\\+\\+.so.* libgrpc\\+\\+_unsecure.so.*
52 gRPC is a modern, open source, high-performance remote procedure call
53 (RPC) framework that can run anywhere. gRPC enables client and server
54 applications to communicate transparently, and simplifies the building
57 %description -l pl.UTF-8
58 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
59 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
60 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
64 Summary: Header files for gRPC library
65 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki gRPC
66 Group: Development/Libraries
67 Requires: %{name} = %{version}-%{release}
70 Header files for gRPC library.
72 %description devel -l pl.UTF-8
73 Pliki nagłówkowe biblioteki gRPC.
76 Summary: API documentation for gRPC library
77 Summary(pl.UTF-8): Dokumentacja API biblioteki gRPC
79 %if "%{_rpmversion}" >= "4.6"
84 API documentation for gRPC library.
86 %description apidocs -l pl.UTF-8
87 Dokumentacja API biblioteki gRPC.
89 %package -n python-grpcio
90 Summary: HTTP/2 based RPC framework
91 Summary(pl.UTF-8): Szkielet RPC oparty na HTTP/2
92 Group: Libraries/Python
94 %description -n python-grpcio
95 gRPC is a modern, open source, high-performance remote procedure call
96 (RPC) framework that can run anywhere. gRPC enables client and server
97 applications to communicate transparently, and simplifies the building
100 %description -n python-grpcio -l pl.UTF-8
101 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
102 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
103 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
104 systemów połączonych.
106 %package -n python3-grpcio
107 Summary: HTTP/2 based RPC framework
108 Summary(pl.UTF-8): Szkielet RPC oparty na HTTP/2
109 Group: Libraries/Python
111 %description -n python3-grpcio
112 gRPC is a modern, open source, high-performance remote procedure call
113 (RPC) framework that can run anywhere. gRPC enables client and server
114 applications to communicate transparently, and simplifies the building
115 of connected systems.
117 %description -n python3-grpcio -l pl.UTF-8
118 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
119 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
120 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
121 systemów połączonych.
123 %package -n python-grpcio-apidocs
124 Summary: API documentation for Python gRPC library
125 Summary(pl.UTF-8): Dokumentacja API biblioteki Pythona gRPC
127 %if "%{_rpmversion}" >= "4.6"
131 %description -n python-grpcio-apidocs
132 API documentation for Python gRPC library.
134 %description -n python-grpcio-apidocs -l pl.UTF-8
135 Dokumentacja API biblioteki Pythona gRPC.
148 -DgRPC_INSTALL_CMAKEDIR:PATH=%{_lib}/cmake/grpc \
149 -DgRPC_INSTALL_LIBDIR:PATH=%{_lib} \
150 -DgRPC_ABSL_PROVIDER=package \
151 -DgRPC_CARES_PROVIDER=package \
152 -DgRPC_PROTOBUF_PROVIDER=package \
153 -DgRPC_SSL_PROVIDER=package \
154 -DgRPC_ZLIB_PROVIDER=package
159 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
160 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
161 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
162 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
170 export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD=1
176 sphinx-build-3 -b html doc/python/sphinx doc/python/sphinx/_build/html
180 rm -rf $RPM_BUILD_ROOT
182 %{__make} -C build install \
183 DESTDIR=$RPM_BUILD_ROOT
185 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
186 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
187 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
188 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
200 install -d $RPM_BUILD_ROOT%{_docdir}
201 cp -pr doc $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}
202 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}/{csharp,python/sphinx,.gitignore}
205 rm -rf $RPM_BUILD_ROOT
207 %post -p /sbin/ldconfig
208 %postun -p /sbin/ldconfig
211 %defattr(644,root,root,755)
212 %doc AUTHORS CONCEPTS.md MAINTAINERS.md NOTICE.txt README.md TROUBLESHOOTING.md
213 %attr(755,root,root) %{_bindir}/grpc_cpp_plugin
214 %attr(755,root,root) %{_bindir}/grpc_csharp_plugin
215 %attr(755,root,root) %{_bindir}/grpc_node_plugin
216 %attr(755,root,root) %{_bindir}/grpc_objective_c_plugin
217 %attr(755,root,root) %{_bindir}/grpc_php_plugin
218 %attr(755,root,root) %{_bindir}/grpc_python_plugin
219 %attr(755,root,root) %{_bindir}/grpc_ruby_plugin
220 %attr(755,root,root) %{_libdir}/libgpr.so.*.*.*
221 %attr(755,root,root) %ghost %{_libdir}/libgpr.so.10
222 %attr(755,root,root) %{_libdir}/libgrpc.so.*.*.*
223 %attr(755,root,root) %ghost %{_libdir}/libgrpc.so.10
224 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so.*.*.*
225 %attr(755,root,root) %ghost %{_libdir}/libgrpc_plugin_support.so.1
226 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so.*.*.*
227 %attr(755,root,root) %ghost %{_libdir}/libgrpc_unsecure.so.10
228 %attr(755,root,root) %{_libdir}/libgrpc++.so.*.*.*
229 %attr(755,root,root) %ghost %{_libdir}/libgrpc++.so.1
230 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so.*.*.*
231 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_alts.so.1
232 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so.*.*.*
233 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_error_details.so.1
234 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so.*.*.*
235 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_reflection.so.1
236 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so.*.*.*
237 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_unsecure.so.1
238 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so.*.*.*
239 %attr(755,root,root) %ghost %{_libdir}/libgrpcpp_channelz.so.1
240 # TODO: use system libs instead
241 %attr(755,root,root) %{_libdir}/libaddress_sorting.so.*.*.*
242 %attr(755,root,root) %ghost %{_libdir}/libaddress_sorting.so.10
243 %attr(755,root,root) %{_libdir}/libupb.so.*.*.*
244 %attr(755,root,root) %ghost %{_libdir}/libupb.so.10
248 %defattr(644,root,root,755)
249 %attr(755,root,root) %{_libdir}/libgpr.so
250 %attr(755,root,root) %{_libdir}/libgrpc.so
251 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so
252 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so
253 %attr(755,root,root) %{_libdir}/libgrpc++.so
254 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so
255 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so
256 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so
257 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so
258 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so
259 %attr(755,root,root) %{_libdir}/libaddress_sorting.so
260 %attr(755,root,root) %{_libdir}/libupb.so
262 %{_includedir}/grpc++
263 %{_includedir}/grpcpp
264 %{_libdir}/cmake/grpc
265 %{_pkgconfigdir}/gpr.pc
266 %{_pkgconfigdir}/grpc.pc
267 %{_pkgconfigdir}/grpc_unsecure.pc
268 %{_pkgconfigdir}/grpc++.pc
269 %{_pkgconfigdir}/grpc++_unsecure.pc
272 %defattr(644,root,root,755)
273 %{_docdir}/%{name}-apidocs-%{version}
276 %files -n python-grpcio
277 %defattr(644,root,root,755)
278 %dir %{py_sitedir}/grpc
279 %{py_sitedir}/grpc/*.py[co]
280 %dir %{py_sitedir}/grpc/_cython
281 %attr(755,root,root) %{py_sitedir}/grpc/_cython/cygrpc.so
282 %{py_sitedir}/grpc/_cython/__init__.py[co]
283 %{py_sitedir}/grpc/_cython/_credentials
284 %{py_sitedir}/grpc/_cython/_cygrpc
285 %{py_sitedir}/grpc/beta
286 %{py_sitedir}/grpc/experimental
287 %{py_sitedir}/grpc/framework
288 %{py_sitedir}/grpcio-%{version}-py*.egg-info
292 %files -n python3-grpcio
293 %defattr(644,root,root,755)
294 %dir %{py3_sitedir}/grpc
295 %{py3_sitedir}/grpc/*.py
296 %{py3_sitedir}/grpc/__pycache__
297 %dir %{py3_sitedir}/grpc/_cython
298 %attr(755,root,root) %{py3_sitedir}/grpc/_cython/cygrpc.cpython-*.so
299 %{py3_sitedir}/grpc/_cython/__init__.py
300 %{py3_sitedir}/grpc/_cython/__pycache__
301 %{py3_sitedir}/grpc/_cython/_credentials
302 %{py3_sitedir}/grpc/_cython/_cygrpc
303 %{py3_sitedir}/grpc/beta
304 %{py3_sitedir}/grpc/experimental
305 %{py3_sitedir}/grpc/framework
306 %{py3_sitedir}/grpcio-%{version}-py*.egg-info
310 %files -n python-grpcio-apidocs
311 %defattr(644,root,root,755)
312 %doc doc/python/sphinx/_build/html/{_static,*.html,*.js}