2 # - add bindings for java (maven build)
3 # - add bindings for ruby
4 # - add bindings for javascript
5 # - add bindings for csharp
8 %bcond_without python # Python bindings
9 %bcond_without tests # perform "make check"
11 Summary: Protocol Buffers - Google's data interchange format
12 Summary(pl.UTF-8): Protocol Buffers - format wymiany danych Google
18 #Source0Download: https://github.com/google/protobuf/releases
19 Source0: https://github.com/google/protobuf/archive/v%{version}/%{name}-%{version}.tar.gz
20 # Source0-md5: 14a532a7538551d5def317bfca41dace
21 Source1: ftdetect-proto.vim
22 Patch0: system-gtest.patch
23 URL: https://github.com/google/protobuf/
24 BuildRequires: autoconf >= 2.59
25 BuildRequires: automake >= 1:1.9
26 %{?with_tests:BuildRequires: gmock-devel}
27 %{?with_tests:BuildRequires: gtest-devel}
28 BuildRequires: libstdc++-devel
29 BuildRequires: libtool
30 BuildRequires: pkgconfig
31 BuildRequires: rpmbuild(macros) >= 1.219
32 BuildRequires: zlib-devel >= 1.2.0.4
34 BuildRequires: python-google-apputils
35 BuildRequires: python-setuptools
36 BuildRequires: rpm-pythonprov
38 Requires: %{name}-libs = %{version}-%{release}
39 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41 %define _vimdatadir %{_datadir}/vim
43 # triggers bogus "overflow in constant expression" errors with gcc 4.9 .. 5.4
44 %define filterout -fwrapv
47 Protocol Buffers are a way of encoding structured data in an efficient
48 yet extensible format. Google uses Protocol Buffers for almost all of
49 its internal RPC protocols and file formats.
51 Protocol buffers are a flexible, efficient, automated mechanism for
52 serializing structured data - think XML, but smaller, faster, and
53 simpler. You define how you want your data to be structured once, then
54 you can use special generated source code to easily write and read
55 your structured data to and from a variety of data streams and using a
56 variety of languages. You can even update your data structure without
57 breaking deployed programs that are compiled against the "old" format.
59 This package contains Protocol Buffers compiler for all programming
62 %description -l pl.UTF-8
63 Bufory protokołowe (Protocol Buffers) to sposób kodowania danych
64 strukturalnych w wydajny i rozszerzalny sposób. Google używa buforów
65 protokołowych do prawie wszystkich wewnętrznych protokołów RPC i
68 Bufory protokołowe to elastyczny, wydajny i zautomatyzowany sposób
69 serializacji danych strukturalnych - podobny do XML-a, ale mniejszy,
70 szybszy i prostszy. Definiuje się raz, jaką strukturę mają mieć dane,
71 a następnie używa specjalnie wygenerowanego kodu źródłowego do łatwego
72 zapisu i odczytu danych strukturalnych do i z różnych strumieni
73 danych, z poziomu różnych języków. Można nawet uaktualniać strukturę
74 danych bez psucia programów skompilowanych w oparciu o "stary" format.
76 Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
77 języków programowania.
80 Summary: Protocol Buffers library
81 Summary(pl.UTF-8): Biblioteka buforów protokołowych (Protocol Buffers)
83 Requires: zlib >= 1.2.0.4
86 Protocol Buffers library.
88 %description libs -l pl.UTF-8
89 Biblioteka buforów protokołowych (Protocol Buffers).
92 Summary: Protocol Buffers LITE_RUNTIME library
93 Summary(pl.UTF-8): Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
97 Protocol Buffers library for programs built with optimize_for =
100 The "optimize_for = LITE_RUNTIME" option causes the compiler to
101 generate code which only depends libprotobuf-lite, which is much
102 smaller than libprotobuf but lacks descriptors, reflection, and some
105 %description lite -l pl.UTF-8
106 Biblioteka buforów protokołowych (Protocol Buffers) zbudowana dla
107 programów z opcją optimize_for = LITE_RUNTIME.
109 Opcja ta powoduje, że kompilator generuje kod, który wymaga tylko
110 biblioteki libprotobuf-lite, która jest mniejsza niż libprotobuf, ale
111 nie ma niektórych elementów, takich jak deskryptory czy refleksje.
114 Summary: Header files for Protocol Buffers libraries
115 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers)
116 Group: Development/Libraries
117 Requires: %{name} = %{version}-%{release}
118 Requires: %{name}-libs = %{version}-%{release}
119 Requires: %{name}-lite = %{version}-%{release}
120 Requires: libstdc++-devel
123 Header files for Protocol Buffers libraries.
125 %description devel -l pl.UTF-8
126 Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
129 Summary: Static Protocol Buffers libraries
130 Summary(pl.UTF-8): Statyczne biblioteki buforów protokołowych (Protocol Buffers)
131 Group: Development/Libraries
132 Requires: %{name}-devel = %{version}-%{release}
135 Static Protocol Buffers libraries.
137 %description static -l pl.UTF-8
138 Statyczne biblioteki buforów protokołowych (Protocol Buffers).
140 %package -n python-protobuf
141 Summary: Python bindings for Protocol Buffers
142 Summary(pl.UTF-8): Wiązania Pythona do buforów protokołowych (Protocol Buffers)
143 Group: Development/Languages/Python
144 # does not use C++ library at this time
145 Conflicts: %{name} < %{version}
146 Conflicts: %{name} > %{version}
148 %description -n python-protobuf
149 Python bindings for Protocol Buffers.
151 %description -n python-protobuf -l pl.UTF-8
152 Wiązania Pythona do buforów protokołowych (Protocol Buffers).
154 %package -n vim-syntax-protobuf
155 Summary: Vim syntax highlighting for Protocol Buffers descriptions
156 Summary(pl.UTF-8): Podświetlanie składni Vima dla opisów buforów protokołowych (Protocol Buffers)
157 Group: Development/Libraries
158 Requires: vim-rt >= 4:7.2.170
160 %description -n vim-syntax-protobuf
161 This package contains syntax highlighting for Protocol Buffers
162 descriptions in Vim editor.
164 %description -n vim-syntax-protobuf -l pl.UTF-8
165 Ten pakiet zawiera pliki podświetlania składni edytora Vim dla
166 opisów buforów protokołowych (Protocol Buffers).
172 ln -s /usr/src/gmock/src/gmock*.cc src
180 # Additional variables defined according to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192821
182 CFLAGS='%{rpmcflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
183 CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI'
197 rm -rf $RPM_BUILD_ROOT
198 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
202 INSTALL="install -p" \
204 DESTDIR=$RPM_BUILD_ROOT
206 install -d $RPM_BUILD_ROOT%{_vimdatadir}/{syntax,ftdetect}
207 cp -p editors/proto.vim $RPM_BUILD_ROOT%{_vimdatadir}/syntax/proto.vim
208 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_vimdatadir}/ftdetect/proto.vim
217 cp -p examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
220 rm -rf $RPM_BUILD_ROOT
222 %post -p /sbin/ldconfig
223 %postun -p /sbin/ldconfig
225 %post libs -p /sbin/ldconfig
226 %postun libs -p /sbin/ldconfig
228 %post lite -p /sbin/ldconfig
229 %postun lite -p /sbin/ldconfig
232 %defattr(644,root,root,755)
233 %doc CHANGES.txt CONTRIBUTORS.txt LICENSE README.md
234 %attr(755,root,root) %{_bindir}/protoc
235 %attr(755,root,root) %{_libdir}/libprotoc.so.*.*.*
236 %attr(755,root,root) %ghost %{_libdir}/libprotoc.so.11
239 %defattr(644,root,root,755)
240 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
241 %attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.11
244 %defattr(644,root,root,755)
245 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so.*.*.*
246 %attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.11
249 %defattr(644,root,root,755)
250 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so
251 %attr(755,root,root) %{_libdir}/libprotobuf.so
252 %attr(755,root,root) %{_libdir}/libprotoc.so
253 %{_libdir}/libprotobuf-lite.la
254 %{_libdir}/libprotobuf.la
255 %{_libdir}/libprotoc.la
256 # XXX: dir shared with libtcmalloc
257 %dir %{_includedir}/google
258 %{_includedir}/google/protobuf
259 %{_pkgconfigdir}/protobuf-lite.pc
260 %{_pkgconfigdir}/protobuf.pc
261 %{_examplesdir}/%{name}-%{version}
264 %defattr(644,root,root,755)
265 %{_libdir}/libprotobuf-lite.a
266 %{_libdir}/libprotobuf.a
267 %{_libdir}/libprotoc.a
270 %files -n python-protobuf
271 %defattr(644,root,root,755)
272 %doc python/README.md
273 %dir %{py_sitescriptdir}/google
274 %{py_sitescriptdir}/google/protobuf
275 %{py_sitescriptdir}/protobuf-%{version}-py*.egg-info
276 %{py_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
279 %files -n vim-syntax-protobuf
280 %defattr(644,root,root,755)
281 %{_datadir}/vim/ftdetect/proto.vim
282 %{_datadir}/vim/syntax/proto.vim