mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-23 22:51:03 +02:00
Merge pull request #986 from flatcar/dongsu/protobuf-21.9
dev-libs/protobuf: update to 21.9
This commit is contained in:
commit
16ba7a6452
@ -163,6 +163,7 @@ dev-libs/libxslt
|
||||
dev-libs/nettle
|
||||
dev-libs/oniguruma
|
||||
dev-libs/popt
|
||||
dev-libs/protobuf
|
||||
dev-libs/userspace-rcu
|
||||
|
||||
dev-perl/File-Slurp
|
||||
|
1
changelog/security/2023-07-13-protobuf-21.9.md
Normal file
1
changelog/security/2023-07-13-protobuf-21.9.md
Normal file
@ -0,0 +1 @@
|
||||
- protobuf ([CVE-2022-1941](https://nvd.nist.gov/vuln/detail/CVE-2022-1941))
|
1
changelog/updates/2023-07-13-protobuf-21.9.md
Normal file
1
changelog/updates/2023-07-13-protobuf-21.9.md
Normal file
@ -0,0 +1 @@
|
||||
- protobuf ([21.9](https://github.com/protocolbuffers/protobuf/releases/tag/v21.9))
|
@ -1,7 +1 @@
|
||||
DIST protobuf-3.17.0.tar.gz 5185780 BLAKE2B a168619df72cdf097c7ddfd50aca96a2101bf73e7c1c842c020e6ee08a853db8674a86ca999b7706da3dd21d4d3d2159241c93232efc693701962f3a54a382e9 SHA512 36ed2de641849ce01531ff1207f62a0748f811519c40622a119a17a1e709864382de81481fb58f374a025948971c48416e7e6de9c00512a78633c7a8a3aa3a36
|
||||
DIST protobuf-3.17.1.tar.gz 5192666 BLAKE2B 7f912db7e0835aaa42628fcf564a5666e2cbfa021bb35638a5eec53c3c457f1e747225dea54f732b7239a1520febca9bc20c824b1938f100796caa3ac2133bc1 SHA512 5a18aa3c1dab040dc6d22310a8503241081106acf7ca89079d7b416533d7c2cdd47719dc9023e6bc26969f0f1c796550260a04034a403c69752f6a3a7a651bb8
|
||||
DIST protobuf-3.17.2.tar.gz 5192779 BLAKE2B 97f9561848e70b8d26ebcc7fc4fa8da51c4b8267efbe1d2d386c2785308e7ba7edc05f1b3863c274dc8838866d58b58509606d72c51a22b956d1d528584c4c95 SHA512 b3e7ad50ed772668df70a3a20ad1af13a5e82f23b109e4fecd34e6a74947bed300963c9f084907fbfafe28fc18365cde7df1975e2ff9538d2f5a3d2b458bca98
|
||||
DIST protobuf-3.17.3.tar.gz 5235236 BLAKE2B 2495e678c8f9436d4e5a30ccee8b6226125d418ac7ecf7df20b078a1a16c221cbccab7d846dcd56a90220c106617fa75c410a21b62612fedec378cd7e8571350 SHA512 b4030b4474cc5fb5a62501200725dd488e6e66e3ced4ed12ab4ee029fcfed305e92ec966adafbdd343afffd186908163849422b95eaa500e7e741ac325d01d12
|
||||
DIST protobuf-3.18.2.tar.gz 5272935 BLAKE2B f65caa4483d3ff4186f9ea388e2a9ef232ab758cfda846cfb5993df1f991e4574e63a33b175dd00c72f61c0a23ed12d3c62eb658cd397bf43b805c41fb34c47e SHA512 8ca613fdeefcbd93e866fab65effc38aa8508060aa3de0109dbead68f2e27eb22ad0a8aea10c8b4c3e9de181d62185c93b369fb5abf96de02a170f2e5c27e0cd
|
||||
DIST protobuf-3.19.1.tar.gz 5291573 BLAKE2B a34f1a7cf99ecb6cb8a26bc858de6273bfd26aa9be1e89e48c16cb5df0f1e9576479344c8250017238dbac0d0c4ac33001125b5fc622cb64ed6b91023198b03a SHA512 f1271f5159a7be363a5f60ce4921dfea68a8468d66808330bacaeaa1cb7f652d045ab080b5d82816a6fd4e6d7d7fe79aaa6c8d66d81692721d36ce3bbf619f31
|
||||
DIST protobuf-3.19.3.tar.gz 5293258 BLAKE2B c05b70ffca97f7166ea6a511a36907eed125edf1ebf17f908718221d9b851be84dfb2b1b39973f2faf35f6ade630e6ba4f9e8b91b8fbc922c5db97079323ee6e SHA512 1c003e7cbc8eae6a038f46e688b401ee202ba47f502561e909df79770f6e8b7daf3dc1ccc727e31bfb5b52cd04cb4fef7d2d2a28d650c13f396872ad4aa076c6
|
||||
DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1
|
||||
|
@ -0,0 +1,118 @@
|
||||
https://bugs.gentoo.org/875584
|
||||
https://github.com/protocolbuffers/protobuf/pull/10589
|
||||
|
||||
From 5f4a52d9bff7595ec47fb6727662a1cada3cd404 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Kruskal <mkruskal@google.com>
|
||||
Date: Thu, 15 Sep 2022 10:23:23 -0700
|
||||
Subject: [PATCH 3/7] Patching static assert test failure
|
||||
|
||||
--- a/src/google/protobuf/extension_set_unittest.cc
|
||||
+++ b/src/google/protobuf/extension_set_unittest.cc
|
||||
@@ -855,8 +855,10 @@ TEST(ExtensionSetTest, SpaceUsedExcludingSelf) {
|
||||
const size_t old_capacity = \
|
||||
message->GetRepeatedExtension(unittest::repeated_##type##_extension) \
|
||||
.Capacity(); \
|
||||
- EXPECT_GE(old_capacity, \
|
||||
- (RepeatedFieldLowerClampLimit<cpptype, sizeof(void*)>())); \
|
||||
+ EXPECT_GE( \
|
||||
+ old_capacity, \
|
||||
+ (RepeatedFieldLowerClampLimit<cpptype, std::max(sizeof(cpptype), \
|
||||
+ sizeof(void*))>())); \
|
||||
for (int i = 0; i < 16; ++i) { \
|
||||
message->AddExtension(unittest::repeated_##type##_extension, value); \
|
||||
} \
|
||||
|
||||
From c94b66706bec17d918495f4715183a5eaf0f8044 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Kruskal <mkruskal@google.com>
|
||||
Date: Thu, 15 Sep 2022 11:31:31 -0700
|
||||
Subject: [PATCH 4/7] Test fixes for 32-bit architectures
|
||||
|
||||
--- a/src/google/protobuf/compiler/cpp/message_size_unittest.cc
|
||||
+++ b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
|
||||
@@ -139,9 +139,9 @@ TEST(GeneratedMessageTest, OneStringSize) {
|
||||
|
||||
TEST(GeneratedMessageTest, MoreStringSize) {
|
||||
struct MockGenerated : public MockMessageBase { // 16 bytes
|
||||
- int has_bits[1]; // 4 bytes
|
||||
int cached_size; // 4 bytes
|
||||
MockRepeatedPtrField data; // 24 bytes
|
||||
+ // + 4 bytes padding
|
||||
};
|
||||
GOOGLE_CHECK_MESSAGE_SIZE(MockGenerated, 48);
|
||||
EXPECT_EQ(sizeof(protobuf_unittest::MoreString), sizeof(MockGenerated));
|
||||
--- a/src/google/protobuf/io/zero_copy_stream_unittest.cc
|
||||
+++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc
|
||||
@@ -720,6 +720,9 @@ TEST_F(IoTest, StringIo) {
|
||||
|
||||
// Verifies that outputs up to kint32max can be created.
|
||||
TEST_F(IoTest, LargeOutput) {
|
||||
+ // Filter out this test on 32-bit architectures.
|
||||
+ if(sizeof(void*) < 8) return;
|
||||
+
|
||||
std::string str;
|
||||
StringOutputStream output(&str);
|
||||
void* unused_data;
|
||||
--- a/src/google/protobuf/repeated_field_unittest.cc
|
||||
+++ b/src/google/protobuf/repeated_field_unittest.cc
|
||||
@@ -429,14 +429,14 @@ TEST(RepeatedField, ReserveNothing) {
|
||||
|
||||
TEST(RepeatedField, ReserveLowerClamp) {
|
||||
int clamped_value = internal::CalculateReserveSize<bool, sizeof(void*)>(0, 1);
|
||||
- EXPECT_GE(clamped_value, 8 / sizeof(bool));
|
||||
+ EXPECT_GE(clamped_value, sizeof(void*) / sizeof(bool));
|
||||
EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<bool, sizeof(void*)>()),
|
||||
clamped_value);
|
||||
// EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<bool,
|
||||
// sizeof(void*)>( clamped_value, 2)));
|
||||
|
||||
clamped_value = internal::CalculateReserveSize<int, sizeof(void*)>(0, 1);
|
||||
- EXPECT_GE(clamped_value, 8 / sizeof(int));
|
||||
+ EXPECT_GE(clamped_value, sizeof(void*) / sizeof(int));
|
||||
EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<int, sizeof(void*)>()),
|
||||
clamped_value);
|
||||
// EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<int,
|
||||
--- a/src/google/protobuf/util/time_util_test.cc
|
||||
+++ b/src/google/protobuf/util/time_util_test.cc
|
||||
@@ -48,15 +48,18 @@ using google::protobuf::Timestamp;
|
||||
namespace {
|
||||
|
||||
TEST(TimeUtilTest, TimestampStringFormat) {
|
||||
- Timestamp begin, end;
|
||||
- EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
|
||||
- EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
|
||||
- EXPECT_EQ(0, begin.nanos());
|
||||
- EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
|
||||
- EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
|
||||
- EXPECT_EQ(999999999, end.nanos());
|
||||
- EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
|
||||
- EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
|
||||
+ // These these are out of bounds for 32-bit architectures.
|
||||
+ if(sizeof(time_t) >= sizeof(uint64_t)) {
|
||||
+ Timestamp begin, end;
|
||||
+ EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
|
||||
+ EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
|
||||
+ EXPECT_EQ(0, begin.nanos());
|
||||
+ EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
|
||||
+ EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
|
||||
+ EXPECT_EQ(999999999, end.nanos());
|
||||
+ EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
|
||||
+ EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
|
||||
+ }
|
||||
|
||||
// Test negative timestamps.
|
||||
Timestamp time = TimeUtil::NanosecondsToTimestamp(-1);
|
||||
@@ -94,9 +97,12 @@ TEST(TimeUtilTest, DurationStringFormat) {
|
||||
EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
|
||||
EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
|
||||
|
||||
- EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
|
||||
+ // These these are out of bounds for 32-bit architectures.
|
||||
+ if(sizeof(time_t) >= sizeof(uint64_t)) {
|
||||
+ EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
|
||||
+ EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
|
||||
+ }
|
||||
EXPECT_EQ(999999999, (end - begin).nanos());
|
||||
- EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
|
||||
EXPECT_EQ(-999999999, (begin - end).nanos());
|
||||
|
||||
// Generated output should contain 3, 6, or 9 fractional digits.
|
@ -1,19 +0,0 @@
|
||||
Disable no-warning-test which is compiled with -Werror option and whose only purpose is checking if compilation results in any warnings.
|
||||
|
||||
--- /src/Makefile.am
|
||||
+++ /src/Makefile.am
|
||||
@@ -713,7 +713,7 @@
|
||||
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
|
||||
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
|
||||
protobuf-lite-test test_plugin protobuf-lite-arena-test \
|
||||
- no-warning-test $(GZCHECKPROGRAMS)
|
||||
+ $(GZCHECKPROGRAMS)
|
||||
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
$(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
$(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
@@ -900,4 +900,4 @@
|
||||
|
||||
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
|
||||
google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \
|
||||
- protobuf-lite-arena-test no-warning-test
|
||||
+ protobuf-lite-arena-test
|
@ -1,121 +0,0 @@
|
||||
--- /Makefile.am
|
||||
+++ /Makefile.am
|
||||
@@ -11,28 +11,10 @@
|
||||
# Always include third_party directories in distributions.
|
||||
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
|
||||
|
||||
-# 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 gmock since we don't want to overwrite
|
||||
-# the installed version of gmock if there is one.
|
||||
check-local:
|
||||
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
|
||||
- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
|
||||
- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
|
||||
|
||||
-# 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 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 third_party/googletest/Makefile; then \
|
||||
- echo "Making clean in googletest"; \
|
||||
- cd third_party/googletest && $(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; \
|
||||
--- /configure.ac
|
||||
+++ /configure.ac
|
||||
@@ -236,12 +236,5 @@
|
||||
fi
|
||||
AC_SUBST([LIBLOG_LIBS])
|
||||
|
||||
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
|
||||
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
|
||||
-# too.
|
||||
-export CFLAGS
|
||||
-export CXXFLAGS
|
||||
-AC_CONFIG_SUBDIRS([third_party/googletest])
|
||||
-
|
||||
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
|
||||
AC_OUTPUT
|
||||
--- /src/Makefile.am
|
||||
+++ /src/Makefile.am
|
||||
@@ -707,19 +707,11 @@
|
||||
google/protobuf/testing/file.cc \
|
||||
google/protobuf/testing/file.h
|
||||
|
||||
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
|
||||
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
|
||||
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
|
||||
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
|
||||
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
|
||||
protobuf-lite-test test_plugin protobuf-lite-arena-test \
|
||||
$(GZCHECKPROGRAMS)
|
||||
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
|
||||
- -I$(GOOGLEMOCK_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
# 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.
|
||||
@@ -811,12 +803,8 @@
|
||||
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
|
||||
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
|
||||
libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include \
|
||||
- -DPROTOBUF_TEST_NO_DESCRIPTORS
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
+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 \
|
||||
@@ -837,11 +825,7 @@
|
||||
# full runtime and we want to make sure this test builds without full
|
||||
# runtime.
|
||||
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
||||
protobuf_lite_test_SOURCES = \
|
||||
google/protobuf/lite_unittest.cc \
|
||||
@@ -853,11 +837,7 @@
|
||||
# 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 \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
||||
protobuf_lite_arena_test_SOURCES = \
|
||||
google/protobuf/lite_arena_unittest.cc \
|
||||
@@ -867,8 +847,7 @@
|
||||
|
||||
# Test plugin binary.
|
||||
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
|
||||
-test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest
|
||||
test_plugin_SOURCES = \
|
||||
google/protobuf/compiler/mock_code_generator.cc \
|
||||
google/protobuf/testing/file.cc \
|
@ -1,36 +0,0 @@
|
||||
From 290073d7d4ddaa6d39ad12c90245e795c5482432 Mon Sep 17 00:00:00 2001
|
||||
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
||||
Date: Sat, 29 Jan 2022 22:43:50 +0800
|
||||
Subject: [PATCH] protobuf-3.18.0: disable no-warning test
|
||||
|
||||
Disable no-warning-test which is compiled with -Werror option
|
||||
and whose only purpose is checking if compilation results in any warnings.
|
||||
|
||||
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
||||
Signed-off-by: Yixun Lan <dlan@gentoo.org>
|
||||
---
|
||||
src/Makefile.am | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index e6b4d0f..1cfd885 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -726,7 +726,7 @@ GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
|
||||
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
|
||||
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
|
||||
protobuf-lite-test test_plugin protobuf-lite-arena-test \
|
||||
- no-warning-test $(GZCHECKPROGRAMS)
|
||||
+ $(GZCHECKPROGRAMS)
|
||||
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
$(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
$(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
@@ -915,4 +915,4 @@ nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
|
||||
|
||||
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
|
||||
google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \
|
||||
- protobuf-lite-arena-test no-warning-test
|
||||
+ protobuf-lite-arena-test
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,146 +0,0 @@
|
||||
From 10b2d5bb5a4d1b7529cb781e5513940ad6db4ada Mon Sep 17 00:00:00 2001
|
||||
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
||||
Date: Sat, 29 Jan 2022 22:46:38 +0800
|
||||
Subject: [PATCH] protobuf-3.18.0: system_libraries
|
||||
|
||||
Use system version of GoogleTest,
|
||||
which will unbundle gtest, gmock libraries
|
||||
|
||||
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
||||
Signed-off-by: Yixun Lan <dlan@gentoo.org>
|
||||
---
|
||||
Makefile.am | 20 +-------------------
|
||||
configure.ac | 7 -------
|
||||
src/Makefile.am | 33 ++++++---------------------------
|
||||
3 files changed, 7 insertions(+), 53 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 7ce954e..c1493e0 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -11,28 +11,10 @@ SUBDIRS = . src
|
||||
# Always include third_party directories in distributions.
|
||||
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
|
||||
|
||||
-# 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 gmock since we don't want to overwrite
|
||||
-# the installed version of gmock if there is one.
|
||||
check-local:
|
||||
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
|
||||
- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
|
||||
- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
|
||||
|
||||
-# 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 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 third_party/googletest/Makefile; then \
|
||||
- echo "Making clean in googletest"; \
|
||||
- cd third_party/googletest && $(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; \
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 4a6d50a..6301bd6 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then
|
||||
fi
|
||||
AC_SUBST([LIBLOG_LIBS])
|
||||
|
||||
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
|
||||
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
|
||||
-# too.
|
||||
-export CFLAGS
|
||||
-export CXXFLAGS
|
||||
-AC_CONFIG_SUBDIRS([third_party/googletest])
|
||||
-
|
||||
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
|
||||
AC_OUTPUT
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 1cfd885..73c2c6d 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -720,19 +720,11 @@ COMMON_TEST_SOURCES = \
|
||||
google/protobuf/testing/googletest.cc \
|
||||
google/protobuf/testing/googletest.h
|
||||
|
||||
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
|
||||
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
|
||||
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
|
||||
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
|
||||
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
|
||||
protobuf-lite-test test_plugin protobuf-lite-arena-test \
|
||||
$(GZCHECKPROGRAMS)
|
||||
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
|
||||
- -I$(GOOGLEMOCK_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
# 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.
|
||||
@@ -825,12 +817,8 @@ $(am_protobuf_test_OBJECTS): unittest_proto_middleman
|
||||
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
|
||||
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
|
||||
libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include \
|
||||
- -DPROTOBUF_TEST_NO_DESCRIPTORS
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
+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 \
|
||||
@@ -851,11 +839,7 @@ COMMON_LITE_TEST_SOURCES = \
|
||||
# full runtime and we want to make sure this test builds without full
|
||||
# runtime.
|
||||
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
||||
protobuf_lite_test_SOURCES = \
|
||||
google/protobuf/lite_unittest.cc \
|
||||
@@ -867,11 +851,7 @@ $(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
|
||||
# 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 \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
||||
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
||||
-protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
||||
- -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest -lgmock -lgmock_main
|
||||
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
||||
protobuf_lite_arena_test_SOURCES = \
|
||||
google/protobuf/lite_arena_unittest.cc \
|
||||
@@ -881,8 +861,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
|
||||
|
||||
# Test plugin binary.
|
||||
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
||||
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
|
||||
-test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
|
||||
+ -lgtest
|
||||
test_plugin_SOURCES = \
|
||||
google/protobuf/compiler/mock_code_generator.cc \
|
||||
google/protobuf/compiler/test_plugin.cc \
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,10 +1,10 @@
|
||||
https://github.com/protocolbuffers/protobuf/pull/235
|
||||
|
||||
--- /src/google/protobuf/compiler/command_line_interface.cc
|
||||
+++ /src/google/protobuf/compiler/command_line_interface.cc
|
||||
@@ -1110,6 +1110,28 @@
|
||||
--- a/src/google/protobuf/compiler/command_line_interface.cc
|
||||
+++ b/src/google/protobuf/compiler/command_line_interface.cc
|
||||
@@ -1112,6 +1112,28 @@
|
||||
}
|
||||
|
||||
|
||||
if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) {
|
||||
+ bool success = false;
|
||||
+ int in_fd = STDIN_FILENO;
|
||||
@ -31,9 +31,9 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
if (codec_type_.empty()) {
|
||||
// HACK: Define an EmptyMessage type to use for decoding.
|
||||
DescriptorPool pool;
|
||||
@@ -1118,13 +1140,20 @@
|
||||
@@ -1120,13 +1142,20 @@
|
||||
file.add_message_type()->set_name("EmptyMessage");
|
||||
GOOGLE_CHECK(pool.BuildFile(file) != NULL);
|
||||
GOOGLE_CHECK(pool.BuildFile(file) != nullptr);
|
||||
codec_type_ = "EmptyMessage";
|
||||
- if (!EncodeOrDecode(&pool)) {
|
||||
- return 1;
|
||||
@ -57,8 +57,8 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
+ return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1163,6 +1192,11 @@
|
||||
|
||||
@@ -1165,6 +1194,11 @@
|
||||
for (int i = 0; i < proto_path_.size(); i++) {
|
||||
source_tree->MapPath(proto_path_[i].first, proto_path_[i].second);
|
||||
}
|
||||
@ -67,13 +67,13 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
+ std::cerr << "--protobuf_in and --protobuf_out are only valid with "
|
||||
+ << "decode operations. Ignoring.";
|
||||
+ }
|
||||
|
||||
|
||||
// Map input files to virtual paths if possible.
|
||||
if (!MakeInputsBeProtoPathRelative(source_tree, fallback_database)) {
|
||||
@@ -1885,6 +1919,12 @@
|
||||
@@ -1888,6 +1922,12 @@
|
||||
} else if (name == "--deterministic_output") {
|
||||
deterministic_output_ = true;
|
||||
|
||||
|
||||
+ } else if (name == "--protobuf_in") {
|
||||
+ protobuf_in_path_ = value;
|
||||
+
|
||||
@ -83,7 +83,7 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
} else if (name == "--error_format") {
|
||||
if (value == "gcc") {
|
||||
error_format_ = ERROR_FORMAT_GCC;
|
||||
@@ -2018,22 +2058,38 @@
|
||||
@@ -2021,22 +2061,38 @@
|
||||
--version Show version info and exit.
|
||||
-h, --help Show this text and exit.
|
||||
--encode=MESSAGE_TYPE Read a text-format message of the given type
|
||||
@ -129,20 +129,20 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
--descriptor_set_in=FILES Specifies a delimited list of FILES
|
||||
each containing a FileDescriptorSet (a
|
||||
protocol buffer defined in descriptor.proto).
|
||||
@@ -2344,7 +2400,9 @@
|
||||
@@ -2347,7 +2403,9 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
-bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool) {
|
||||
+bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool,
|
||||
+ int in_fd,
|
||||
+ int out_fd) {
|
||||
// Look up the type.
|
||||
const Descriptor* type = pool->FindMessageTypeByName(codec_type_);
|
||||
if (type == NULL) {
|
||||
@@ -2356,15 +2414,15 @@
|
||||
if (type == nullptr) {
|
||||
@@ -2359,15 +2417,15 @@
|
||||
std::unique_ptr<Message> message(dynamic_factory.GetPrototype(type)->New());
|
||||
|
||||
|
||||
if (mode_ == MODE_ENCODE) {
|
||||
- SetFdToTextMode(STDIN_FILENO);
|
||||
- SetFdToBinaryMode(STDOUT_FILENO);
|
||||
@ -154,31 +154,31 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
+ SetFdToBinaryMode(in_fd);
|
||||
+ SetFdToTextMode(out_fd);
|
||||
}
|
||||
|
||||
|
||||
- io::FileInputStream in(STDIN_FILENO);
|
||||
- io::FileOutputStream out(STDOUT_FILENO);
|
||||
+ io::FileInputStream in(in_fd);
|
||||
+ io::FileOutputStream out(out_fd);
|
||||
|
||||
|
||||
if (mode_ == MODE_ENCODE) {
|
||||
// Input is text.
|
||||
--- /src/google/protobuf/compiler/command_line_interface.h
|
||||
+++ /src/google/protobuf/compiler/command_line_interface.h
|
||||
@@ -292,7 +292,9 @@
|
||||
--- a/src/google/protobuf/compiler/command_line_interface.h
|
||||
+++ b/src/google/protobuf/compiler/command_line_interface.h
|
||||
@@ -294,7 +294,9 @@
|
||||
GeneratorContext* generator_context, std::string* error);
|
||||
|
||||
|
||||
// Implements --encode and --decode.
|
||||
- bool EncodeOrDecode(const DescriptorPool* pool);
|
||||
+ bool EncodeOrDecode(const DescriptorPool* pool,
|
||||
+ int in_fd,
|
||||
+ int out_fd);
|
||||
|
||||
|
||||
// Implements the --descriptor_set_out option.
|
||||
bool WriteDescriptorSet(
|
||||
@@ -427,6 +429,13 @@
|
||||
@@ -429,6 +431,13 @@
|
||||
// parsed FileDescriptorSets to be used for loading protos. Otherwise, empty.
|
||||
std::vector<std::string> descriptor_set_in_names_;
|
||||
|
||||
|
||||
+ // When using --encode / --decode / --decode_raw absolute path to the output
|
||||
+ // file. (Empty string indicates write to STDOUT).
|
||||
+ std::string protobuf_out_path_;
|
||||
@ -189,12 +189,12 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
// If --descriptor_set_out was given, this is the filename to which the
|
||||
// FileDescriptorSet should be written. Otherwise, empty.
|
||||
std::string descriptor_set_out_name_;
|
||||
--- /src/google/protobuf/compiler/command_line_interface_unittest.cc
|
||||
+++ /src/google/protobuf/compiler/command_line_interface_unittest.cc
|
||||
--- a/src/google/protobuf/compiler/command_line_interface_unittest.cc
|
||||
+++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc
|
||||
@@ -99,7 +99,7 @@
|
||||
virtual void SetUp();
|
||||
virtual void TearDown();
|
||||
|
||||
void SetUp() override;
|
||||
void TearDown() override;
|
||||
|
||||
- // Runs the CommandLineInterface with the given command line. The
|
||||
+ // Run the CommandLineInterface with the given command line. The
|
||||
// command is automatically split on spaces, and the string "$tmpdir"
|
||||
@ -203,10 +203,10 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
@@ -2626,6 +2626,17 @@
|
||||
std::string::npos);
|
||||
}
|
||||
|
||||
+ void ExpectBinaryFilesMatch(const string &expected_file,
|
||||
+ const string &actual_file) {
|
||||
+ string expected_output, actual_output;
|
||||
|
||||
+ void ExpectBinaryFilesMatch(const std::string &expected_file,
|
||||
+ const std::string &actual_file) {
|
||||
+ std::string expected_output, actual_output;
|
||||
+ ASSERT_TRUE(File::ReadFileToString(expected_file, &expected_output));
|
||||
+ ASSERT_TRUE(File::ReadFileToString(actual_file, &actual_output));
|
||||
+
|
||||
@ -221,9 +221,9 @@ https://github.com/protocolbuffers/protobuf/pull/235
|
||||
@@ -2749,6 +2760,19 @@
|
||||
"Can only use --deterministic_output with --encode.\n");
|
||||
}
|
||||
|
||||
|
||||
+TEST_P(EncodeDecodeTest, RedirectInputOutput) {
|
||||
+ string out_file = TestTempDir() + "/golden_message_out.pbf";
|
||||
+ std::string out_file = TestTempDir() + "/golden_message_out.pbf";
|
||||
+ EXPECT_TRUE(
|
||||
+ Run(TestUtil::MaybeTranslatePath("net/proto2/internal/unittest.proto") +
|
||||
+ " --encode=protobuf_unittest.TestAllTypes" +
|
@ -1,28 +1,27 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Copyright 2008-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
EAPI=8
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
if [[ "${PV}" == *9999 ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
|
||||
EGIT_SUBMODULES=()
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
HOMEPAGE="
|
||||
https://developers.google.com/protocol-buffers/
|
||||
"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/30"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
SLOT="0/32"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
@ -35,7 +34,8 @@ RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
"${FILESDIR}/${PN}-3.20.2-protoc_input_output_files.patch"
|
||||
"${FILESDIR}/${PN}-21.9-disable-32-bit-tests.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
@ -58,11 +58,8 @@ src_prepare() {
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9433
|
||||
sed -e "/^[[:space:]]*static_assert(alignof(T) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
|
||||
sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
@ -119,6 +116,12 @@ multilib_src_test() {
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
|
||||
eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
|
||||
"Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
|
||||
die "Please update SLOT variable"
|
||||
fi
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
@ -1,143 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/28"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,143 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/28"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,143 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/28"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,143 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/28"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/29"
|
||||
# -hppa for bug #831728
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.18.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.18.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9433
|
||||
sed -e "/^[[:space:]]*static_assert(alignof(T) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,141 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/30"
|
||||
# -hppa for bug #831728
|
||||
KEYWORDS="~alpha amd64 arm arm64 -hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/7413
|
||||
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8459
|
||||
sed \
|
||||
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
|
||||
-i src/google/protobuf/arena_unittest.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8460
|
||||
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/9392
|
||||
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
|
||||
if tc-ld-is-gold; then
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
|
||||
tc-ld-disable-gold
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,118 +0,0 @@
|
||||
# Copyright 2008-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
|
||||
EGIT_SUBMODULES=()
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
|
||||
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/30"
|
||||
KEYWORDS=""
|
||||
IUSE="emacs examples static-libs test zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="emacs? ( app-editors/emacs:* )"
|
||||
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="emacs? ( app-editors/emacs:* )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
|
||||
"${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
|
||||
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
|
||||
)
|
||||
|
||||
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local options=(
|
||||
$(use_enable static-libs static)
|
||||
$(use_with zlib)
|
||||
)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build system uses protoc when building, so protoc copy runnable on host is needed.
|
||||
mkdir -p "${WORKDIR}/build" || die
|
||||
pushd "${WORKDIR}/build" > /dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build "${options[@]}"
|
||||
options+=(--with-protoc="$(pwd)/src/protoc")
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${options[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multilib-minimal_src_compile
|
||||
|
||||
if use emacs; then
|
||||
elisp-compile editors/protobuf-mode.el
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
if tc-is-cross-compiler; then
|
||||
emake -C "${WORKDIR}/build/src" protoc
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins editors/proto.vim
|
||||
insinto /usr/share/vim/vimfiles/ftdetect
|
||||
doins "${FILESDIR}/proto.vim"
|
||||
|
||||
if use emacs; then
|
||||
elisp-install ${PN} editors/protobuf-mode.el*
|
||||
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
DOCS+=(examples)
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user