X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=protobuf.spec;h=312896a0bb75170666b6e6a4e3448519c236f8e7;hb=3820831;hp=21ef48e0e4dbbfe2431f53739189b5cda782bc7b;hpb=65c4a8fe805f7508578851bb6e60157cc9e2a9b1;p=packages%2Fprotobuf.git diff --git a/protobuf.spec b/protobuf.spec index 21ef48e..312896a 100644 --- a/protobuf.spec +++ b/protobuf.spec @@ -1,40 +1,61 @@ # TODO: # - add bindings for java (maven build) +# - add bindings for javascript +# - add bindings for csharp # # Conditional build: -%bcond_without python # Python bindings +%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.6.0 -Release: 3 +Version: 3.2.1 +Release: 1 License: BSD Group: Libraries +#Source0Download: https://github.com/google/protobuf/releases Source0: https://github.com/google/protobuf/archive/v%{version}/%{name}-%{version}.tar.gz -# Source0-md5: 99d5f73dcd473594bf8f245d7b0cfb77 +# 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 +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 >= 1.2.0.4 -%if %{with python} -BuildRequires: python-google-apputils +%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 @@ -130,18 +151,42 @@ Static Protocol Buffers libraries. Statyczne biblioteki buforów protokołowych (Protocol Buffers). %package -n python-protobuf -Summary: Python bindings for Protocol Buffers -Summary(pl.UTF-8): Wiązania Pythona do buforów protokołowych (Protocol Buffers) +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 -Python bindings for Protocol Buffers. +Python 2 bindings for Protocol Buffers. %description -n python-protobuf -l pl.UTF-8 -Wiązania Pythona do buforów protokołowych (Protocol Buffers). +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 @@ -160,6 +205,9 @@ 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 %{__libtoolize} @@ -173,10 +221,19 @@ opisów buforów protokołowych (Protocol Buffers). 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 @@ -198,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 @@ -224,20 +287,20 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc CHANGES.txt CONTRIBUTORS.txt COPYING.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.9 +%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.9 +%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.9 +%attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.12 %files devel %defattr(644,root,root,755) @@ -260,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