]> git.pld-linux.org Git - packages/grpc.git/blob - grpc.spec
897a95e8b6f3af415a74c0faaa7e5bcea270f497
[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 URL:            https://grpc.io/
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
32 %if %{with python2}
33 BuildRequires:  python-Cython >= 0.23
34 BuildRequires:  python-modules >= 1:2.7
35 %endif
36 %if %{with python3}
37 BuildRequires:  python3-Cython >= 0.23
38 BuildRequires:  python3-modules >= 1:3.5
39 %endif
40 %if %{with apidocs}
41 BuildRequires:  python3-Sphinx >= 1.8.1
42 BuildRequires:  python3-six >= 1.10
43 %endif
44 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45
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.*
48
49 %description
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
53 of connected systems.
54
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
59 systemów połączonych.
60
61 %package devel
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}
66
67 %description devel
68 Header files for gRPC library.
69
70 %description devel -l pl.UTF-8
71 Pliki nagłówkowe biblioteki gRPC.
72
73 %package apidocs
74 Summary:        API documentation for gRPC library
75 Summary(pl.UTF-8):      Dokumentacja API biblioteki gRPC
76 Group:          Documentation
77 %if "%{_rpmversion}" >= "4.6"
78 BuildArch:      noarch
79 %endif
80
81 %description apidocs
82 API documentation for gRPC library.
83
84 %description apidocs -l pl.UTF-8
85 Dokumentacja API biblioteki gRPC.
86
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
91
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
96 of connected systems.
97
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.
103
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
108
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.
114
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.
120
121 %package -n python-grpcio-apidocs
122 Summary:        API documentation for Python gRPC library
123 Summary(pl.UTF-8):      Dokumentacja API biblioteki Pythona gRPC
124 Group:          Documentation
125 %if "%{_rpmversion}" >= "4.6"
126 BuildArch:      noarch
127 %endif
128
129 %description -n python-grpcio-apidocs
130 API documentation for Python gRPC library.
131
132 %description -n python-grpcio-apidocs -l pl.UTF-8
133 Dokumentacja API biblioteki Pythona gRPC.
134
135 %prep
136 %setup -q
137 %patch0 -p1
138 %patch1 -p1
139
140 %build
141 install -d build
142 cd build
143 %cmake .. \
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
151
152 %{__make}
153 cd ..
154
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
159
160 %if %{with python2}
161 %py_build
162 %endif
163
164 %if %{with python3}
165 %if %{with apidocs}
166 export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD=1
167 %endif
168 %py3_build
169 %endif
170
171 %if %{with apidocs}
172 sphinx-build-3 -b html doc/python/sphinx doc/python/sphinx/_build/html
173 %endif
174
175 %install
176 rm -rf $RPM_BUILD_ROOT
177
178 %{__make} -C build install \
179         DESTDIR=$RPM_BUILD_ROOT
180
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
185
186 %if %{with python2}
187 %py_install
188
189 %py_postclean
190 %endif
191
192 %if %{with python3}
193 %py3_install
194 %endif
195
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}
199
200 %clean
201 rm -rf $RPM_BUILD_ROOT
202
203 %post   -p /sbin/ldconfig
204 %postun -p /sbin/ldconfig
205
206 %files
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
241 %{_datadir}/grpc
242
243 %files devel
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
257 %{_includedir}/grpc
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
266
267 %files apidocs
268 %defattr(644,root,root,755)
269 %{_docdir}/%{name}-apidocs-%{version}
270
271 %if %{with python2}
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
285 %endif
286
287 %if %{with python3}
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
303 %endif
304
305 %if %{with apidocs}
306 %files -n python-grpcio-apidocs
307 %defattr(644,root,root,755)
308 %doc doc/python/sphinx/_build/html/{_static,*.html,*.js}
309 %endif
This page took 0.132071 seconds and 2 git commands to generate.