]> git.pld-linux.org Git - packages/grpc.git/blob - grpc.spec
- added x32 patch (fix wrap_memcpy with x32 ABI)
[packages/grpc.git] / grpc.spec
1 # TODO:
2 # - system address_sorting and upb?
3 # - use shared grpc core in python modules
4 #
5 # Conditional build:
6 %bcond_without  apidocs         # (Python) API docs build
7 %bcond_without  python2         # CPython 2.x module
8 %bcond_without  python3         # CPython 3.x module
9 #
10 Summary:        RPC library and framework
11 Summary(pl.UTF-8):      Biblioteka i szkielet RPC
12 Name:           grpc
13 Version:        1.30.0
14 Release:        1
15 License:        Apache v2.0
16 Group:          Libraries
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
24 URL:            https://grpc.io/
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
34 %if %{with python2}
35 BuildRequires:  python-Cython >= 0.23
36 BuildRequires:  python-modules >= 1:2.7
37 %endif
38 %if %{with python3}
39 BuildRequires:  python3-Cython >= 0.23
40 BuildRequires:  python3-modules >= 1:3.5
41 %endif
42 %if %{with apidocs}
43 BuildRequires:  python3-Sphinx >= 1.8.1
44 BuildRequires:  python3-six >= 1.10
45 %endif
46 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47
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.*
50
51 %description
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
55 of connected systems.
56
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
61 systemów połączonych.
62
63 %package devel
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}
68
69 %description devel
70 Header files for gRPC library.
71
72 %description devel -l pl.UTF-8
73 Pliki nagłówkowe biblioteki gRPC.
74
75 %package apidocs
76 Summary:        API documentation for gRPC library
77 Summary(pl.UTF-8):      Dokumentacja API biblioteki gRPC
78 Group:          Documentation
79 %if "%{_rpmversion}" >= "4.6"
80 BuildArch:      noarch
81 %endif
82
83 %description apidocs
84 API documentation for gRPC library.
85
86 %description apidocs -l pl.UTF-8
87 Dokumentacja API biblioteki gRPC.
88
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
93
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
98 of connected systems.
99
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.
105
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
110
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.
116
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.
122
123 %package -n python-grpcio-apidocs
124 Summary:        API documentation for Python gRPC library
125 Summary(pl.UTF-8):      Dokumentacja API biblioteki Pythona gRPC
126 Group:          Documentation
127 %if "%{_rpmversion}" >= "4.6"
128 BuildArch:      noarch
129 %endif
130
131 %description -n python-grpcio-apidocs
132 API documentation for Python gRPC library.
133
134 %description -n python-grpcio-apidocs -l pl.UTF-8
135 Dokumentacja API biblioteki Pythona gRPC.
136
137 %prep
138 %setup -q
139 %patch0 -p1
140 %patch1 -p1
141 %patch2 -p1
142 %patch3 -p1
143
144 %build
145 install -d build
146 cd build
147 %cmake .. \
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
155
156 %{__make}
157 cd ..
158
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
163
164 %if %{with python2}
165 %py_build
166 %endif
167
168 %if %{with python3}
169 %if %{with apidocs}
170 export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD=1
171 %endif
172 %py3_build
173 %endif
174
175 %if %{with apidocs}
176 sphinx-build-3 -b html doc/python/sphinx doc/python/sphinx/_build/html
177 %endif
178
179 %install
180 rm -rf $RPM_BUILD_ROOT
181
182 %{__make} -C build install \
183         DESTDIR=$RPM_BUILD_ROOT
184
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
189
190 %if %{with python2}
191 %py_install
192
193 %py_postclean
194 %endif
195
196 %if %{with python3}
197 %py3_install
198 %endif
199
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}
203
204 %clean
205 rm -rf $RPM_BUILD_ROOT
206
207 %post   -p /sbin/ldconfig
208 %postun -p /sbin/ldconfig
209
210 %files
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
245 %{_datadir}/grpc
246
247 %files devel
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
261 %{_includedir}/grpc
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
270
271 %files apidocs
272 %defattr(644,root,root,755)
273 %{_docdir}/%{name}-apidocs-%{version}
274
275 %if %{with python2}
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
289 %endif
290
291 %if %{with python3}
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
307 %endif
308
309 %if %{with apidocs}
310 %files -n python-grpcio-apidocs
311 %defattr(644,root,root,755)
312 %doc doc/python/sphinx/_build/html/{_static,*.html,*.js}
313 %endif
This page took 0.11623 seconds and 3 git commands to generate.