2 # - add bindings for java (maven build)
3 # - add bindings for javascript
4 # - add bindings for csharp
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"
12 Summary: Protocol Buffers - Google's data interchange format
13 Summary(pl.UTF-8): Protocol Buffers - format wymiany danych Google
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
35 BuildRequires: python-modules >= 1:2.7
36 BuildRequires: python-setuptools
39 BuildRequires: python3-modules >= 1:3.3
40 BuildRequires: python3-setuptools
42 %if %{with python2} || %{with python3}
43 BuildRequires: rpm-pythonprov
45 BuildRequires: rpmbuild(macros) >= 1.714
47 BuildRequires: ruby-devel
48 BuildRequires: ruby-rake
49 BuildRequires: ruby-rake-compiler
51 BuildRequires: zlib-devel >= 1.2.0.4
52 Requires: %{name}-libs = %{version}-%{release}
53 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55 %define _vimdatadir %{_datadir}/vim
57 # triggers bogus "overflow in constant expression" errors with gcc 4.9 .. 5.4
58 %define filterout -fwrapv
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.
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.
73 This package contains Protocol Buffers compiler for all programming
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
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.
90 Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
91 języków programowania.
94 Summary: Protocol Buffers library
95 Summary(pl.UTF-8): Biblioteka buforów protokołowych (Protocol Buffers)
97 Requires: zlib >= 1.2.0.4
100 Protocol Buffers library.
102 %description libs -l pl.UTF-8
103 Biblioteka buforów protokołowych (Protocol Buffers).
106 Summary: Protocol Buffers LITE_RUNTIME library
107 Summary(pl.UTF-8): Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
111 Protocol Buffers library for programs built with optimize_for =
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
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.
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.
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
137 Header files for Protocol Buffers libraries.
139 %description devel -l pl.UTF-8
140 Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
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}
149 Static Protocol Buffers libraries.
151 %description static -l pl.UTF-8
152 Statyczne biblioteki buforów protokołowych (Protocol Buffers).
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
161 %description -n python-protobuf
162 Python 2 bindings for Protocol Buffers.
164 %description -n python-protobuf -l pl.UTF-8
165 Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers).
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
174 %description -n python3-protobuf
175 Python 3 bindings for Protocol Buffers.
177 %description -n python3-protobuf -l pl.UTF-8
178 Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers).
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
186 %description -n ruby-google-protobuf
187 Ruby bindings for Google Protocol Buffers.
189 %description -n ruby-google-protobuf -l pl.UTF-8
190 Wiązania języka Ruby do biblioteki Google Protocol Buffers.
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
198 %description -n vim-syntax-protobuf
199 This package contains syntax highlighting for Protocol Buffers
200 descriptions in Vim editor.
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).
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
222 # Additional variables defined according to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192821
224 CFLAGS='%{rpmcflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
225 CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
226 --disable-silent-rules \
227 --disable-external-gtest
242 #rake clobber_package gem
251 rm -rf $RPM_BUILD_ROOT
252 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
256 INSTALL="install -p" \
258 DESTDIR=$RPM_BUILD_ROOT
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
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
280 cp -pr examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
283 rm -rf $RPM_BUILD_ROOT
285 %post -p /sbin/ldconfig
286 %postun -p /sbin/ldconfig
288 %post libs -p /sbin/ldconfig
289 %postun libs -p /sbin/ldconfig
291 %post lite -p /sbin/ldconfig
292 %postun lite -p /sbin/ldconfig
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
302 %defattr(644,root,root,755)
303 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
304 %attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.24
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
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}
327 %defattr(644,root,root,755)
328 %{_libdir}/libprotobuf-lite.a
329 %{_libdir}/libprotobuf.a
330 %{_libdir}/libprotoc.a
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
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
353 %files -n ruby-google-protobuf
354 %defattr(644,root,root,755)
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
364 %files -n vim-syntax-protobuf
365 %defattr(644,root,root,755)
366 %{_datadir}/vim/ftdetect/proto.vim
367 %{_datadir}/vim/syntax/proto.vim