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
23 BuildRequires: abseil-cpp-devel
24 BuildRequires: c-ares-devel >= 1.13.0
25 BuildRequires: cmake >= 3.5.1
26 BuildRequires: libstdc++-devel >= 6:4.7
27 BuildRequires: openssl-devel
28 BuildRequires: protobuf-devel
29 BuildRequires: rpm-pythonprov
30 BuildRequires: rpmbuild(macros) >= 1.714
31 BuildRequires: zlib-devel
33 BuildRequires: python-Cython >= 0.23
34 BuildRequires: python-modules >= 1:2.7
37 BuildRequires: python3-Cython >= 0.23
38 BuildRequires: python3-modules >= 1:3.5
41 BuildRequires: python3-Sphinx >= 1.8.1
42 BuildRequires: python3-six >= 1.10
44 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 # require non-function grpc_core::ExecCtx::exec_ctx_ and grpc_core::ApplicationCallbackExecCtx::callback_exec_ctx_ symbols
47 %define skip_post_check_so libgrpc\\+\\+.so.* libgrpc\\+\\+_unsecure.so.*
50 gRPC is a modern, open source, high-performance remote procedure call
51 (RPC) framework that can run anywhere. gRPC enables client and server
52 applications to communicate transparently, and simplifies the building
55 %description -l pl.UTF-8
56 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
57 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
58 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
62 Summary: Header files for gRPC library
63 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki gRPC
64 Group: Development/Libraries
65 Requires: %{name} = %{version}-%{release}
68 Header files for gRPC library.
70 %description devel -l pl.UTF-8
71 Pliki nagłówkowe biblioteki gRPC.
74 Summary: API documentation for gRPC library
75 Summary(pl.UTF-8): Dokumentacja API biblioteki gRPC
77 %if "%{_rpmversion}" >= "4.6"
82 API documentation for gRPC library.
84 %description apidocs -l pl.UTF-8
85 Dokumentacja API biblioteki gRPC.
87 %package -n python-grpcio
88 Summary: HTTP/2 based RPC framework
89 Summary(pl.UTF-8): Szkielet RPC oparty na HTTP/2
90 Group: Libraries/Python
92 %description -n python-grpcio
93 gRPC is a modern, open source, high-performance remote procedure call
94 (RPC) framework that can run anywhere. gRPC enables client and server
95 applications to communicate transparently, and simplifies the building
98 %description -n python-grpcio -l pl.UTF-8
99 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
100 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
101 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
102 systemów połączonych.
104 %package -n python3-grpcio
105 Summary: HTTP/2 based RPC framework
106 Summary(pl.UTF-8): Szkielet RPC oparty na HTTP/2
107 Group: Libraries/Python
109 %description -n python3-grpcio
110 gRPC is a modern, open source, high-performance remote procedure call
111 (RPC) framework that can run anywhere. gRPC enables client and server
112 applications to communicate transparently, and simplifies the building
113 of connected systems.
115 %description -n python3-grpcio -l pl.UTF-8
116 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
117 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
118 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
119 systemów połączonych.
121 %package -n python-grpcio-apidocs
122 Summary: API documentation for Python gRPC library
123 Summary(pl.UTF-8): Dokumentacja API biblioteki Pythona gRPC
125 %if "%{_rpmversion}" >= "4.6"
129 %description -n python-grpcio-apidocs
130 API documentation for Python gRPC library.
132 %description -n python-grpcio-apidocs -l pl.UTF-8
133 Dokumentacja API biblioteki Pythona gRPC.
144 -DgRPC_INSTALL_CMAKEDIR:PATH=%{_lib}/cmake/grpc \
145 -DgRPC_INSTALL_LIBDIR:PATH=%{_lib} \
146 -DgRPC_ABSL_PROVIDER=package \
147 -DgRPC_CARES_PROVIDER=package \
148 -DgRPC_PROTOBUF_PROVIDER=package \
149 -DgRPC_SSL_PROVIDER=package \
150 -DgRPC_ZLIB_PROVIDER=package
155 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
156 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
157 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
158 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
166 export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD=1
172 sphinx-build-3 -b html doc/python/sphinx doc/python/sphinx/_build/html
176 rm -rf $RPM_BUILD_ROOT
178 %{__make} -C build install \
179 DESTDIR=$RPM_BUILD_ROOT
181 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
182 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
183 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
184 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
196 install -d $RPM_BUILD_ROOT%{_docdir}
197 cp -pr doc $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}
198 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}/{csharp,python/sphinx,.gitignore}
201 rm -rf $RPM_BUILD_ROOT
203 %post -p /sbin/ldconfig
204 %postun -p /sbin/ldconfig
207 %defattr(644,root,root,755)
208 %doc AUTHORS CONCEPTS.md MAINTAINERS.md NOTICE.txt README.md TROUBLESHOOTING.md
209 %attr(755,root,root) %{_bindir}/grpc_cpp_plugin
210 %attr(755,root,root) %{_bindir}/grpc_csharp_plugin
211 %attr(755,root,root) %{_bindir}/grpc_node_plugin
212 %attr(755,root,root) %{_bindir}/grpc_objective_c_plugin
213 %attr(755,root,root) %{_bindir}/grpc_php_plugin
214 %attr(755,root,root) %{_bindir}/grpc_python_plugin
215 %attr(755,root,root) %{_bindir}/grpc_ruby_plugin
216 %attr(755,root,root) %{_libdir}/libgpr.so.*.*.*
217 %attr(755,root,root) %ghost %{_libdir}/libgpr.so.10
218 %attr(755,root,root) %{_libdir}/libgrpc.so.*.*.*
219 %attr(755,root,root) %ghost %{_libdir}/libgrpc.so.10
220 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so.*.*.*
221 %attr(755,root,root) %ghost %{_libdir}/libgrpc_plugin_support.so.1
222 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so.*.*.*
223 %attr(755,root,root) %ghost %{_libdir}/libgrpc_unsecure.so.10
224 %attr(755,root,root) %{_libdir}/libgrpc++.so.*.*.*
225 %attr(755,root,root) %ghost %{_libdir}/libgrpc++.so.1
226 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so.*.*.*
227 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_alts.so.1
228 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so.*.*.*
229 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_error_details.so.1
230 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so.*.*.*
231 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_reflection.so.1
232 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so.*.*.*
233 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_unsecure.so.1
234 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so.*.*.*
235 %attr(755,root,root) %ghost %{_libdir}/libgrpcpp_channelz.so.1
236 # TODO: use system libs instead
237 %attr(755,root,root) %{_libdir}/libaddress_sorting.so.*.*.*
238 %attr(755,root,root) %ghost %{_libdir}/libaddress_sorting.so.10
239 %attr(755,root,root) %{_libdir}/libupb.so.*.*.*
240 %attr(755,root,root) %ghost %{_libdir}/libupb.so.10
244 %defattr(644,root,root,755)
245 %attr(755,root,root) %{_libdir}/libgpr.so
246 %attr(755,root,root) %{_libdir}/libgrpc.so
247 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so
248 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so
249 %attr(755,root,root) %{_libdir}/libgrpc++.so
250 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so
251 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so
252 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so
253 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so
254 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so
255 %attr(755,root,root) %{_libdir}/libaddress_sorting.so
256 %attr(755,root,root) %{_libdir}/libupb.so
258 %{_includedir}/grpc++
259 %{_includedir}/grpcpp
260 %{_libdir}/cmake/grpc
261 %{_pkgconfigdir}/gpr.pc
262 %{_pkgconfigdir}/grpc.pc
263 %{_pkgconfigdir}/grpc_unsecure.pc
264 %{_pkgconfigdir}/grpc++.pc
265 %{_pkgconfigdir}/grpc++_unsecure.pc
268 %defattr(644,root,root,755)
269 %{_docdir}/%{name}-apidocs-%{version}
272 %files -n python-grpcio
273 %defattr(644,root,root,755)
274 %dir %{py_sitedir}/grpc
275 %{py_sitedir}/grpc/*.py[co]
276 %dir %{py_sitedir}/grpc/_cython
277 %attr(755,root,root) %{py_sitedir}/grpc/_cython/cygrpc.so
278 %{py_sitedir}/grpc/_cython/__init__.py[co]
279 %{py_sitedir}/grpc/_cython/_credentials
280 %{py_sitedir}/grpc/_cython/_cygrpc
281 %{py_sitedir}/grpc/beta
282 %{py_sitedir}/grpc/experimental
283 %{py_sitedir}/grpc/framework
284 %{py_sitedir}/grpcio-%{version}-py*.egg-info
288 %files -n python3-grpcio
289 %defattr(644,root,root,755)
290 %dir %{py3_sitedir}/grpc
291 %{py3_sitedir}/grpc/*.py
292 %{py3_sitedir}/grpc/__pycache__
293 %dir %{py3_sitedir}/grpc/_cython
294 %attr(755,root,root) %{py3_sitedir}/grpc/_cython/cygrpc.cpython-*.so
295 %{py3_sitedir}/grpc/_cython/__init__.py
296 %{py3_sitedir}/grpc/_cython/__pycache__
297 %{py3_sitedir}/grpc/_cython/_credentials
298 %{py3_sitedir}/grpc/_cython/_cygrpc
299 %{py3_sitedir}/grpc/beta
300 %{py3_sitedir}/grpc/experimental
301 %{py3_sitedir}/grpc/framework
302 %{py3_sitedir}/grpcio-%{version}-py*.egg-info
306 %files -n python-grpcio-apidocs
307 %defattr(644,root,root,755)
308 %doc doc/python/sphinx/_build/html/{_static,*.html,*.js}