]> git.pld-linux.org Git - packages/protobuf.git/blob - protobuf.spec
- up to 3.11.4
[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 Summary:        Protocol Buffers - Google's data interchange format
13 Summary(pl.UTF-8):      Protocol Buffers - format wymiany danych Google
14 Name:           protobuf
15 Version:        3.11.4
16 Release:        1
17 License:        BSD
18 Group:          Libraries
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:  47c0308941a8f2c2f838e737f87cc3a1
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
33 %if %{with python2}
34 BuildRequires:  python-modules >= 1:2.6
35 BuildRequires:  python-setuptools
36 %endif
37 %if %{with python3}
38 BuildRequires:  python3-modules >= 1:3.3
39 BuildRequires:  python3-setuptools
40 %endif
41 %if %{with python2} || %{with python3}
42 BuildRequires:  rpm-pythonprov
43 %endif
44 BuildRequires:  rpmbuild(macros) >= 1.714
45 %if %{with ruby}
46 BuildRequires:  ruby-devel
47 BuildRequires:  ruby-rake
48 BuildRequires:  ruby-rake-compiler
49 %endif
50 BuildRequires:  zlib-devel >= 1.2.0.4
51 Requires:       %{name}-libs = %{version}-%{release}
52 BuildRoot:      %{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
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.
63
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.
71
72 This package contains Protocol Buffers compiler for all programming
73 languages.
74
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
79 formatów plików.
80
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.
88
89 Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
90 języków programowania. 
91
92 %package libs
93 Summary:        Protocol Buffers library
94 Summary(pl.UTF-8):      Biblioteka buforów protokołowych (Protocol Buffers)
95 Group:          Libraries
96 Requires:       zlib >= 1.2.0.4
97
98 %description libs
99 Protocol Buffers library.
100
101 %description libs -l pl.UTF-8
102 Biblioteka buforów protokołowych (Protocol Buffers).
103
104 %package lite
105 Summary:        Protocol Buffers LITE_RUNTIME library
106 Summary(pl.UTF-8):      Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
107 Group:          Libraries
108
109 %description lite
110 Protocol Buffers library for programs built with optimize_for =
111 LITE_RUNTIME.
112
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
116 other features.
117
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.
121
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.
125
126 %package devel
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
134
135 %description devel
136 Header files for Protocol Buffers libraries.
137
138 %description devel -l pl.UTF-8
139 Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
140
141 %package static
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}
146
147 %description static
148 Static Protocol Buffers libraries.
149
150 %description static -l pl.UTF-8
151 Statyczne biblioteki buforów protokołowych (Protocol Buffers).
152
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
159
160 %description -n python-protobuf
161 Python 2 bindings for Protocol Buffers.
162
163 %description -n python-protobuf -l pl.UTF-8
164 Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers).
165
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
172
173 %description -n python3-protobuf
174 Python 3 bindings for Protocol Buffers.
175
176 %description -n python3-protobuf -l pl.UTF-8
177 Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers).
178
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
183 Requires:       ruby
184
185 %description -n ruby-google-protobuf
186 Ruby bindings for Google Protocol Buffers.
187
188 %description -n ruby-google-protobuf -l pl.UTF-8
189 Wiązania języka Ruby do biblioteki Google Protocol Buffers.
190
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
196
197 %description -n vim-syntax-protobuf
198 This package contains syntax highlighting for Protocol Buffers
199 descriptions in Vim editor.
200
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).
204
205 %prep
206 %setup -q
207 # protobuf needs gtest 1.9.0 (not released yet), use bundled version
208 #patch0 -p1
209 %patch1 -p1
210
211 #ln -s /usr/src/gmock/src/gmock*.cc src
212
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}
215
216 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' \
217       examples/add_person.py \
218       examples/list_people.py
219
220 %build
221 %{__libtoolize}
222 %{__aclocal} -I m4
223 %{__autoconf}
224 %{__autoheader}
225 %{__automake}
226 # Additional variables defined according to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192821
227 %configure \
228         CFLAGS='%{rpmcflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
229         CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
230         --disable-silent-rules \
231         --disable-external-gtest
232 %{__make}
233
234 cd python
235 %if %{with python2}
236 %py_build
237 %endif
238 %if %{with python3}
239 %py3_build
240 %endif
241 cd ..
242
243 %if %{with ruby}
244 cd ruby
245 rake
246 #rake clobber_package gem
247 cd ..
248 %endif
249
250 %if %{with tests}
251 %{__make} check
252 %endif
253
254 %install
255 rm -rf $RPM_BUILD_ROOT
256 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
257
258 %{__make} install \
259         STRIPBINARIES=no \
260         INSTALL="install -p"  \
261         CPPROG="cp -p" \
262         DESTDIR=$RPM_BUILD_ROOT
263
264 install -d $RPM_BUILD_ROOT%{_vimdatadir}/{syntax,ftdetect}
265 cp -p editors/proto.vim $RPM_BUILD_ROOT%{_vimdatadir}/syntax/proto.vim
266 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_vimdatadir}/ftdetect/proto.vim
267
268 cd python
269 %if %{with python2}
270 %py_install
271 %py_postclean
272 %endif
273 %if %{with python3}
274 %py3_install
275 %endif
276 cd ..
277
278 %if %{with ruby}
279 install -d $RPM_BUILD_ROOT{%{ruby_vendorarchdir}/google,%{ruby_vendorlibdir}/google,%{ruby_specdir}}
280 install ruby/lib/google/protobuf_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}/google
281 cp -pr ruby/lib/google/{protobuf,protobuf.rb} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/google
282 cp -p ruby/google-protobuf.gemspec $RPM_BUILD_ROOT%{ruby_specdir}/google-protobuf-%{version}.gemspec
283 %endif
284 cp -pr examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
285
286 %clean
287 rm -rf $RPM_BUILD_ROOT
288
289 %post   -p /sbin/ldconfig
290 %postun -p /sbin/ldconfig
291
292 %post   libs -p /sbin/ldconfig
293 %postun libs -p /sbin/ldconfig
294
295 %post   lite -p /sbin/ldconfig
296 %postun lite -p /sbin/ldconfig
297
298 %files
299 %defattr(644,root,root,755)
300 %doc CHANGES.txt CONTRIBUTORS.txt LICENSE README.md
301 %attr(755,root,root) %{_bindir}/protoc
302 %attr(755,root,root) %{_libdir}/libprotoc.so.*.*.*
303 %attr(755,root,root) %ghost %{_libdir}/libprotoc.so.22
304
305 %files libs
306 %defattr(644,root,root,755)
307 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
308 %attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.22
309
310 %files lite
311 %defattr(644,root,root,755)
312 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so.*.*.*
313 %attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.22
314
315 %files devel
316 %defattr(644,root,root,755)
317 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so
318 %attr(755,root,root) %{_libdir}/libprotobuf.so
319 %attr(755,root,root) %{_libdir}/libprotoc.so
320 %{_libdir}/libprotobuf-lite.la
321 %{_libdir}/libprotobuf.la
322 %{_libdir}/libprotoc.la
323 # XXX: dir shared with libtcmalloc
324 %dir %{_includedir}/google
325 %{_includedir}/google/protobuf
326 %{_pkgconfigdir}/protobuf-lite.pc
327 %{_pkgconfigdir}/protobuf.pc
328 %{_examplesdir}/%{name}-%{version}
329
330 %files static
331 %defattr(644,root,root,755)
332 %{_libdir}/libprotobuf-lite.a
333 %{_libdir}/libprotobuf.a
334 %{_libdir}/libprotoc.a
335
336 %if %{with python2}
337 %files -n python-protobuf
338 %defattr(644,root,root,755)
339 %doc python/README.md
340 %dir %{py_sitescriptdir}/google
341 %{py_sitescriptdir}/google/protobuf
342 %{py_sitescriptdir}/protobuf-%{version}-py*.egg-info
343 %{py_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
344 %endif
345
346 %if %{with python3}
347 %files -n python3-protobuf
348 %defattr(644,root,root,755)
349 %doc python/README.md
350 %dir %{py3_sitescriptdir}/google
351 %{py3_sitescriptdir}/google/protobuf
352 %{py3_sitescriptdir}/protobuf-%{version}-py*.egg-info
353 %{py3_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
354 %endif
355
356 %if %{with ruby}
357 %files -n ruby-google-protobuf
358 %defattr(644,root,root,755)
359 %doc ruby/README.md
360 %dir %{ruby_vendorarchdir}/google
361 %attr(755,root,root) %{ruby_vendorarchdir}/google/protobuf_c.so
362 %dir %{ruby_vendorlibdir}/google
363 %{ruby_vendorlibdir}/google/protobuf.rb
364 %{ruby_vendorlibdir}/google/protobuf
365 %{ruby_specdir}/google-protobuf-%{version}.gemspec
366 %endif
367
368 %files -n vim-syntax-protobuf
369 %defattr(644,root,root,755)
370 %{_datadir}/vim/ftdetect/proto.vim
371 %{_datadir}/vim/syntax/proto.vim
This page took 0.101954 seconds and 3 git commands to generate.