diff --git a/0001-fix-build-on-s390x.patch b/0001-fix-build-on-s390x.patch new file mode 100644 index 0000000..611a177 --- /dev/null +++ b/0001-fix-build-on-s390x.patch @@ -0,0 +1,26 @@ +From 3db1323d1d6132f08d0bafbd8602da7d71456745 Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Tue, 28 Nov 2017 20:58:00 +0100 +Subject: [PATCH] fix build on s390x + +Signed-off-by: Igor Gnatenko +--- + src/google/protobuf/stubs/atomicops.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h +index cb4553b1..34278f3a 100644 +--- a/src/google/protobuf/stubs/atomicops.h ++++ b/src/google/protobuf/stubs/atomicops.h +@@ -214,7 +214,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr); + #elif defined(GOOGLE_PROTOBUF_ARCH_PPC) + #include + #elif (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)) +-#include ++#include + #elif defined(__clang__) + #if __has_extension(c_atomic) + #include +-- +2.15.0 + diff --git a/protobuf-2.5.0-emacs-24.4.patch b/protobuf-2.5.0-emacs-24.4.patch deleted file mode 100644 index a29c5b9..0000000 --- a/protobuf-2.5.0-emacs-24.4.patch +++ /dev/null @@ -1,17 +0,0 @@ -Fix build with emacs-24.4. - -http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18845 - ---- protobuf-2.5.0/editors/protobuf-mode.el -+++ protobuf-2.5.0/editors/protobuf-mode.el -@@ -66,6 +66,10 @@ - (require 'cc-mode) - - (eval-when-compile -+ (and (= emacs-major-version 24) -+ (>= emacs-minor-version 4) -+ (null emacs-repository-version) -+ (require 'cl)) - (require 'cc-langs) - (require 'cc-fonts)) - diff --git a/protobuf-2.5.0-fedora-gtest.patch b/protobuf-2.5.0-fedora-gtest.patch deleted file mode 100644 index 7584d40..0000000 --- a/protobuf-2.5.0-fedora-gtest.patch +++ /dev/null @@ -1,215 +0,0 @@ ---- protobuf-2.5.0/autogen.sh.orig 2013-02-26 09:56:44.000000000 -0800 -+++ protobuf-2.5.0/autogen.sh 2013-03-09 19:21:52.512010330 -0800 -@@ -1,41 +1,24 @@ - #!/bin/sh - - # Run this script to generate the configure script and other files that will - # be included in the distribution. These files are not checked in because they - # are automatically generated. - - set -e - - # Check that we're being run from the right directory. - if test ! -f src/google/protobuf/stubs/common.h; then - cat >&2 << __EOF__ - Could not find source code. Make sure you are running this script from the - root of the distribution tree. - __EOF__ - exit 1 - fi - --# Check that gtest 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 --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 - - rm -rf autom4te.cache config.h.in~ - exit 0 ---- protobuf-2.5.0/Makefile.am.orig 2013-02-26 09:56:44.000000000 -0800 -+++ protobuf-2.5.0/Makefile.am 2013-03-09 19:22:18.741692020 -0800 -@@ -1,54 +1,33 @@ - ## Process this file with automake to produce Makefile.in - - ACLOCAL_AMFLAGS = -I m4 - - AUTOMAKE_OPTIONS = foreign - - # Build . before src so that our all-local and clean-local hooks kicks in at - # the right time. - SUBDIRS = . src - - # Always include gtest in distributions. - DIST_SUBDIRS = $(subdirs) src - --# 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, --# 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. --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 -- --# We would like to clean gtest 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 --# 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 - - EXTRA_DIST = \ - autogen.sh \ - generate_descriptor_proto.sh \ - README.txt \ - INSTALL.txt \ - COPYING.txt \ - CONTRIBUTORS.txt \ - CHANGES.txt \ - editors/README.txt \ - editors/proto.vim \ - editors/protobuf-mode.el \ - vsprojects/config.h \ - vsprojects/extract_includes.bat \ - vsprojects/libprotobuf.vcproj \ - vsprojects/libprotobuf-lite.vcproj \ - vsprojects/libprotoc.vcproj \ - vsprojects/protobuf.sln \ ---- protobuf-2.5.0/src/Makefile.am.orig 2013-02-26 09:56:43.000000000 -0800 -+++ protobuf-2.5.0/src/Makefile.am 2013-03-09 19:25:09.076620571 -0800 -@@ -286,44 +286,42 @@ - # building out-of-tree. - unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs) - oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) ) - touch unittest_proto_middleman - - endif - - $(protoc_outputs): unittest_proto_middleman - - COMMON_TEST_SOURCES = \ - google/protobuf/test_util.cc \ - google/protobuf/test_util.h \ - google/protobuf/testing/googletest.cc \ - google/protobuf/testing/googletest.h \ - google/protobuf/testing/file.cc \ - google/protobuf/testing/file.h - - check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \ - protobuf-lite-test test_plugin $(GZCHECKPROGRAMS) - protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ -- $(top_builddir)/gtest/lib/libgtest.la \ -- $(top_builddir)/gtest/lib/libgtest_main.la -+ -lgtest -lgtest_main --protobuf_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \ -- -I$(top_builddir)/gtest/include -+protobuf_test_CPPFLAGS = - # 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. - protobuf_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_test_SOURCES = \ - google/protobuf/stubs/common_unittest.cc \ - google/protobuf/stubs/once_unittest.cc \ - google/protobuf/stubs/strutil_unittest.cc \ - google/protobuf/stubs/structurally_valid_unittest.cc \ - google/protobuf/stubs/stringprintf_unittest.cc \ - google/protobuf/stubs/template_util_unittest.cc \ - google/protobuf/stubs/type_traits_unittest.cc \ - google/protobuf/descriptor_database_unittest.cc \ - google/protobuf/descriptor_unittest.cc \ - google/protobuf/dynamic_message_unittest.cc \ - google/protobuf/extension_set_unittest.cc \ - google/protobuf/generated_message_reflection_unittest.cc \ - google/protobuf/message_unittest.cc \ - google/protobuf/reflection_ops_unittest.cc \ - google/protobuf/repeated_field_unittest.cc \ -@@ -335,61 +333,58 @@ - google/protobuf/io/printer_unittest.cc \ - google/protobuf/io/tokenizer_unittest.cc \ - google/protobuf/io/zero_copy_stream_unittest.cc \ - google/protobuf/compiler/command_line_interface_unittest.cc \ - google/protobuf/compiler/importer_unittest.cc \ - google/protobuf/compiler/mock_code_generator.cc \ - google/protobuf/compiler/mock_code_generator.h \ - google/protobuf/compiler/parser_unittest.cc \ - google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc \ - google/protobuf/compiler/cpp/cpp_unittest.h \ - google/protobuf/compiler/cpp/cpp_unittest.cc \ - google/protobuf/compiler/cpp/cpp_plugin_unittest.cc \ - google/protobuf/compiler/java/java_plugin_unittest.cc \ - google/protobuf/compiler/java/java_doc_comment_unittest.cc \ - google/protobuf/compiler/python/python_plugin_unittest.cc \ - $(COMMON_TEST_SOURCES) - nodist_protobuf_test_SOURCES = $(protoc_outputs) - - # Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined. - protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \ -- $(top_builddir)/gtest/lib/libgtest.la \ -- $(top_builddir)/gtest/lib/libgtest_main.la -+ -lgtest -lgtest_main --protobuf_lazy_descriptor_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \ -- -I$(top_builddir)/gtest/include \ -- -DPROTOBUF_TEST_NO_DESCRIPTORS -+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS - protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_lazy_descriptor_test_SOURCES = \ - google/protobuf/compiler/cpp/cpp_unittest.cc \ - $(COMMON_TEST_SOURCES) - nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs) - - # Build lite_unittest separately, since it doesn't use gtest. - protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la - protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_lite_test_SOURCES = \ - google/protobuf/lite_unittest.cc \ - google/protobuf/test_util_lite.cc \ - google/protobuf/test_util_lite.h - nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs) - - # Test plugin binary. - test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ -- $(top_builddir)/gtest/lib/libgtest.la -+ -lgtest - test_plugin_CPPFLAGS = -I$(top_srcdir)/gtest/include \ - -I$(top_builddir)/gtest/include - test_plugin_SOURCES = \ - google/protobuf/compiler/mock_code_generator.cc \ - google/protobuf/testing/file.cc \ - google/protobuf/testing/file.h \ - google/protobuf/compiler/test_plugin.cc - - if HAVE_ZLIB - zcgzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la - zcgzip_SOURCES = google/protobuf/testing/zcgzip.cc - - zcgunzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la - zcgunzip_SOURCES = google/protobuf/testing/zcgunzip.cc - endif - - TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \ - google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) diff --git a/protobuf.spec b/protobuf.spec index 233f6e1..5c8034c 100644 --- a/protobuf.spec +++ b/protobuf.spec @@ -21,6 +21,8 @@ Source2: protobuf-init.el # For tests Source3: https://github.com/google/googlemock/archive/release-1.7.0.tar.gz#/googlemock-1.7.0.tar.gz Source4: https://github.com/google/googletest/archive/release-1.7.0.tar.gz#/googletest-1.7.0.tar.gz +# Might be upstreamable, but for now temporary workaround +Patch0: 0001-fix-build-on-s390x.patch BuildRequires: autoconf BuildRequires: automake @@ -223,6 +225,7 @@ Protocol Buffer Parent POM. %prep %setup -q -n %{name}-%{version}%{?rcver} -a 3 -a 4 +%autopatch -p1 mv googlemock-release-1.7.0 gmock mv googletest-release-1.7.0 gmock/gtest find -name \*.cc -o -name \*.h | xargs chmod -x