]> git.pld-linux.org Git - packages/protobuf.git/blobdiff - protobuf.spec
- up to 3.2.1
[packages/protobuf.git] / protobuf.spec
index 9ed507ebd19e8392cc00b0557843acdb84351b96..312896a0bb75170666b6e6a4e3448519c236f8e7 100644 (file)
-#
 # TODO:
-#      - add bindings for java and python
-#      - add vim syntax package
+# - add bindings for java (maven build)
+# - add bindings for javascript
+# - add bindings for csharp
 #
+# Conditional build:
+%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.0.3
+Version:       3.2.1
 Release:       1
 License:       BSD
 Group:         Libraries
-Source0:       http://protobuf.googlecode.com/files/%{name}-%{version}.tar.bz2
-# Source0-md5: 37e6e4d63434672c70bd977be9c372cb
-URL:           http://code.google.com/p/protobuf/
+#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
+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
+%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 flexible, efficient, automated mechanism
-for serializing structured data - similar to 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 variety of languages.
-You can even update your data structure without breaking deployed
-programs that are compiled against the "old" format.
+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
+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
+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.
 
-Google uses Protocol Buffers for almost all of its internal RPC
-protocols and file formats. 
+%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.
 
-#%description -l pl.UTF-8
+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,
+a następnie używa specjalnie wygenerowanego kodu źródłowego do łatwego
+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.
+
+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 library
+Summary(pl.UTF-8):     Biblioteka LITE_RUNTIME buforów protokołowych (Protocol Buffers)
+Group:         Libraries
+
+%description lite
+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:       Header files for protobuf 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
-Header files for protobuf 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 protobuf libraries
-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 protobuf libraries.
+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 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
+
+%description -n python-protobuf
+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 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 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
+%patch1 -p1
+
+ln -s /usr/src/gmock/src/gmock*.cc src
 
 %build
-%configure
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+# 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}
 
+cd python
+%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
+
+%if %{with tests}
+%{__make} check
+%endif
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 %{__make} install \
+       STRIPBINARIES=no \
+       INSTALL="install -p"  \
+       CPPROG="cp -p" \
        DESTDIR=$RPM_BUILD_ROOT
 
-install examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+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
+
+cd python
+%if %{with python2}
+%py_install
+%py_postclean
+%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
 rm -rf $RPM_BUILD_ROOT
 
+%post  -p /sbin/ldconfig
+%postun        -p /sbin/ldconfig
+
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
+%post  lite -p /sbin/ldconfig
+%postun        lite -p /sbin/ldconfig
+
 %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.12
 
 %files libs
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libproto*.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.3
-%attr(755,root,root) %ghost %{_libdir}/libprotoc.so.3
+%attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
+%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.12
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/google
-%attr(755,root,root) %{_libdir}/libproto*.la
-%attr(755,root,root) %{_libdir}/libproto*.so
+%attr(755,root,root) %{_libdir}/libprotobuf-lite.so
+%attr(755,root,root) %{_libdir}/libprotobuf.so
+%attr(755,root,root) %{_libdir}/libprotoc.so
+%{_libdir}/libprotobuf-lite.la
+%{_libdir}/libprotobuf.la
+%{_libdir}/libprotoc.la
+# 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)
-%attr(755,root,root) %{_libdir}/libproto*.a
+%{_libdir}/libprotobuf-lite.a
+%{_libdir}/libprotobuf.a
+%{_libdir}/libprotoc.a
+
+%if %{with python2}
+%files -n python-protobuf
+%defattr(644,root,root,755)
+%doc python/README.md
+%dir %{py_sitescriptdir}/google
+%{py_sitescriptdir}/google/protobuf
+%{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
+%defattr(644,root,root,755)
+%{_datadir}/vim/ftdetect/proto.vim
+%{_datadir}/vim/syntax/proto.vim
This page took 0.088891 seconds and 4 git commands to generate.