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