]> git.pld-linux.org Git - packages/protobuf.git/blobdiff - protobuf.spec
- up to 3.2.1
[packages/protobuf.git] / protobuf.spec
index e368cc22c99174c0dda86ef4c7e98c939da76876..312896a0bb75170666b6e6a4e3448519c236f8e7 100644 (file)
@@ -1,47 +1,68 @@
 # TODO:
-#      - add bindings for java
-#      - tests fail: 2 of 5 tests failed
+# - add bindings for java (maven build)
+# - add bindings for javascript
+# - add bindings for csharp
 #
 # Conditional build:
-#
-%bcond_without python  # Python bindings
-%bcond_with            tests   # build with tests
+%bcond_without python2 # Python 2.x bindings
+%bcond_without python3 # Python 3.x bindings
+%bcond_without ruby    # Ruby bindings
+%bcond_without tests   # perform "make check"
 
 Summary:       Protocol Buffers - Google's data interchange format
 Summary(pl.UTF-8):     Protocol Buffers - format wymiany danych Google
 Name:          protobuf
-Version:       2.4.1
-Release:       2
+Version:       3.2.1
+Release:       1
 License:       BSD
 Group:         Libraries
-Source0:       http://protobuf.googlecode.com/files/%{name}-%{version}.tar.bz2
-# Source0-md5: ed436802019c9e1f40cc750eaf78f318
+#Source0Download: https://github.com/google/protobuf/releases
+Source0:       https://github.com/google/protobuf/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 94d3a8148c35cedd2db953245e057a67
 Source1:       ftdetect-proto.vim
 Patch0:                system-gtest.patch
-URL:           http://code.google.com/p/protobuf/
-BuildRequires: autoconf
-BuildRequires: automake
+Patch1:                fix-macro-redefinitions.patch
+URL:           https://github.com/google/protobuf/
+BuildRequires: autoconf >= 2.59
+BuildRequires: automake >= 1:1.9
+%{?with_tests:BuildRequires:   gmock-devel}
 %{?with_tests:BuildRequires:   gtest-devel}
 BuildRequires: libstdc++-devel
+BuildRequires: libtool
 BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.219
-BuildRequires: zlib-devel
-%if %{with python}
+%if %{with python2}
+BuildRequires: python-modules >= 1:2.6
 BuildRequires: python-setuptools
+%endif
+%if %{with python3}
+BuildRequires: python3-modules >= 1:3.3
+BuildRequires: python3-setuptools
+%endif
+%if %{with python2} || %{with python3}
 BuildRequires: rpm-pythonprov
 %endif
+BuildRequires: rpmbuild(macros) >= 1.714
+%if %{with ruby}
+BuildRequires: ruby-devel
+BuildRequires: ruby-rake
+BuildRequires: ruby-rake-compiler
+%endif
+BuildRequires: zlib-devel >= 1.2.0.4
 Requires:      %{name}-libs = %{version}-%{release}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _vimdatadir     %{_datadir}/vim
 
+# triggers bogus "overflow in constant expression" errors with gcc 4.9 .. 5.4
+%define                filterout       -fwrapv
+
 %description
 Protocol Buffers are a way of encoding structured data in an efficient
 yet extensible format. Google uses Protocol Buffers for almost all of
 its internal RPC protocols and file formats.
 
 Protocol buffers are a flexible, efficient, automated mechanism for
-serializing structured data  think XML, but smaller, faster, and
+serializing structured data - think XML, but smaller, faster, and
 simpler. You define how you want your data to be structured once, then
 you can use special generated source code to easily write and read
 your structured data to and from a variety of data streams and using a
@@ -49,9 +70,14 @@ variety of languages. You can even update your data structure without
 breaking deployed programs that are compiled against the "old" format.
 
 This package contains Protocol Buffers compiler for all programming
-languages
+languages.
 
 %description -l pl.UTF-8
+Bufory protokołowe (Protocol Buffers) to sposób kodowania danych
+strukturalnych w wydajny i rozszerzalny sposób. Google używa buforów
+protokołowych do prawie wszystkich wewnętrznych protokołów RPC i
+formatów plików.
+
 Bufory protokołowe to elastyczny, wydajny i zautomatyzowany sposób
 serializacji danych strukturalnych - podobny do XML-a, ale mniejszy,
 szybszy i prostszy. Definiuje się raz, jaką strukturę mają mieć dane,
@@ -60,94 +86,154 @@ zapisu i odczytu danych strukturalnych do i z różnych strumieni
 danych, z poziomu różnych języków. Można nawet uaktualniać strukturę
 danych bez psucia programów skompilowanych w oparciu o "stary" format.
 
-Google używa buforów protokołowych (Protocol Buffers) do prawie
-wszystkich wewnętrznych protokołów RPC i formatów plików.
+Ten pakiet zawiera kompilator buforów protokołowych dla wszystkich
+języków programowania. 
 
 %package libs
-Summary:       protobuf libraries
-Summary(pl.UTF-8):     Biblioteki protobuf
+Summary:       Protocol Buffers library
+Summary(pl.UTF-8):     Biblioteka buforów protokołowych (Protocol Buffers)
 Group:         Libraries
+Requires:      zlib >= 1.2.0.4
 
 %description libs
-protobuf libraries.
+Protocol Buffers library.
 
 %description libs -l pl.UTF-8
-Biblioteki protobuf.
+Biblioteka buforów protokołowych (Protocol Buffers).
 
 %package lite
-Summary:       Protocol Buffers LITE_RUNTIME libraries
-Group:         Development/Libraries
+Summary:       Protocol Buffers LITE_RUNTIME library
+Summary(pl.UTF-8):     Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
+Group:         Libraries
 
 %description lite
-Protocol Buffers built with optimize_for = LITE_RUNTIME.
+Protocol Buffers library for programs built with optimize_for =
+LITE_RUNTIME.
 
 The "optimize_for = LITE_RUNTIME" option causes the compiler to
 generate code which only depends libprotobuf-lite, which is much
 smaller than libprotobuf but lacks descriptors, reflection, and some
 other features.
 
+%description lite -l pl.UTF-8
+Biblioteka buforów protokołowych (Protocol Buffers) zbudowana dla
+programów z opcją optimize_for = LITE_RUNTIME.
+
+Opcja ta powoduje, że kompilator generuje kod, który wymaga tylko
+biblioteki libprotobuf-lite, która jest mniejsza niż libprotobuf, ale
+nie ma niektórych elementów, takich jak deskryptory czy refleksje.
+
 %package devel
-Summary:       Protocol Buffers C++ headers and libraries
-Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek protobuf
+Summary:       Header files for Protocol Buffers libraries
+Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers)
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
+Requires:      %{name}-lite = %{version}-%{release}
 Requires:      libstdc++-devel
 
 %description devel
-This package contains Protocol Buffers compiler for all languages and
-C++ headers and libraries
+Header files for Protocol Buffers libraries.
 
 %description devel -l pl.UTF-8
-Pliki nagłówkowe bibliotek protobuf.
+Pliki nagłówkowe bibliotek buforów protokołowych (Protocol Buffers).
 
 %package static
-Summary:       Static development files for protobuf
-Summary(pl.UTF-8):     Statyczne biblioteki protobuf
+Summary:       Static Protocol Buffers libraries
+Summary(pl.UTF-8):     Statyczne biblioteki buforów protokołowych (Protocol Buffers)
 Group:         Development/Libraries
 Requires:      %{name}-devel = %{version}-%{release}
 
 %description static
-Static libraries for Protocol Buffers
+Static Protocol Buffers libraries.
 
 %description static -l pl.UTF-8
-Statyczne biblioteki protobuf.
+Statyczne biblioteki buforów protokołowych (Protocol Buffers).
 
 %package -n python-protobuf
-Summary:       Python bindings for Google Protocol Buffers
-Group:         Development/Languages
+Summary:       Python 2 bindings for Protocol Buffers
+Summary(pl.UTF-8):     Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers)
+Group:         Development/Languages/Python
+Requires:      python-modules >= 1:2.6
 # does not use C++ library at this time
-Conflicts:     %{name} < %{version}
-Conflicts:     %{name} > %{version}
 
 %description -n python-protobuf
-This package contains Python libraries for Google Protocol Buffers
+Python 2 bindings for Protocol Buffers.
+
+%description -n python-protobuf -l pl.UTF-8
+Wiązania Pythona 2 do buforów protokołowych (Protocol Buffers).
+
+%package -n python3-protobuf
+Summary:       Python 3 bindings for Protocol Buffers
+Summary(pl.UTF-8):     Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers)
+Group:         Development/Languages/Python
+Requires:      python3-modules >= 1:3.3
+# does not use C++ library at this time
+
+%description -n python3-protobuf
+Python 3 bindings for Protocol Buffers.
+
+%description -n python3-protobuf -l pl.UTF-8
+Wiązania Pythona 3 do buforów protokołowych (Protocol Buffers).
+
+%package -n ruby-google-protobuf
+Summary:       Ruby bindings for Google Protocol Buffers
+Summary(pl.UTF-8):     Wiązania języka Ruby do biblioteki Google Protocol Buffers
+Group:         Development/Languages
+Requires:      ruby
+
+%description -n ruby-google-protobuf
+Ruby bindings for Google Protocol Buffers.
+
+%description -n ruby-google-protobuf -l pl.UTF-8
+Wiązania języka Ruby do biblioteki Google Protocol Buffers.
 
 %package -n vim-syntax-protobuf
-Summary:       Vim syntax highlighting for Google Protocol Buffers descriptions
+Summary:       Vim syntax highlighting for Protocol Buffers descriptions
+Summary(pl.UTF-8):     Podświetlanie składni Vima dla opisów buforów protokołowych (Protocol Buffers)
 Group:         Development/Libraries
 Requires:      vim-rt >= 4:7.2.170
 
 %description -n vim-syntax-protobuf
-This package contains syntax highlighting for Google Protocol Buffers
-descriptions in Vim editor
+This package contains syntax highlighting for Protocol Buffers
+descriptions in Vim editor.
+
+%description -n vim-syntax-protobuf -l pl.UTF-8
+Ten pakiet zawiera pliki podświetlania składni edytora Vim dla
+opisów buforów protokołowych (Protocol Buffers).
 
 %prep
 %setup -q
 %patch0 -p1
-%{__rm} -r gtest
+%patch1 -p1
+
+ln -s /usr/src/gmock/src/gmock*.cc src
 
 %build
+%{__libtoolize}
 %{__aclocal} -I m4
 %{__autoconf}
+%{__autoheader}
 %{__automake}
-%configure
+# Additional variables defined according to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192821
+%configure \
+       CFLAGS='%{rpmcflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
+       CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI'
 %{__make}
 
-%if %{with python}
 cd python
-%{__python} setup.py build
-%{__sed} -i -e 1d build/lib/google/protobuf/descriptor_pb2.py
+%if %{with python2}
+%py_build
+%endif
+%if %{with python3}
+%py3_build
+%endif
+cd ..
+
+%if %{with ruby}
+cd ruby
+rake
+#rake clobber_package gem
 cd ..
 %endif
 
@@ -169,16 +255,22 @@ install -d $RPM_BUILD_ROOT%{_vimdatadir}/{syntax,ftdetect}
 cp -p editors/proto.vim $RPM_BUILD_ROOT%{_vimdatadir}/syntax/proto.vim
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_vimdatadir}/ftdetect/proto.vim
 
-%if %{with python}
 cd python
-%{__python} setup.py install \
-       --root=$RPM_BUILD_ROOT \
-       --single-version-externally-managed \
-       --optimize=2
+%if %{with python2}
+%py_install
 %py_postclean
-cd ..
 %endif
+%if %{with python3}
+%py3_install
+%endif
+cd ..
 
+%if %{with ruby}
+install -d $RPM_BUILD_ROOT{%{ruby_vendorarchdir}/google,%{ruby_vendorlibdir}/google,%{ruby_specdir}}
+install ruby/lib/google/protobuf_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}/google
+cp -pr ruby/lib/google/{protobuf,protobuf.rb} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/google
+cp -p ruby/google-protobuf.gemspec $RPM_BUILD_ROOT%{ruby_specdir}/google-protobuf-%{version}.gemspec
+%endif
 cp -p examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 %clean
@@ -195,20 +287,20 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc CHANGES.txt CONTRIBUTORS.txt README.txt
+%doc CHANGES.txt CONTRIBUTORS.txt LICENSE README.md
 %attr(755,root,root) %{_bindir}/protoc
 %attr(755,root,root) %{_libdir}/libprotoc.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotoc.so.7
+%attr(755,root,root) %ghost %{_libdir}/libprotoc.so.12
 
 %files libs
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.7
+%attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.12
 
 %files lite
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libprotobuf-lite.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.7
+%attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.12
 
 %files devel
 %defattr(644,root,root,755)
@@ -218,10 +310,12 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libprotobuf-lite.la
 %{_libdir}/libprotobuf.la
 %{_libdir}/libprotoc.la
-%{_includedir}/google
-%{_examplesdir}/%{name}-%{version}
+# XXX: dir shared with libtcmalloc
+%dir %{_includedir}/google
+%{_includedir}/google/protobuf
 %{_pkgconfigdir}/protobuf-lite.pc
 %{_pkgconfigdir}/protobuf.pc
+%{_examplesdir}/%{name}-%{version}
 
 %files static
 %defattr(644,root,root,755)
@@ -229,14 +323,36 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libprotobuf.a
 %{_libdir}/libprotoc.a
 
-%if %{with python}
+%if %{with python2}
 %files -n python-protobuf
 %defattr(644,root,root,755)
-%doc python/README.txt
+%doc python/README.md
 %dir %{py_sitescriptdir}/google
 %{py_sitescriptdir}/google/protobuf
-%{py_sitescriptdir}/protobuf-%{version}-py*.egg-info
-%{py_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
+%{py_sitescriptdir}/protobuf-*-py*.egg-info
+%{py_sitescriptdir}/protobuf-*-py*-nspkg.pth
+%endif
+
+%if %{with python3}
+%files -n python3-protobuf
+%defattr(644,root,root,755)
+%doc python/README.md
+%dir %{py3_sitescriptdir}/google
+%{py3_sitescriptdir}/google/protobuf
+%{py3_sitescriptdir}/protobuf-*-py*.egg-info
+%{py3_sitescriptdir}/protobuf-*-py*-nspkg.pth
+%endif
+
+%if %{with ruby}
+%files -n ruby-google-protobuf
+%defattr(644,root,root,755)
+%doc ruby/README.md
+%dir %{ruby_vendorarchdir}/google
+%attr(755,root,root) %{ruby_vendorarchdir}/google/protobuf_c.so
+%dir %{ruby_vendorlibdir}/google
+%{ruby_vendorlibdir}/google/protobuf.rb
+%{ruby_vendorlibdir}/google/protobuf
+%{ruby_specdir}/google-protobuf-%{version}.gemspec
 %endif
 
 %files -n vim-syntax-protobuf
This page took 0.093599 seconds and 4 git commands to generate.