%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"
-
-%ifarch x32
-%undefine with_ruby
-%endif
+%bcond_without tests # perform "make check" (requires 4+GB RAM on 64-bit archs)
Summary: Protocol Buffers - Google's data interchange format
Summary(pl.UTF-8): Protocol Buffers - format wymiany danych Google
Name: protobuf
-Version: 3.3.0
-Release: 1
+Version: 3.14.0
+Release: 3
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: 10644296984c7cbdd1e8436e88b069d2
+Source0: https://github.com/google/protobuf/releases/download/v%{version}/%{name}-all-%{version}.tar.gz
+# Source0-md5: d0a7dd930210af5285c08c8a2c2304ab
Source1: ftdetect-proto.vim
Patch0: system-gtest.patch
+Patch1: no-wrap-memcpy.patch
+Patch2: %{name}-x32.patch
+Patch3: %{name}-disable-64bitptr-test.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
+%{?with_tests:BuildRequires: gmock-devel >= 1.9.0}
+%{?with_tests:BuildRequires: gtest-devel >= 1.9.0}
+BuildRequires: libstdc++-devel >= 6:4.7
BuildRequires: libtool
BuildRequires: pkgconfig
+BuildRequires: sed >= 4.0
%if %{with python2}
-BuildRequires: python-modules >= 1:2.6
+BuildRequires: python-modules >= 1:2.7
BuildRequires: python-setuptools
%endif
%if %{with python3}
BuildRequires: ruby-rake
BuildRequires: ruby-rake-compiler
%endif
+BuildRequires: sed >= 4.0
BuildRequires: zlib-devel >= 1.2.0.4
Requires: %{name}-libs = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-lite = %{version}-%{release}
-Requires: libstdc++-devel
+Requires: libstdc++-devel >= 6:4.7
%description devel
Header files for Protocol Buffers libraries.
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
+Requires: python-modules >= 1:2.7
# does not use C++ library at this time
+BuildArch: noarch
%description -n python-protobuf
Python 2 bindings for Protocol Buffers.
Group: Development/Languages/Python
Requires: python3-modules >= 1:3.3
# does not use C++ library at this time
+BuildArch: noarch
%description -n python3-protobuf
Python 3 bindings for Protocol Buffers.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%ifnarch %{x8664} aarch64 alpha ia64 mips64 ppc64 s390x sparc64
+%patch3 -p1
+%endif
-ln -s /usr/src/gmock/src/gmock*.cc src
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python}\1,' \
+ examples/add_person.py \
+ examples/list_people.py
+
+# gcc 10.2 false positive warning (with tag values >= 128):
+#
+# if (tag < 128) {
+# return *ptr == tag;
+# ~~~~~^~~~~~ error: comparison is always false due to limited range of data type [-Werror=type-limits]
+# } else {
+#
+%{__sed} -i -e 's/-Werror //' src/Makefile.am
%build
%{__libtoolize}
# 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'
+ CPPFLAGS='%{rpmcppflags} -DGOOGLE_PROTOBUF_NO_RTTI' \
+ --disable-silent-rules \
+ --disable-external-gtest
%{__make}
cd python
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}
+cp -pr examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
%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.13
+%attr(755,root,root) %ghost %{_libdir}/libprotoc.so.25
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libprotobuf.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.13
+%attr(755,root,root) %ghost %{_libdir}/libprotobuf.so.25
%files lite
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libprotobuf-lite.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.13
+%attr(755,root,root) %ghost %{_libdir}/libprotobuf-lite.so.25
%files devel
%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
+%{py_sitescriptdir}/protobuf-%{version}-py*.egg-info
+%{py_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
%endif
%if %{with python3}
%doc python/README.md
%dir %{py3_sitescriptdir}/google
%{py3_sitescriptdir}/google/protobuf
-%{py3_sitescriptdir}/protobuf-*-py*.egg-info
-%{py3_sitescriptdir}/protobuf-*-py*-nspkg.pth
+%{py3_sitescriptdir}/protobuf-%{version}-py*.egg-info
+%{py3_sitescriptdir}/protobuf-%{version}-py*-nspkg.pth
%endif
%if %{with ruby}