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: a44c3bbee380181c86f573b835294782
22 Source1: ftdetect-proto.vim
23 Patch0: system-gtest.patch
24 Patch1: no-wrap-memcpy.patch
25 URL: https://github.com/google/protobuf/
26 BuildRequires: autoconf >= 2.59
27 BuildRequires: automake >= 1:1.9
28 #%{?with_tests:BuildRequires: gmock-devel >= 1.9.0}
29 #%{?with_tests:BuildRequires: gtest-devel >= 1.9.0}
30 BuildRequires: libstdc++-devel >= 6:4.7
31 BuildRequires: libtool
32 BuildRequires: pkgconfig
34 BuildRequires: python-modules >= 1:2.6
35 BuildRequires: python-setuptools
38 BuildRequires: python3-modules >= 1:3.3
39 BuildRequires: python3-setuptools
41 %if %{with python2} || %{with python3}
42 BuildRequires: rpm-pythonprov
44 BuildRequires: rpmbuild(macros) >= 1.714
46 BuildRequires: ruby-devel
47 BuildRequires: ruby-rake
48 BuildRequires: ruby-rake-compiler
50 BuildRequires: zlib-devel >= 1.2.0.4
51 Requires: %{name}-libs = %{version}-%{release}
52 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
54 %define _vimdatadir %{_datadir}/vim
56 # triggers bogus "overflow in constant expression" errors with gcc 4.9 .. 5.4
57 %define filterout -fwrapv
60 Protocol Buffers are a way of encoding structured data in an efficient
61 yet extensible format. Google uses Protocol Buffers for almost all of
62 its internal RPC protocols and file formats.
64 Protocol buffers are a flexible, efficient, automated mechanism for
65 serializing structured data - think XML, but smaller, faster, and
66 simpler. You define how you want your data to be structured once, then
67 you can use special generated source code to easily write and read
68 your structured data to and from a variety of data streams and using a
69 variety of languages. You can even update your data structure without
70 breaking deployed programs that are compiled against the "old" format.
72 This package contains Protocol Buffers compiler for all programming
75 %description -l pl.UTF-8
76 Bufory protokołowe (Protocol Buffers) to sposób kodowania danych
77 strukturalnych w wydajny i rozszerzalny sposób. Google używa buforów
78 protokołowych do prawie wszystkich wewnętrznych protokołów RPC i
81 Bufory protokołowe to elastyczny, wydajny i zautomatyzowany sposób
82 serializacji danych strukturalnych - podobny do XML-a, ale mniejszy,
83 szybszy i prostszy. Definiuje się raz, jaką strukturę mają mieć dane,
84 a następnie używa specjalnie wygenerowanego kodu źródłowego do łatwego
85 zapisu i odczytu danych strukturalnych do i z różnych strumieni
86 danych, z poziomu różnych języków. Można nawet uaktualniać strukturę
87 danych bez psucia programów skompilowanych w oparciu o "stary" format.
89 Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
90 języków programowania.
93 Summary: Protocol Buffers library
94 Summary(pl.UTF-8): Biblioteka buforów protokołowych (Protocol Buffers)
96 Requires: zlib >= 1.2.0.4
99 Protocol Buffers library.
101 %description libs -l pl.UTF-8
102 Biblioteka buforów protokołowych (Protocol Buffers).
105 Summary: Protocol Buffers LITE_RUNTIME library
106 Summary(pl.UTF-8): Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
110 Protocol Buffers library for programs built with optimize_for =
113 The "optimize_for = LITE_RUNTIME" option causes the compiler to
114 generate code which only depends libprotobuf-lite, which is much
115 smaller than libprotobuf but lacks descriptors, reflection, and some
118 %description lite -l pl.UTF-8
119 Biblioteka buforów protokołowych (Protocol Buffers) zbudowana dla
120 programów z opcją optimize_for = LITE_RUNTIME.
122 Opcja ta powoduje, że kompilator generuje kod, który wymaga tylko
123 biblioteki libprotobuf-lite, która jest mniejsza niż libprotobuf, ale
124 nie ma niektórych elementów, takich jak deskryptory czy refleksje.
127 Summary: Header files for Protocol Buffers libraries
128 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers)
129 Group: Development/Libraries
130 Requires: %{name} = %{version}-%{release}
131 Requires: %{name}-libs = %{version}-%{release}
132 Requires: %{name}-lite = %{version}-%{release}
133 Requires: libstdc++-devel >= 6:4.7
136 Header files for Protocol Buffers libraries.
138 %description devel -l pl.UTF-8
139 Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
142 Summary: Static Protocol Buffers libraries
143 Summary(pl.UTF-8): Statyczne biblioteki buforów protokołowych (Protocol Buffers)
144 Group: Development/Libraries
145 Requires: %{name}-devel = %{version}-%{release}
148 Static Protocol Buffers libraries.
150 %description static -l pl.UTF-8
151 Statyczne biblioteki buforów protokołowych (Protocol Buffers).
153 %package -n python-protobuf
154 Summary: Python 2 bindings for Protocol Buffers
155 Summary(pl.UTF-8): Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers)
156 Group: Development/Languages/Python
157 Requires: python-modules >= 1:2.6
158 # does not use C++ library at this time
160 %description -n python-protobuf
161 Python 2 bindings for Protocol Buffers.
163 %description -n python-protobuf -l pl.UTF-8
164 Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers).
166 %package -n python3-protobuf
167 Summary: Python 3 bindings for Protocol Buffers
168 Summary(pl.UTF-8): Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers)
169 Group: Development/Languages/Python
170 Requires: python3-modules >= 1:3.3
171 # does not use C++ library at this time
173 %description -n python3-protobuf
174 Python 3 bindings for Protocol Buffers.
176 %description -n python3-protobuf -l pl.UTF-8
177 Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers).
179 %package -n ruby-google-protobuf
180 Summary: Ruby bindings for Google Protocol Buffers
181 Summary(pl.UTF-8): Wiązania języka Ruby do biblioteki Google Protocol Buffers
182 Group: Development/Languages
185 %description -n ruby-google-protobuf
186 Ruby bindings for Google Protocol Buffers.
188 %description -n ruby-google-protobuf -l pl.UTF-8
189 Wiązania języka Ruby do biblioteki Google Protocol Buffers.
191 %package -n vim-syntax-protobuf
192 Summary: Vim syntax highlighting for Protocol Buffers descriptions
193 Summary(pl.UTF-8): Podświetlanie składni Vima dla opisów buforów protokołowych (Protocol Buffers)
194 Group: Development/Libraries
195 Requires: vim-rt >= 4:7.2.170
197 %description -n vim-syntax-protobuf
198 This package contains syntax highlighting for Protocol Buffers
199 descriptions in Vim editor.
201 %description -n vim-syntax-protobuf -l pl.UTF-8
202 Ten pakiet zawiera pliki podświetlania składni edytora Vim dla
203 opisów buforów protokołowych (Protocol Buffers).
207 # protobuf needs gtest 1.9.0 (not released yet), use bundled version
211 #ln -s /usr/src/gmock/src/gmock*.cc src
213 # remove for gtest >= 1.9
214 #%{__sed} -i -e 's/INSTANTIATE_TEST_SUITE_P/INSTANTIATE_TEST_CASE_P/' src/google/protobuf/{compiler/command_line_interface_unittest.cc,descriptor_unittest.cc,dynamic_message_unittest.cc,map_field_test.cc,util/internal/default_value_objectwriter_test.cc,util/internal/protostream_objectsource_test.cc,util/internal/protostream_objectwriter_test.cc}
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.20
302 %defattr(644,root,root,755)
303 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
304 %attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.20
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.20
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