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