[packages/protobuf] - updated to 3.1.0 (note: new sonames) - updated system-gtest patch - filter out -fwrapv flag to all
qboosh
qboosh at pld-linux.org
Sun Jan 22 16:59:02 CET 2017
commit 8a85b52cc3d13e76caf00809c227a963935ac9fd
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sun Jan 22 17:00:27 2017 +0100
- updated to 3.1.0 (note: new sonames)
- updated system-gtest patch
- filter out -fwrapv flag to allow build with gcc 4.9+
protobuf.spec | 23 ++++---
system-gtest.patch | 174 ++++++++++++++++++++++++++++++++++-------------------
2 files changed, 126 insertions(+), 71 deletions(-)
---
diff --git a/protobuf.spec b/protobuf.spec
index 56fdbcc..1b5ae01 100644
--- a/protobuf.spec
+++ b/protobuf.spec
@@ -11,17 +11,19 @@
Summary: Protocol Buffers - Google's data interchange format
Summary(pl.UTF-8): Protocol Buffers - format wymiany danych Google
Name: protobuf
-Version: 3.0.0
+Version: 3.1.0
Release: 0.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: d4f6ca65aadc6310b3872ee421e79fa6
+# Source0-md5: 14a532a7538551d5def317bfca41dace
Source1: ftdetect-proto.vim
Patch0: system-gtest.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
@@ -38,6 +40,9 @@ 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
@@ -162,7 +167,9 @@ opisów buforów protokołowych (Protocol Buffers).
%prep
%setup -q
-#%patch0 -p1 NEEDS UPDATE
+%patch0 -p1
+
+ln -s /usr/src/gmock/src/gmock*.cc src
%build
%{__libtoolize}
@@ -226,17 +233,17 @@ 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.9
+%attr(755,root,root) %ghost %{_libdir}/libprotoc.so.11
%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.11
%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.11
%files devel
%defattr(644,root,root,755)
@@ -262,7 +269,7 @@ rm -rf $RPM_BUILD_ROOT
%if %{with python}
%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
diff --git a/system-gtest.patch b/system-gtest.patch
index 501a0b4..98698d5 100644
--- a/system-gtest.patch
+++ b/system-gtest.patch
@@ -1,96 +1,144 @@
---- protobuf-2.5.0/autogen.sh.orig 2013-03-03 08:13:52.293540047 +0100
-+++ protobuf-2.5.0/autogen.sh 2013-03-03 08:14:36.570204855 +0100
-@@ -15,25 +15,8 @@
+--- protobuf-3.1.0/autogen.sh.orig 2016-12-29 21:02:59.643624708 +0100
++++ protobuf-3.1.0/autogen.sh 2016-12-29 21:03:02.716958006 +0100
+@@ -27,21 +27,6 @@
exit 1
fi
--# Check that gtest is present. Usually it is already there since the
+-# Check that gmock is present. Usually it is already there since the
-# directory is set up as an SVN external.
--if test ! -e gtest; then
-- echo "Google Test not present. Fetching gtest-1.5.0 from the web..."
-- curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx
-- mv gtest-1.5.0 gtest
+-if test ! -e gmock; then
+- echo "Google Mock not present. Fetching gmock-1.7.0 from the web..."
+- curl $curlopts -L -O https://github.com/google/googlemock/archive/release-1.7.0.zip
+- unzip -q release-1.7.0.zip
+- rm release-1.7.0.zip
+- mv googlemock-release-1.7.0 gmock
+-
+- curl $curlopts -L -O https://github.com/google/googletest/archive/release-1.7.0.zip
+- unzip -q release-1.7.0.zip
+- rm release-1.7.0.zip
+- mv googletest-release-1.7.0 gmock/gtest
-fi
-
set -ex
--# Temporary hack: Must change C runtime library to "multi-threaded DLL",
--# otherwise it will be set to "multi-threaded static" when MSVC upgrades
--# the project file to MSVC 2005/2008. vladl of Google Test says gtest will
--# probably change their default to match, then this will be unnecessary.
--# One of these mappings converts the debug configuration and the other
--# converts the release configuration. I don't know which is which.
--sed -i -e 's/RuntimeLibrary="5"/RuntimeLibrary="3"/g;
-- s/RuntimeLibrary="4"/RuntimeLibrary="2"/g;' gtest/msvc/*.vcproj
--
# TODO(kenton): Remove the ",no-obsolete" part and fix the resulting warnings.
- autoreconf -f -i -Wall,no-obsolete
-
-diff -up protobuf-2.3.0/Makefile.am.orig protobuf-2.3.0/Makefile.am
---- protobuf-2.3.0/Makefile.am.orig 2010-04-21 18:55:38.009265866 -0600
-+++ protobuf-2.3.0/Makefile.am 2010-04-21 18:56:15.068016238 -0600
-@@ -11,27 +11,6 @@ SUBDIRS = . src
- # Always include gtest in distributions.
- DIST_SUBDIRS = $(subdirs) src
+--- protobuf-3.1.0/Makefile.am.orig 2016-09-24 04:12:45.000000000 +0200
++++ protobuf-3.1.0/Makefile.am 2016-12-29 21:03:50.640290792 +0100
+@@ -11,28 +11,8 @@
+ # Always include gmock in distributions.
+ DIST_SUBDIRS = $(subdirs) src conformance benchmarks
--# Build gtest before we build protobuf tests. We don't add gtest to SUBDIRS
--# because then "make check" would also build and run all of gtest's own tests,
+-# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
+-# because then "make check" would also build and run all of gmock's own tests,
-# which takes a lot of time and is generally not useful to us. Also, we don't
--# want "make install" to recurse into gtest since we don't want to overwrite
--# the installed version of gtest if there is one.
+-# want "make install" to recurse into gmock since we don't want to overwrite
+-# the installed version of gmock if there is one.
-check-local:
-- @echo "Making lib/libgtest.a lib/libgtest_main.a in gtest"
-- @cd gtest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
+- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
+- @cd gmock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
+- @cd gmock/gtest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
-
--# We would like to clean gtest when "make clean" is invoked. But we have to
+-# We would like to clean gmock when "make clean" is invoked. But we have to
-# be careful because clean-local is also invoked during "make distclean", but
--# "make distclean" already recurses into gtest because it's listed among the
--# DIST_SUBDIRS. distclean will delete gtest/Makefile, so if we then try to
+-# "make distclean" already recurses into gmock because it's listed among the
+-# DIST_SUBDIRS. distclean will delete gmock/Makefile, so if we then try to
-# cd to the directory again and "make clean" it will fail. So, check that the
-# Makefile exists before recursing.
--clean-local:
-- @if test -e gtest/Makefile; then \
-- echo "Making clean in gtest"; \
-- cd gtest && $(MAKE) $(AM_MAKEFLAGS) clean; \
-- fi
--
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = protobuf.pc protobuf-lite.pc
+ clean-local:
+- @if test -e gmock/Makefile; then \
+- echo "Making clean in gmock"; \
+- cd gmock && $(MAKE) $(AM_MAKEFLAGS) clean; \
+- fi; \
+- if test -e conformance/Makefile; then \
++ @if test -e conformance/Makefile; then \
+ echo "Making clean in conformance"; \
+ cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \
+ fi; \
+--- protobuf-3.1.0/src/Makefile.am.orig 2016-12-29 21:01:17.820292537 +0100
++++ protobuf-3.1.0/src/Makefile.am 2016-12-29 21:32:14.440271338 +0100
+@@ -693,15 +693,22 @@
+ google/protobuf/testing/file.cc \
+ google/protobuf/testing/file.h
---- protobuf-2.6.1/src/Makefile.am.orig 2014-10-11 07:50:39.000000000 +0200
-+++ protobuf-2.6.1/src/Makefile.am 2014-10-13 21:17:00.879286908 +0200
-@@ -325,10 +325,8 @@
++gmock_dir = /usr/src/gmock/src
++gmock_inc_dir = /usr/src/gmock/src
++gtest_inc_dir = /usr/include/gtest
++check_LTLIBRARIES = libgmock.la libgmock_main.la
++libgmock_la_SOURCES = ./gmock-all.cc
++libgmock_main_la_SOURCES = ./gmock_main.cc
++
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
- protobuf-lite-test test_plugin $(GZCHECKPROGRAMS)
+ protobuf-lite-test test_plugin protobuf-lite-arena-test \
+ no-warning-test $(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
-- $(top_builddir)/gtest/lib/libgtest.la \
-- $(top_builddir)/gtest/lib/libgtest_main.la
--protobuf_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \
-- -I$(top_builddir)/gtest/include
-+ -lgtest -lgtest_main
-+protobuf_test_CPPFLAGS =
+- ../gmock/gtest/lib/libgtest.la \
+- ../gmock/lib/libgmock.la \
+- ../gmock/lib/libgmock_main.la
+-protobuf_test_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include \
+- -I$(srcdir)/../gmock/include
++ -lgtest \
++ libgmock_main.la \
++ libgmock.la
++protobuf_test_CPPFLAGS = -I$(gtest_inc_dir) \
++ -I$(gmock_inc_dir)
# Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info.
-@@ -375,10 +373,8 @@
+@@ -784,11 +790,11 @@
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
libprotoc.la \
-- $(top_builddir)/gtest/lib/libgtest.la \
-- $(top_builddir)/gtest/lib/libgtest_main.la
--protobuf_lazy_descriptor_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \
-- -I$(top_builddir)/gtest/include \
-+ -lgtest -lgtest_main
-+protobuf_lazy_descriptor_test_CPPFLAGS = \
+- ../gmock/gtest/lib/libgtest.la \
+- ../gmock/lib/libgmock.la \
+- ../gmock/lib/libgmock_main.la
+-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(srcdir)/../gmock/include \
+- -I$(srcdir)/../gmock/gtest/include \
++ -lgtest \
++ libgmock_main.la \
++ libgmock.la
++protobuf_lazy_descriptor_test_CPPFLAGS = -I$(gmock_dir) \
++ -I$(gtest_inc_dir) \
-DPROTOBUF_TEST_NO_DESCRIPTORS
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES = \
-@@ -397,7 +393,7 @@
+@@ -819,11 +825,11 @@
+ # gtest when building the test internally our memory sanitizer doesn't detect
+ # memory leaks (don't know why).
+ protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
+- ../gmock/gtest/lib/libgtest.la \
+- ../gmock/lib/libgmock.la \
+- ../gmock/lib/libgmock_main.la
+-protobuf_lite_arena_test_CPPFLAGS = -I$(srcdir)/../gmock/include \
+- -I$(srcdir)/../gmock/gtest/include
++ -lgtest \
++ libgmock_main.la \
++ libgmock.la
++protobuf_lite_arena_test_CPPFLAGS = -I$(gmock_inc_dir) \
++ -I$(gtest_inc_dir)
+ protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
+ protobuf_lite_arena_test_SOURCES = \
+ google/protobuf/lite_arena_unittest.cc \
+@@ -832,8 +838,8 @@
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
-- $(top_builddir)/gtest/lib/libgtest.la
+- ../gmock/gtest/lib/libgtest.la
+-test_plugin_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include
+ -lgtest
- test_plugin_CPPFLAGS = -I$(top_srcdir)/gtest/include \
- -I$(top_builddir)/gtest/include
++test_plugin_CPPFLAGS = -I$(gmock_inc_dir)
test_plugin_SOURCES = \
+ google/protobuf/compiler/mock_code_generator.cc \
+ google/protobuf/testing/file.cc \
+@@ -862,9 +868,9 @@
+ echo "TEST(NoWarningTest, Empty) {}" >> no_warning_test.cc
+
+ no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
+- ../gmock/gtest/lib/libgtest.la \
+- ../gmock/gtest/lib/libgtest_main.la
+-no_warning_test_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include
++ -lgtest \
++ -lgtest_main
++no_warning_test_CPPFLAGS = -I$(gtest_inc_dir)
+ no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
+ -Wall -Werror
+ nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/protobuf.git/commitdiff/8a85b52cc3d13e76caf00809c227a963935ac9fd
More information about the pld-cvs-commit
mailing list