]> git.pld-linux.org Git - packages/grpc.git/blob - grpc.spec
rpm version for noarch subpackage
[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  python3         # CPython 3.x module
8 #
9 Summary:        RPC library and framework
10 Summary(pl.UTF-8):      Biblioteka i szkielet RPC
11 Name:           grpc
12 Version:        1.47.0
13 Release:        3
14 License:        Apache v2.0
15 Group:          Libraries
16 #Source0Download: https://github.com/grpc/grpc/releases
17 Source0:        https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
18 # Source0-md5:  ba6736177699865450206452a9ae49e0
19 Source1:        https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0/opencensus-proto-0.3.0.tar.gz
20 # Source1-md5:  0b208800a68548cbf2d4bff763c050a2
21 Patch1:         %{name}-sphinx.patch
22 Patch2:         %{name}-x32.patch
23 Patch3:         %{name}-libdir.patch
24 Patch5:         %{name}-system-openssl.patch
25 URL:            https://grpc.io/
26 BuildRequires:  abseil-cpp-devel
27 BuildRequires:  c-ares-devel >= 1.13.0
28 BuildRequires:  cmake >= 3.5.1
29 BuildRequires:  gcc >= 6:4.7
30 BuildRequires:  libstdc++-devel >= 6:7
31 BuildRequires:  openssl-devel
32 BuildRequires:  protobuf-devel >= 3.12
33 # with re2Config for cmake
34 BuildRequires:  re2-devel >= 20200801
35 BuildRequires:  rpm-build >= 4.6
36 BuildRequires:  rpm-pythonprov
37 BuildRequires:  rpmbuild(macros) >= 1.714
38 BuildRequires:  zlib-devel
39 %if %{with python3}
40 BuildRequires:  python3-Cython >= 0.29.8
41 BuildRequires:  python3-modules >= 1:3.6
42 %endif
43 %if %{with apidocs}
44 BuildRequires:  python3-Sphinx >= 1.8.1
45 BuildRequires:  python3-six >= 1.10
46 %endif
47 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48
49 # Libs rquire non-function grpc_core::ExecCtx::exec_ctx_ and grpc_core::ApplicationCallbackExecCtx::callback_exec_ctx_ symbols.
50 # Wildcard '+' chars to workaround escape incompatibilities between rpm versions.
51 %define         skip_post_check_so      libgrpc...so.* libgrpc.._unsecure.so.*
52
53 %description
54 gRPC is a modern, open source, high-performance remote procedure call
55 (RPC) framework that can run anywhere. gRPC enables client and server
56 applications to communicate transparently, and simplifies the building
57 of connected systems.
58
59 %description -l pl.UTF-8
60 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
61 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
62 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
63 systemów połączonych.
64
65 %package devel
66 Summary:        Header files for gRPC library
67 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki gRPC
68 Group:          Development/Libraries
69 Requires:       %{name} = %{version}-%{release}
70 Requires:       c-ares-devel >= 1.13.0
71 Requires:       re2-devel >= 20200801
72 Requires:       zlib-devel
73
74 %description devel
75 Header files for gRPC library.
76
77 %description devel -l pl.UTF-8
78 Pliki nagłówkowe biblioteki gRPC.
79
80 %package apidocs
81 Summary:        API documentation for gRPC library
82 Summary(pl.UTF-8):      Dokumentacja API biblioteki gRPC
83 Group:          Documentation
84 BuildArch:      noarch
85
86 %description apidocs
87 API documentation for gRPC library.
88
89 %description apidocs -l pl.UTF-8
90 Dokumentacja API biblioteki gRPC.
91
92 %package -n python3-grpcio
93 Summary:        HTTP/2 based RPC framework
94 Summary(pl.UTF-8):      Szkielet RPC oparty na HTTP/2
95 Group:          Libraries/Python
96
97 %description -n python3-grpcio
98 gRPC is a modern, open source, high-performance remote procedure call
99 (RPC) framework that can run anywhere. gRPC enables client and server
100 applications to communicate transparently, and simplifies the building
101 of connected systems.
102
103 %description -n python3-grpcio -l pl.UTF-8
104 gRPC to nowoczesny, mający otwarty źródła, wydajny szkielet zdalnych
105 wywołań procedur (RPC - Remote Procedure Call). Pozwala na
106 przezroczystą komunikację klienta i serwera, upraszcza tworzenie
107 systemów połączonych.
108
109 %package -n python3-grpcio-apidocs
110 Summary:        API documentation for Python gRPC library
111 Summary(pl.UTF-8):      Dokumentacja API biblioteki Pythona gRPC
112 Group:          Documentation
113 BuildArch:      noarch
114
115 %description -n python3-grpcio-apidocs
116 API documentation for Python gRPC library.
117
118 %description -n python3-grpcio-apidocs -l pl.UTF-8
119 Dokumentacja API biblioteki Pythona gRPC.
120
121 %prep
122 %setup -q
123 %patch1 -p1
124 %patch2 -p1
125 %patch3 -p1
126 %patch5 -p1
127
128 %{__rm} doc/.gitignore
129
130 # simulate download_archive result
131 %{__tar} xf %{SOURCE1} -C third_party/opencensus-proto --strip-components=1 opencensus-proto-0.3.0/src
132
133 %build
134 install -d build
135 cd build
136 %cmake .. \
137         -DCMAKE_CXX_STANDARD=17 \
138         -DgRPC_INSTALL_CMAKEDIR:PATH=%{_lib}/cmake/grpc \
139         -DgRPC_INSTALL_LIBDIR:PATH=%{_lib} \
140         -DgRPC_ABSL_PROVIDER=package \
141         -DgRPC_CARES_PROVIDER=package \
142         -DgRPC_PROTOBUF_PROVIDER=package \
143         -DgRPC_RE2_PROVIDER=package \
144         -DgRPC_SSL_PROVIDER=package \
145         -DgRPC_ZLIB_PROVIDER=package
146
147 %{__make}
148 cd ..
149
150 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
151 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
152 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
153 export GRPC_PYTHON_BUILD_SYSTEM_RE2=1
154 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
155
156 %if %{with python3}
157 %if %{with apidocs}
158 export GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD=1
159 %endif
160 %py3_build
161 %endif
162
163 %if %{with apidocs}
164 sphinx-build-3 -b html doc/python/sphinx doc/python/sphinx/_build/html
165 %endif
166
167 %install
168 rm -rf $RPM_BUILD_ROOT
169
170 %{__make} -C build install \
171         DESTDIR=$RPM_BUILD_ROOT
172
173 export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1
174 export GRPC_PYTHON_BUILD_SYSTEM_CARES=1
175 export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
176 export GRPC_PYTHON_BUILD_SYSTEM_RE2=1
177 export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
178
179 %if %{with python3}
180 %py3_install
181 %endif
182
183 install -d $RPM_BUILD_ROOT%{_docdir}
184 cp -pr doc $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}
185 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}-apidocs-%{version}/python/sphinx
186
187 %clean
188 rm -rf $RPM_BUILD_ROOT
189
190 %post   -p /sbin/ldconfig
191 %postun -p /sbin/ldconfig
192
193 %files
194 %defattr(644,root,root,755)
195 %doc AUTHORS CONCEPTS.md MAINTAINERS.md NOTICE.txt README.md TROUBLESHOOTING.md
196 %attr(755,root,root) %{_bindir}/grpc_cpp_plugin
197 %attr(755,root,root) %{_bindir}/grpc_csharp_plugin
198 %attr(755,root,root) %{_bindir}/grpc_node_plugin
199 %attr(755,root,root) %{_bindir}/grpc_objective_c_plugin
200 %attr(755,root,root) %{_bindir}/grpc_php_plugin
201 %attr(755,root,root) %{_bindir}/grpc_python_plugin
202 %attr(755,root,root) %{_bindir}/grpc_ruby_plugin
203 %attr(755,root,root) %{_libdir}/libgpr.so.*.*.*
204 %attr(755,root,root) %ghost %{_libdir}/libgpr.so.25
205 %attr(755,root,root) %{_libdir}/libgrpc.so.*.*.*
206 %attr(755,root,root) %ghost %{_libdir}/libgrpc.so.25
207 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so.*.*.*
208 %attr(755,root,root) %ghost %{_libdir}/libgrpc_plugin_support.so.1.47
209 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so.*.*.*
210 %attr(755,root,root) %ghost %{_libdir}/libgrpc_unsecure.so.25
211 %attr(755,root,root) %{_libdir}/libgrpc++.so.*.*.*
212 %attr(755,root,root) %ghost %{_libdir}/libgrpc++.so.1.47
213 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so.*.*.*
214 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_alts.so.1.47
215 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so.*.*.*
216 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_error_details.so.1.47
217 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so.*.*.*
218 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_reflection.so.1.47
219 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so.*.*.*
220 %attr(755,root,root) %ghost %{_libdir}/libgrpc++_unsecure.so.1.47
221 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so.*.*.*
222 %attr(755,root,root) %ghost %{_libdir}/libgrpcpp_channelz.so.1.47
223 # TODO: use system libs instead
224 %attr(755,root,root) %{_libdir}/libaddress_sorting.so.*.*.*
225 %attr(755,root,root) %ghost %{_libdir}/libaddress_sorting.so.25
226 %attr(755,root,root) %{_libdir}/libupb.so.*.*.*
227 %attr(755,root,root) %ghost %{_libdir}/libupb.so.25
228 %{_datadir}/grpc
229
230 %files devel
231 %defattr(644,root,root,755)
232 %attr(755,root,root) %{_libdir}/libgpr.so
233 %attr(755,root,root) %{_libdir}/libgrpc.so
234 %attr(755,root,root) %{_libdir}/libgrpc_plugin_support.so
235 %attr(755,root,root) %{_libdir}/libgrpc_unsecure.so
236 %attr(755,root,root) %{_libdir}/libgrpc++.so
237 %attr(755,root,root) %{_libdir}/libgrpc++_alts.so
238 %attr(755,root,root) %{_libdir}/libgrpc++_error_details.so
239 %attr(755,root,root) %{_libdir}/libgrpc++_reflection.so
240 %attr(755,root,root) %{_libdir}/libgrpc++_unsecure.so
241 %attr(755,root,root) %{_libdir}/libgrpcpp_channelz.so
242 %attr(755,root,root) %{_libdir}/libaddress_sorting.so
243 %attr(755,root,root) %{_libdir}/libupb.so
244 %{_includedir}/grpc
245 %{_includedir}/grpc++
246 %{_includedir}/grpcpp
247 %{_libdir}/cmake/grpc
248 %{_pkgconfigdir}/gpr.pc
249 %{_pkgconfigdir}/grpc.pc
250 %{_pkgconfigdir}/grpc_unsecure.pc
251 %{_pkgconfigdir}/grpc++.pc
252 %{_pkgconfigdir}/grpc++_unsecure.pc
253
254 %files apidocs
255 %defattr(644,root,root,755)
256 %{_docdir}/%{name}-apidocs-%{version}
257
258 %if %{with python3}
259 %files -n python3-grpcio
260 %defattr(644,root,root,755)
261 %dir %{py3_sitedir}/grpc
262 %{py3_sitedir}/grpc/*.py
263 %{py3_sitedir}/grpc/__pycache__
264 %dir %{py3_sitedir}/grpc/_cython
265 %attr(755,root,root) %{py3_sitedir}/grpc/_cython/cygrpc.cpython-*.so
266 %{py3_sitedir}/grpc/_cython/__init__.py
267 %{py3_sitedir}/grpc/_cython/__pycache__
268 %{py3_sitedir}/grpc/_cython/_credentials
269 %{py3_sitedir}/grpc/_cython/_cygrpc
270 %{py3_sitedir}/grpc/aio
271 %{py3_sitedir}/grpc/beta
272 %{py3_sitedir}/grpc/experimental
273 %{py3_sitedir}/grpc/framework
274 %{py3_sitedir}/grpcio-%{version}-py*.egg-info
275 %endif
276
277 %if %{with apidocs}
278 %files -n python3-grpcio-apidocs
279 %defattr(644,root,root,755)
280 %doc doc/python/sphinx/_build/html/{_static,*.html,*.js}
281 %endif
This page took 0.143609 seconds and 3 git commands to generate.