]> git.pld-linux.org Git - packages/protobuf.git/blob - protobuf.spec
- added no-wheel patch (don't require wheel module when not creating wheels); release 2
[packages/protobuf.git] / protobuf.spec
1 # TODO:
2 # - add bindings for java (maven build)
3 # - add bindings for javascript
4 # - add bindings for csharp
5 #
6 # Conditional build:
7 %bcond_without  python2 # Python 2.x bindings
8 %bcond_without  python3 # Python 3.x bindings
9 %bcond_without  ruby    # Ruby bindings
10 %bcond_without  tests   # perform "make check"
11
12 Summary:        Protocol Buffers - Google's data interchange format
13 Summary(pl.UTF-8):      Protocol Buffers - format wymiany danych Google
14 Name:           protobuf
15 Version:        3.13.0
16 Release:        2
17 License:        BSD
18 Group:          Libraries
19 #Source0Download: https://github.com/google/protobuf/releases
20 Source0:        https://github.com/google/protobuf/releases/download/v%{version}/%{name}-all-%{version}.tar.gz
21 # Source0-md5:  cafa623d51361228c83c874d95f51992
22 Source1:        ftdetect-proto.vim
23 Patch0:         system-gtest.patch
24 Patch1:         no-wrap-memcpy.patch
25 Patch2:         %{name}-no-wheel.patch
26 URL:            https://github.com/google/protobuf/
27 BuildRequires:  autoconf >= 2.59
28 BuildRequires:  automake >= 1:1.9
29 %{?with_tests:BuildRequires:    gmock-devel >= 1.9.0}
30 %{?with_tests:BuildRequires:    gtest-devel >= 1.9.0}
31 BuildRequires:  libstdc++-devel >= 6:4.7
32 BuildRequires:  libtool
33 BuildRequires:  pkgconfig
34 %if %{with python2}
35 BuildRequires:  python-modules >= 1:2.7
36 BuildRequires:  python-setuptools
37 %endif
38 %if %{with python3}
39 BuildRequires:  python3-modules >= 1:3.3
40 BuildRequires:  python3-setuptools
41 %endif
42 %if %{with python2} || %{with python3}
43 BuildRequires:  rpm-pythonprov
44 %endif
45 BuildRequires:  rpmbuild(macros) >= 1.714
46 %if %{with ruby}
47 BuildRequires:  ruby-devel
48 BuildRequires:  ruby-rake
49 BuildRequires:  ruby-rake-compiler
50 %endif
51 BuildRequires:  zlib-devel >= 1.2.0.4
52 Requires:       %{name}-libs = %{version}-%{release}
53 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
54
55 %define         _vimdatadir     %{_datadir}/vim
56
57 # triggers bogus "overflow in constant expression" errors with gcc 4.9 .. 5.4
58 %define         filterout       -fwrapv
59
60 %description
61 Protocol Buffers are a way of encoding structured data in an efficient
62 yet extensible format. Google uses Protocol Buffers for almost all of
63 its internal RPC protocols and file formats.
64
65 Protocol buffers are a flexible, efficient, automated mechanism for
66 serializing structured data - think XML, but smaller, faster, and
67 simpler. You define how you want your data to be structured once, then
68 you can use special generated source code to easily write and read
69 your structured data to and from a variety of data streams and using a
70 variety of languages. You can even update your data structure without
71 breaking deployed programs that are compiled against the "old" format.
72
73 This package contains Protocol Buffers compiler for all programming
74 languages.
75
76 %description -l pl.UTF-8
77 Bufory protokołowe (Protocol Buffers) to sposób kodowania danych
78 strukturalnych w wydajny i rozszerzalny sposób. Google używa buforów
79 protokołowych do prawie wszystkich wewnętrznych protokołów RPC i
80 formatów plików.
81
82 Bufory protokołowe to elastyczny, wydajny i zautomatyzowany sposób
83 serializacji danych strukturalnych - podobny do XML-a, ale mniejszy,
84 szybszy i prostszy. Definiuje się raz, jaką strukturę mają mieć dane,
85 a następnie używa specjalnie wygenerowanego kodu źródłowego do łatwego
86 zapisu i odczytu danych strukturalnych do i z różnych strumieni
87 danych, z poziomu różnych języków. Można nawet uaktualniać strukturę
88 danych bez psucia programów skompilowanych w oparciu o "stary" format.
89
90 Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
91 języków programowania. 
92
93 %package libs
94 Summary:        Protocol Buffers library
95 Summary(pl.UTF-8):      Biblioteka buforów protokołowych (Protocol Buffers)
96 Group:          Libraries
97 Requires:       zlib >= 1.2.0.4
98
99 %description libs
100 Protocol Buffers library.
101
102 %description libs -l pl.UTF-8
103 Biblioteka buforów protokołowych (Protocol Buffers).
104
105 %package lite
106 Summary:        Protocol Buffers LITE_RUNTIME library
107 Summary(pl.UTF-8):      Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
108 Group:          Libraries
109
110 %description lite
111 Protocol Buffers library for programs built with optimize_for =
112 LITE_RUNTIME.
113
114 The "optimize_for = LITE_RUNTIME" option causes the compiler to
115 generate code which only depends libprotobuf-lite, which is much
116 smaller than libprotobuf but lacks descriptors, reflection, and some
117 other features.
118
119 %description lite -l pl.UTF-8
120 Biblioteka buforów protokołowych (Protocol Buffers) zbudowana dla
121 programów z opcją optimize_for = LITE_RUNTIME.
122
123 Opcja ta powoduje, że kompilator generuje kod, który wymaga tylko
124 biblioteki libprotobuf-lite, która jest mniejsza niż libprotobuf, ale
125 nie ma niektórych elementów, takich jak deskryptory czy refleksje.
126
127 %package devel
128 Summary:        Header files for Protocol Buffers libraries
129 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers)
130 Group:          Development/Libraries
131 Requires:       %{name} = %{version}-%{release}
132 Requires:       %{name}-libs = %{version}-%{release}
133 Requires:       %{name}-lite = %{version}-%{release}
134 Requires:       libstdc++-devel >= 6:4.7
135
136 %description devel
137 Header files for Protocol Buffers libraries.
138
139 %description devel -l pl.UTF-8
140 Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
141
142 %package static
143 Summary:        Static Protocol Buffers libraries
144 Summary(pl.UTF-8):      Statyczne biblioteki buforów protokołowych (Protocol Buffers)
145 Group:          Development/Libraries
146 Requires:       %{name}-devel = %{version}-%{release}
147
148 %description static
149 Static Protocol Buffers libraries.
150
151 %description static -l pl.UTF-8
152 Statyczne biblioteki buforów protokołowych (Protocol Buffers).
153
154 %package -n python-protobuf
155 Summary:        Python 2 bindings for Protocol Buffers
156 Summary(pl.UTF-8):      Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers)
157 Group:          Development/Languages/Python
158 Requires:       python-modules >= 1:2.7
159 # does not use C++ library at this time
160
161 %description -n python-protobuf
162 Python 2 bindings for Protocol Buffers.
163
164 %description -n python-protobuf -l pl.UTF-8
165 Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers).
166
167 %package -n python3-protobuf
168 Summary:        Python 3 bindings for Protocol Buffers
169 Summary(pl.UTF-8):      Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers)
170 Group:          Development/Languages/Python
171 Requires:       python3-modules >= 1:3.3
172 # does not use C++ library at this time
173
174 %description -n python3-protobuf
175 Python 3 bindings for Protocol Buffers.
176
177 %description -n python3-protobuf -l pl.UTF-8
178 Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers).
179
180 %package -n ruby-google-protobuf
181 Summary:        Ruby bindings for Google Protocol Buffers
182 Summary(pl.UTF-8):      Wiązania języka Ruby do biblioteki Google Protocol Buffers
183 Group:          Development/Languages
184 Requires:       ruby
185
186 %description -n ruby-google-protobuf
187 Ruby bindings for Google Protocol Buffers.
188
189 %description -n ruby-google-protobuf -l pl.UTF-8
190 Wiązania języka Ruby do biblioteki Google Protocol Buffers.
191
192 %package -n vim-syntax-protobuf
193 Summary:        Vim syntax highlighting for Protocol Buffers descriptions
194 Summary(pl.UTF-8):      Podświetlanie składni Vima dla opisów buforów protokołowych (Protocol Buffers)
195 Group:          Development/Libraries
196 Requires:       vim-rt >= 4:7.2.170
197
198 %description -n vim-syntax-protobuf
199 This package contains syntax highlighting for Protocol Buffers
200 descriptions in Vim editor.
201
202 %description -n vim-syntax-protobuf -l pl.UTF-8
203 Ten pakiet zawiera pliki podświetlania składni edytora Vim dla
204 opisów buforów protokołowych (Protocol Buffers).
205
206 %prep
207 %setup -q
208 %patch0 -p1
209 %patch1 -p1
210 %patch2 -p1
211
212 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' \
213       examples/add_person.py \
214       examples/list_people.py
215
216 %build
217 %{__libtoolize}
218 %{__aclocal} -I m4
219 %{__autoconf}
220 %{__autoheader}
221 %{__automake}
222 # Additional variables defined according to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192821
223 %configure \
224         CFLAGS='%{rpmcflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
225         CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
226         --disable-silent-rules \
227         --disable-external-gtest
228 %{__make}
229
230 cd python
231 %if %{with python2}
232 %py_build
233 %endif
234 %if %{with python3}
235 %py3_build
236 %endif
237 cd ..
238
239 %if %{with ruby}
240 cd ruby
241 rake
242 #rake clobber_package gem
243 cd ..
244 %endif
245
246 %if %{with tests}
247 %{__make} check
248 %endif
249
250 %install
251 rm -rf $RPM_BUILD_ROOT
252 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
253
254 %{__make} install \
255         STRIPBINARIES=no \
256         INSTALL="install -p"  \
257         CPPROG="cp -p" \
258         DESTDIR=$RPM_BUILD_ROOT
259
260 install -d $RPM_BUILD_ROOT%{_vimdatadir}/{syntax,ftdetect}
261 cp -p editors/proto.vim $RPM_BUILD_ROOT%{_vimdatadir}/syntax/proto.vim
262 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_vimdatadir}/ftdetect/proto.vim
263
264 cd python
265 %if %{with python2}
266 %py_install
267 %py_postclean
268 %endif
269 %if %{with python3}
270 %py3_install
271 %endif
272 cd ..
273
274 %if %{with ruby}
275 install -d $RPM_BUILD_ROOT{%{ruby_vendorarchdir}/google,%{ruby_vendorlibdir}/google,%{ruby_specdir}}
276 install ruby/lib/google/protobuf_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}/google
277 cp -pr ruby/lib/google/{protobuf,protobuf.rb} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/google
278 cp -p ruby/google-protobuf.gemspec $RPM_BUILD_ROOT%{ruby_specdir}/google-protobuf-%{version}.gemspec
279 %endif
280 cp -pr examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
281
282 %clean
283 rm -rf $RPM_BUILD_ROOT
284
285 %post   -p /sbin/ldconfig
286 %postun -p /sbin/ldconfig
287
288 %post   libs -p /sbin/ldconfig
289 %postun libs -p /sbin/ldconfig
290
291 %post   lite -p /sbin/ldconfig
292 %postun lite -p /sbin/ldconfig
293
294 %files
295 %defattr(644,root,root,755)
296 %doc CHANGES.txt CONTRIBUTORS.txt LICENSE README.md
297 %attr(755,root,root) %{_bindir}/protoc
298 %attr(755,root,root) %{_libdir}/libprotoc.so.*.*.*
299 %attr(755,root,root) %ghost %{_libdir}/libprotoc.so.24
300
301 %files libs
302 %defattr(644,root,root,755)
303 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
304 %attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.24
305
306 %files lite
307 %defattr(644,root,root,755)
308 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so.*.*.*
309 %attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.24
310
311 %files devel
312 %defattr(644,root,root,755)
313 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so
314 %attr(755,root,root) %{_libdir}/libprotobuf.so
315 %attr(755,root,root) %{_libdir}/libprotoc.so
316 %{_libdir}/libprotobuf-lite.la
317 %{_libdir}/libprotobuf.la
318 %{_libdir}/libprotoc.la
319 # XXX: dir shared with libtcmalloc
320 %dir %{_includedir}/google
321 %{_includedir}/google/protobuf
322 %{_pkgconfigdir}/protobuf-lite.pc
323 %{_pkgconfigdir}/protobuf.pc
324 %{_examplesdir}/%{name}-%{version}
325
326 %files static
327 %defattr(644,root,root,755)
328 %{_libdir}/libprotobuf-lite.a
329 %{_libdir}/libprotobuf.a
330 %{_libdir}/libprotoc.a
331
332 %if %{with python2}
333 %files -n python-protobuf
334 %defattr(644,root,root,755)
335 %doc python/README.md
336 %dir %{py_sitescriptdir}/google
337 %{py_sitescriptdir}/google/protobuf
338 %{py_sitescriptdir}/protobuf-%{version}-py*.egg-info
339 %{py_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
340 %endif
341
342 %if %{with python3}
343 %files -n python3-protobuf
344 %defattr(644,root,root,755)
345 %doc python/README.md
346 %dir %{py3_sitescriptdir}/google
347 %{py3_sitescriptdir}/google/protobuf
348 %{py3_sitescriptdir}/protobuf-%{version}-py*.egg-info
349 %{py3_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
350 %endif
351
352 %if %{with ruby}
353 %files -n ruby-google-protobuf
354 %defattr(644,root,root,755)
355 %doc ruby/README.md
356 %dir %{ruby_vendorarchdir}/google
357 %attr(755,root,root) %{ruby_vendorarchdir}/google/protobuf_c.so
358 %dir %{ruby_vendorlibdir}/google
359 %{ruby_vendorlibdir}/google/protobuf.rb
360 %{ruby_vendorlibdir}/google/protobuf
361 %{ruby_specdir}/google-protobuf-%{version}.gemspec
362 %endif
363
364 %files -n vim-syntax-protobuf
365 %defattr(644,root,root,755)
366 %{_datadir}/vim/ftdetect/proto.vim
367 %{_datadir}/vim/syntax/proto.vim
This page took 0.094427 seconds and 3 git commands to generate.