summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/protobuf')
-rw-r--r--dev-libs/protobuf/Manifest10
-rw-r--r--dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch118
-rw-r--r--dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch71
-rw-r--r--dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch32
-rw-r--r--dev-libs/protobuf/files/protobuf-23.3-disable-32-bit-tests.patch34
-rw-r--r--dev-libs/protobuf/files/protobuf-23.3-static_assert-failure.patch11
-rw-r--r--dev-libs/protobuf/files/protobuf-3.15.0-disable_no-warning-test.patch19
-rw-r--r--dev-libs/protobuf/files/protobuf-3.15.0-protoc_input_output_files.patch240
-rw-r--r--dev-libs/protobuf/files/protobuf-3.15.0-system_libraries.patch121
-rw-r--r--dev-libs/protobuf/files/protobuf-3.17.0-disable_no-warning-test.patch19
-rw-r--r--dev-libs/protobuf/files/protobuf-3.17.0-system_libraries.patch121
-rw-r--r--dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch36
-rw-r--r--dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch (renamed from dev-libs/protobuf/files/protobuf-3.16.0-system_libraries.patch)57
-rw-r--r--dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch (renamed from dev-libs/protobuf/files/protobuf-3.16.0-protoc_input_output_files.patch)74
-rw-r--r--dev-libs/protobuf/metadata.xml8
-rw-r--r--dev-libs/protobuf/protobuf-21.12.ebuild105
-rw-r--r--dev-libs/protobuf/protobuf-21.9.ebuild (renamed from dev-libs/protobuf/protobuf-3.17.0.ebuild)39
-rw-r--r--dev-libs/protobuf/protobuf-22.5.ebuild117
-rw-r--r--dev-libs/protobuf/protobuf-23.3-r2.ebuild108
-rw-r--r--dev-libs/protobuf/protobuf-3.15.8.ebuild140
-rw-r--r--dev-libs/protobuf/protobuf-3.16.0.ebuild140
-rw-r--r--dev-libs/protobuf/protobuf-3.17.1.ebuild140
-rw-r--r--dev-libs/protobuf/protobuf-3.17.2.ebuild140
-rw-r--r--dev-libs/protobuf/protobuf-3.17.3.ebuild140
-rw-r--r--dev-libs/protobuf/protobuf-9999.ebuild118
25 files changed, 742 insertions, 1416 deletions
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest
index 87ea4747892e..8695f23be04a 100644
--- a/dev-libs/protobuf/Manifest
+++ b/dev-libs/protobuf/Manifest
@@ -1,6 +1,4 @@
-DIST protobuf-3.15.8.tar.gz 5285277 BLAKE2B 798fc011ac03cdc2406acf5845c667d8482082044bdace06c2c1d02b5b1b69c1b1f30e29774180dc1801a1d21d62e2ce50325105859564a1e36d3fe478e64d8b SHA512 56fc6df2dae14eee0fb67dd4204fc1ec54a18d994a69c9e42c7888d0cd50d269d1c5e1445d74f0fa705850d4ac86a22d86781e09769a716e5c6f829b15b05592
-DIST protobuf-3.16.0.tar.gz 5299781 BLAKE2B 9ace02a6038c31b7393671fb2ccd6a4866a3f8b7d87d2bc8371f49d65b9180f10792ca2430a83449dfa7d785a1244dac23c20756414c9d1e7c7e871a8038b123 SHA512 0191e5a6a23d03f691e883e259f6d06a0ac8eef427455bc7d1cc70b6f0ed260e4ad8f360c836fd4bdc95ec0ca314c887cbf7acbcda60e03cdfe69e4cd275bff5
-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-21.12.tar.gz 5141166 BLAKE2B 33500612d103afb817062486a741e8e5503f82c42c70054d47d1899e6bb79f3fdde2666cad5b8eff6e1bc539c3b0cdf9f2b125ce7e5d3a459a69e84d67ab535e SHA512 2dc8f552388438268d8b9f7a9e84c6abf1736be3d5031438c789c317410c9f4b5cedd25bf7da6d67b3ba32ca890869f9ddaab2284d6ac0e734a5b135ffbb1346
+DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1
+DIST protobuf-22.5.tar.gz 4924661 BLAKE2B d69c73f4ebfddf45fd94b4f5f898faf00256fe674f2cbc0443c60a88d7a0f47fb96f2f6262879927c6da88095b4ea3ee7fd4c471c100bf42a2bae9edf48c07f1 SHA512 058ab2fec5b11007972e6043071056d1944c3b6fe1d31246cddba8eb57686e3b5280f6ad3d58e78940ca63005e74a8de3c72237f9f7c5066548c5a2513ddc584
+DIST protobuf-23.3.tar.gz 5043803 BLAKE2B ee2edee230969555c9ef95069c7b1d6c23c3d1f8ea1b2249fb3e9f6fcf63312c6e10e9da65b80629fb08d5fb08d05a19bb9c752c25b892c1e3fd6f18b9279eb3 SHA512 646af367dbc61b42e322cf0b335f360e428b272e2b1f5361b2f17c18d3dc9dddd615e1279436028b1a42275a0beadda37c2c934fc27d6c892131cc8d526d8b3b
diff --git a/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch b/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch
new file mode 100644
index 000000000000..cd6b5aa2db6d
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch
@@ -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.
diff --git a/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch b/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch
new file mode 100644
index 000000000000..4bbed7ecbaf5
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch
@@ -0,0 +1,71 @@
+From 4329fde9cf3fab7d1b3a9abe0fbeee1ad8a8b111 Mon Sep 17 00:00:00 2001
+From: "Romain Geissler @ Amadeus" <romain.geissler@amadeus.com>
+Date: Tue, 6 Jun 2023 10:49:55 -0700
+Subject: [PATCH] Use the same ABI for static and shared libraries on
+ non-Windows platforms (#12983)
+
+Hi,
+
+It seems that until last year, the logic behind `PROTOBUF_USE_DLLS` was for Windows (MSCV) only. It was changed to all platforms here in https://github.com/protocolbuffers/protobuf/commit/5a0887fc6529596eff5c0f72febc602a9d494cc2
+
+Last month, the generated pkg config files were updated to reflect the protobuf build-time value of `PROTOBUF_USE_DLLS` as it was indeed noted that it changes the ABI. This was done in https://github.com/protocolbuffers/protobuf/pull/12700 In the commit message it is mentionned that most likely we shall rather have a stable ABI.
+
+Finally in https://github.com/protocolbuffers/protobuf/issues/12746 which at some point mentions https://issuetracker.google.com/issues/283987730#comment7 where a Google employee hits the linker issue:
+```
+undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_'
+```
+which denotes a mix of some .o or libs built `PROTOBUF_USE_DLLS` defined and some others build with `PROTOBUF_USE_DLLS` undefined, resulting in ABI incompatibilities.
+
+I also hit this issue while trying to include protobuf in a corporate environment using it's own proprietary build system in which it is expected that .a and .so use a compatible ABI.
+
+From my own understanding, ideally we should always use `thread_local` variables, but experience has shown that:
+ - old iOS (iOS < 9) didn't seem to accept `thread_local`, leading to the `GOOGLE_PROTOBUF_NO_THREADLOCAL` macro later renamed `PROTOBUF_NO_THREADLOCAL` which allowed to disable this, but it is not set anywhere in the protobuf code base. Also I doubt you still want to support such old iOS now, so maybe you should consider removing all `PROTOBUF_NO_THREADLOCAL` related code paths (this pull request doesn't do this).
+ - MSVC's DLL interface doesn't seem to accept exporting thread local variables (at least from what I understood, I know absolutely nothing about the Windows ecosystem), yet we can "hide" a thread local variable in a static function using a thread local variable. However in that case the access to TLS variable is not inlined, leading to worse performances, this hack shall be done only for Windows (actually when using MSVC) *AND* we build a shared library.
+ - In all other cases, a classical `thread_local` shall be used, no matter if we build a static or a shared library. In particular on Linux which I guess is the target Google cares the more about for its own production. This pull request achieves this.
+
+Am I right in my conclusion ?
+
+Closes #12983
+
+COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/12983 from Romain-Geissler-1A:stable-abi-use-dll-non-windows dc23ff50f67cf0c8e45900a78700d1fc3e8bec39
+PiperOrigin-RevId: 538230923
+---
+ src/google/protobuf/arena.cc | 2 +-
+ src/google/protobuf/reflection_mode.cc | 2 +-
+ src/google/protobuf/reflection_mode.h | 10 ++++++----
+ src/google/protobuf/thread_safe_arena.h | 6 +++---
+ 4 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/src/google/protobuf/arena.cc b/src/google/protobuf/arena.cc
+index 51afdbdaf..6577a3669 100644
+--- a/src/google/protobuf/arena.cc
++++ b/src/google/protobuf/arena.cc
+@@ -519,7 +519,7 @@ ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() {
+ new internal::ThreadLocalStorage<ThreadCache>();
+ return *thread_cache_->Get();
+ }
+-#elif defined(PROTOBUF_USE_DLLS)
++#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
+ ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() {
+ static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache;
+ return thread_cache;
+diff --git a/src/google/protobuf/thread_safe_arena.h b/src/google/protobuf/thread_safe_arena.h
+index e6e3b7fae..f53993a85 100644
+--- a/src/google/protobuf/thread_safe_arena.h
++++ b/src/google/protobuf/thread_safe_arena.h
+@@ -260,9 +260,9 @@ class PROTOBUF_EXPORT ThreadSafeArena {
+ // iOS does not support __thread keyword so we use a custom thread local
+ // storage class we implemented.
+ static ThreadCache& thread_cache();
+-#elif defined(PROTOBUF_USE_DLLS)
+- // Thread local variables cannot be exposed through DLL interface but we can
+- // wrap them in static functions.
++#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
++ // Thread local variables cannot be exposed through MSVC DLL interface but we
++ // can wrap them in static functions.
+ static ThreadCache& thread_cache();
+ #else
+ PROTOBUF_CONSTINIT static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache_;
+--
+2.43.0
+
diff --git a/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch b/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch
new file mode 100644
index 000000000000..fcf39e1e3e8f
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch
@@ -0,0 +1,32 @@
+From fc1c5512e524e0c00a276aa9a38b2cdb8fdf45c7 Mon Sep 17 00:00:00 2001
+From: Protobuf Team Bot <protobuf-github-bot@google.com>
+Date: Thu, 1 Jun 2023 09:14:48 -0700
+Subject: [PATCH] fix: missing `PROTOBUF_EXPORT` for public symbols
+
+PiperOrigin-RevId: 537042088
+---
+ src/google/protobuf/io/strtod.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/google/protobuf/io/strtod.h b/src/google/protobuf/io/strtod.h
+index 851c8e621..b368e4d87 100644
+--- a/src/google/protobuf/io/strtod.h
++++ b/src/google/protobuf/io/strtod.h
+@@ -60,12 +60,12 @@ PROTOBUF_EXPORT std::string SimpleFtoa(float value);
+
+ // A locale-independent version of the standard strtod(), which always
+ // uses a dot as the decimal separator.
+-double NoLocaleStrtod(const char* str, char** endptr);
++PROTOBUF_EXPORT double NoLocaleStrtod(const char* str, char** endptr);
+
+ // Casts a double value to a float value. If the value is outside of the
+ // representable range of float, it will be converted to positive or negative
+ // infinity.
+-float SafeDoubleToFloat(double value);
++PROTOBUF_EXPORT float SafeDoubleToFloat(double value);
+
+ } // namespace io
+ } // namespace protobuf
+--
+2.43.0
+
diff --git a/dev-libs/protobuf/files/protobuf-23.3-disable-32-bit-tests.patch b/dev-libs/protobuf/files/protobuf-23.3-disable-32-bit-tests.patch
new file mode 100644
index 000000000000..1e49bc981d8e
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-23.3-disable-32-bit-tests.patch
@@ -0,0 +1,34 @@
+https://github.com/protocolbuffers/protobuf/issues/8460
+--- a/src/google/protobuf/any_test.cc
++++ b/src/google/protobuf/any_test.cc
+@@ -63,6 +63,8 @@ TEST(AnyTest, TestPackAndUnpack) {
+ }
+
+ TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {
++ // Filter out this test on 32-bit architectures.
++ if(sizeof(void*) < 8) return;
+ protobuf_unittest::TestAny submessage;
+ submessage.mutable_text()->resize(INT_MAX, 'a');
+ protobuf_unittest::TestAny message;
+
+https://github.com/protocolbuffers/protobuf/issues/8459
+--- a/src/google/protobuf/arena_unittest.cc
++++ b/src/google/protobuf/arena_unittest.cc
+@@ -1373,6 +1373,8 @@ TEST(ArenaTest, MessageLiteOnArena) {
+ uint64_t Align8(uint64_t n) { return (n + 7) & -8; }
+
+ TEST(ArenaTest, SpaceAllocated_and_Used) {
++ // Filter out this test on 32-bit architectures.
++ if(sizeof(void*) < 8) return;
+ Arena arena_1;
+ EXPECT_EQ(0, arena_1.SpaceAllocated());
+ EXPECT_EQ(0, arena_1.SpaceUsed());
+@@ -1453,6 +1455,8 @@ TEST(ArenaTest, Alignment) {
+ }
+
+ TEST(ArenaTest, BlockSizeSmallerThanAllocation) {
++ // Filter out this test on 32-bit architectures.
++ if(sizeof(void*) < 8) return;
+ for (size_t i = 0; i <= 8; ++i) {
+ ArenaOptions opt;
+ opt.start_block_size = opt.max_block_size = i;
diff --git a/dev-libs/protobuf/files/protobuf-23.3-static_assert-failure.patch b/dev-libs/protobuf/files/protobuf-23.3-static_assert-failure.patch
new file mode 100644
index 000000000000..53ca65814251
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-23.3-static_assert-failure.patch
@@ -0,0 +1,11 @@
+https://github.com/protocolbuffers/protobuf/issues/9433
+--- a/src/google/protobuf/descriptor.cc
++++ b/src/google/protobuf/descriptor.cc
+@@ -384,7 +384,6 @@ class FlatAllocatorImpl {
+ ABSL_CHECK(!has_allocated());
+ if (std::is_trivially_destructible<U>::value) {
+ // Trivial types are aligned to 8 bytes.
+- static_assert(alignof(U) <= 8, "");
+ total_.template Get<char>() += RoundUpTo<8>(array_size * sizeof(U));
+ } else {
+ // Since we can't use `if constexpr`, just make the expression compile
diff --git a/dev-libs/protobuf/files/protobuf-3.15.0-disable_no-warning-test.patch b/dev-libs/protobuf/files/protobuf-3.15.0-disable_no-warning-test.patch
deleted file mode 100644
index 031b1b222a9e..000000000000
--- a/dev-libs/protobuf/files/protobuf-3.15.0-disable_no-warning-test.patch
+++ /dev/null
@@ -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
-@@ -709,7 +709,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 \
-@@ -896,4 +896,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
diff --git a/dev-libs/protobuf/files/protobuf-3.15.0-protoc_input_output_files.patch b/dev-libs/protobuf/files/protobuf-3.15.0-protoc_input_output_files.patch
deleted file mode 100644
index 8e9733fc4644..000000000000
--- a/dev-libs/protobuf/files/protobuf-3.15.0-protoc_input_output_files.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-https://github.com/protocolbuffers/protobuf/pull/235
-
---- /src/google/protobuf/compiler/command_line_interface.cc
-+++ /src/google/protobuf/compiler/command_line_interface.cc
-@@ -1109,6 +1109,28 @@
- }
-
- if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) {
-+ bool success = false;
-+ int in_fd = STDIN_FILENO;
-+ int out_fd = STDOUT_FILENO;
-+
-+ if (!protobuf_in_path_.empty()) {
-+ in_fd = open(protobuf_in_path_.c_str(), O_RDONLY);
-+ if (in_fd == -1) {
-+ std::cerr << protobuf_in_path_ << ": error: failed to open file." << std::endl;
-+ return 1;
-+ }
-+ }
-+ if (!protobuf_out_path_.empty()) {
-+ out_fd = open(protobuf_out_path_.c_str(),
-+ O_WRONLY | O_CREAT | O_TRUNC,
-+ 0644);
-+ if (out_fd == -1) {
-+ std::cerr << protobuf_out_path_ << ": error: failed to open file." << std::endl;
-+ close(in_fd);
-+ return 1;
-+ }
-+ }
-+
- if (codec_type_.empty()) {
- // HACK: Define an EmptyMessage type to use for decoding.
- DescriptorPool pool;
-@@ -1117,13 +1139,20 @@
- file.add_message_type()->set_name("EmptyMessage");
- GOOGLE_CHECK(pool.BuildFile(file) != NULL);
- codec_type_ = "EmptyMessage";
-- if (!EncodeOrDecode(&pool)) {
-- return 1;
-- }
-+ success = EncodeOrDecode(&pool, in_fd, out_fd);
- } else {
-- if (!EncodeOrDecode(descriptor_pool.get())) {
-- return 1;
-- }
-+ success = EncodeOrDecode(descriptor_pool.get(), in_fd, out_fd);
-+ }
-+
-+ if (in_fd != STDIN_FILENO) {
-+ close(in_fd);
-+ }
-+ if (out_fd != STDOUT_FILENO) {
-+ close(out_fd);
-+ }
-+
-+ if (!success) {
-+ return 1;
- }
- }
-
-@@ -1161,6 +1190,11 @@
- for (int i = 0; i < proto_path_.size(); i++) {
- source_tree->MapPath(proto_path_[i].first, proto_path_[i].second);
- }
-+ if (mode_ == MODE_COMPILE &&
-+ (!protobuf_in_path_.empty() || !protobuf_out_path_.empty())) {
-+ 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)) {
-@@ -1892,6 +1926,12 @@
- } else if (name == "--deterministic_output") {
- deterministic_output_ = true;
-
-+ } else if (name == "--protobuf_in") {
-+ protobuf_in_path_ = value;
-+
-+ } else if (name == "--protobuf_out") {
-+ protobuf_out_path_ = value;
-+
- } else if (name == "--error_format") {
- if (value == "gcc") {
- error_format_ = ERROR_FORMAT_GCC;
-@@ -2019,22 +2059,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
-- from standard input and write it in binary
-- to standard output. The message type must
-+ from input protobuf file and write it in binary
-+ to output protobuf file. The message type must
- be defined in PROTO_FILES or their imports.
-+ The input/output protobuf files are specified
-+ using the --protobuf_in and --protobuf_out
-+ command line flags.
- --deterministic_output When using --encode, ensure map fields are
- deterministically ordered. Note that this order
- is not canonical, and changes across builds or
- releases of protoc.
- --decode=MESSAGE_TYPE Read a binary message of the given type from
-- standard input and write it in text format
-- to standard output. The message type must
-+ input protobuf file and write it in text format
-+ to output protobuf file. The message type must
- be defined in PROTO_FILES or their imports.
-+ The input/output protobuf files are specified
-+ using the --protobuf_in and --protobuf_out
-+ command line flags.
- --decode_raw Read an arbitrary protocol message from
-- standard input and write the raw tag/value
-- pairs in text format to standard output. No
-+ input protobuf file and write the raw tag/value
-+ pairs in text format to output protobuf file. No
- PROTO_FILES should be given when using this
-- flag.
-+ flag. The input/output protobuf files are
-+ specified using the --protobuf_in and
-+ --protobuf_out command line flags.
-+ --protobuf_in=FILE Absolute path to the protobuf file from which
-+ input of encoding/decoding operation will be
-+ read. If omitted, input will be read from
-+ standard input.
-+ --protobuf_out=FILE Absolute path to the protobuf file to which
-+ output of encoding/decoding operation will be
-+ written. If omitted, output will be written to
-+ standard output.
- --descriptor_set_in=FILES Specifies a delimited list of FILES
- each containing a FileDescriptorSet (a
- protocol buffer defined in descriptor.proto).
-@@ -2341,7 +2397,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) {
-@@ -2353,15 +2411,15 @@
- std::unique_ptr<Message> message(dynamic_factory.GetPrototype(type)->New());
-
- if (mode_ == MODE_ENCODE) {
-- SetFdToTextMode(STDIN_FILENO);
-- SetFdToBinaryMode(STDOUT_FILENO);
-+ SetFdToTextMode(in_fd);
-+ SetFdToBinaryMode(out_fd);
- } else {
-- SetFdToBinaryMode(STDIN_FILENO);
-- SetFdToTextMode(STDOUT_FILENO);
-+ 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
-@@ -296,7 +296,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(
-@@ -428,6 +430,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_;
-+ // When using --encode / --decode / --decode_raw, absolute path to the input
-+ // file. (Empty string indicates read from STDIN).
-+ std::string protobuf_in_path_;
-+
- // 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
-@@ -97,7 +97,7 @@
- virtual void SetUp();
- virtual void TearDown();
-
-- // 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"
- // is replaced with TestTempDir().
- void Run(const std::string& command);
-@@ -2596,6 +2596,17 @@
- std::string::npos);
- }
-
-+ void ExpectBinaryFilesMatch(const string &expected_file,
-+ const string &actual_file) {
-+ string expected_output, actual_output;
-+ ASSERT_TRUE(File::ReadFileToString(expected_file, &expected_output));
-+ ASSERT_TRUE(File::ReadFileToString(actual_file, &actual_output));
-+
-+ // Don't use EXPECT_EQ because we don't want to print raw binary data to
-+ // stdout on failure.
-+ EXPECT_TRUE(expected_output == actual_output);
-+ }
-+
- private:
- void WriteUnittestProtoDescriptorSet() {
- unittest_proto_descriptor_set_filename_ =
-@@ -2719,6 +2730,19 @@
- "Can only use --deterministic_output with --encode.\n");
- }
-
-+TEST_P(EncodeDecodeTest, RedirectInputOutput) {
-+ string out_file = TestTempDir() + "/golden_message_out.pbf";
-+ EXPECT_TRUE(
-+ Run(TestUtil::MaybeTranslatePath("net/proto2/internal/unittest.proto") +
-+ " --encode=protobuf_unittest.TestAllTypes" +
-+ " --protobuf_in=" + TestUtil::GetTestDataPath(
-+ "net/proto2/internal/"
-+ "testdata/text_format_unittest_data_oneof_implemented.txt") +
-+ " --protobuf_out=" + out_file));
-+ ExpectBinaryFilesMatch(out_file, TestUtil::GetTestDataPath(
-+ "net/proto2/internal/testdata/golden_message_oneof_implemented"));
-+}
-+
- INSTANTIATE_TEST_SUITE_P(FileDescriptorSetSource, EncodeDecodeTest,
- testing::Values(PROTO_PATH, DESCRIPTOR_SET_IN));
- } // anonymous namespace
diff --git a/dev-libs/protobuf/files/protobuf-3.15.0-system_libraries.patch b/dev-libs/protobuf/files/protobuf-3.15.0-system_libraries.patch
deleted file mode 100644
index 9a75a6665f0c..000000000000
--- a/dev-libs/protobuf/files/protobuf-3.15.0-system_libraries.patch
+++ /dev/null
@@ -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
-@@ -223,12 +223,5 @@
- esac
- AM_CONDITIONAL([OBJC_CONFORMANCE_TEST], [test $OBJC_CONFORMANCE_TEST = 1])
-
--# 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
-@@ -703,19 +703,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.
-@@ -807,12 +799,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 \
-@@ -833,11 +821,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 \
-@@ -849,11 +833,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 \
-@@ -863,8 +843,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 \
diff --git a/dev-libs/protobuf/files/protobuf-3.17.0-disable_no-warning-test.patch b/dev-libs/protobuf/files/protobuf-3.17.0-disable_no-warning-test.patch
deleted file mode 100644
index eb1598c945fd..000000000000
--- a/dev-libs/protobuf/files/protobuf-3.17.0-disable_no-warning-test.patch
+++ /dev/null
@@ -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
diff --git a/dev-libs/protobuf/files/protobuf-3.17.0-system_libraries.patch b/dev-libs/protobuf/files/protobuf-3.17.0-system_libraries.patch
deleted file mode 100644
index 3d5069dd1478..000000000000
--- a/dev-libs/protobuf/files/protobuf-3.17.0-system_libraries.patch
+++ /dev/null
@@ -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 \
diff --git a/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch b/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch
new file mode 100644
index 000000000000..eb3dd0c1cb3f
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch
@@ -0,0 +1,36 @@
+From 12e381222a8cdce50845dfb7d8fdf863f6f8bb8a Mon Sep 17 00:00:00 2001
+From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
+Date: Fri, 28 Jan 2022 15:08:40 +0800
+Subject: [PATCH] protobuf-3.19.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 3312e5d..7e86b62 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -722,7 +722,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 \
+@@ -911,4 +911,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
+
diff --git a/dev-libs/protobuf/files/protobuf-3.16.0-system_libraries.patch b/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch
index 5b6f4101e9ca..56905c7847db 100644
--- a/dev-libs/protobuf/files/protobuf-3.16.0-system_libraries.patch
+++ b/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch
@@ -1,6 +1,24 @@
---- /Makefile.am
-+++ /Makefile.am
-@@ -11,28 +11,10 @@
+From c080d329298e841d7d4e1380ff7ec88de5cb3b02 Mon Sep 17 00:00:00 2001
+From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
+Date: Fri, 28 Jan 2022 15:14:59 +0800
+Subject: [PATCH] protobuf-3.19.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 41d4061..b24f8f4 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
@@ -30,9 +48,11 @@
echo "Making clean in conformance"; \
cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \
fi; \
---- /configure.ac
-+++ /configure.ac
-@@ -236,12 +236,5 @@
+diff --git a/configure.ac b/configure.ac
+index 02085ca..449fb3d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then
fi
AC_SUBST([LIBLOG_LIBS])
@@ -45,11 +65,13 @@
-
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
AC_OUTPUT
---- /src/Makefile.am
-+++ /src/Makefile.am
-@@ -703,19 +703,11 @@
- google/protobuf/testing/file.cc \
- google/protobuf/testing/file.h
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 7e86b62..47d759f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -716,19 +716,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
@@ -68,7 +90,7 @@
# 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.
-@@ -807,12 +799,8 @@
+@@ -820,12 +812,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 \
@@ -83,7 +105,7 @@
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES = \
google/protobuf/compiler/cpp/cpp_unittest.cc \
-@@ -833,11 +821,7 @@
+@@ -847,11 +835,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 \
@@ -96,7 +118,7 @@
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES = \
google/protobuf/lite_unittest.cc \
-@@ -849,11 +833,7 @@
+@@ -863,11 +847,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 \
@@ -109,7 +131,7 @@
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_arena_test_SOURCES = \
google/protobuf/lite_arena_unittest.cc \
-@@ -863,8 +843,7 @@
+@@ -877,8 +857,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
@@ -118,4 +140,7 @@
+ -lgtest
test_plugin_SOURCES = \
google/protobuf/compiler/mock_code_generator.cc \
- google/protobuf/testing/file.cc \
+ google/protobuf/compiler/test_plugin.cc \
+--
+2.34.1
+
diff --git a/dev-libs/protobuf/files/protobuf-3.16.0-protoc_input_output_files.patch b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch
index 7295e805a196..e4bf6858974a 100644
--- a/dev-libs/protobuf/files/protobuf-3.16.0-protoc_input_output_files.patch
+++ b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch
@@ -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" +
diff --git a/dev-libs/protobuf/metadata.xml b/dev-libs/protobuf/metadata.xml
index 2bfedff80e39..4ac93ba8e52d 100644
--- a/dev-libs/protobuf/metadata.xml
+++ b/dev-libs/protobuf/metadata.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>arfrever.fta@gmail.com</email>
<name>Arfrever Frehtes Taifersar Arahesis</name>
</maintainer>
- <maintainer type="person" proxied="proxy">
- <email>floppym@gentoo.org</email>
- <name>Mike Gilbert</name>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
</maintainer>
<slots>
<subslots>Soname version number</subslots>
diff --git a/dev-libs/protobuf/protobuf-21.12.ebuild b/dev-libs/protobuf/protobuf-21.12.ebuild
new file mode 100644
index 000000000000..3672570cf101
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-21.12.ebuild
@@ -0,0 +1,105 @@
+# Copyright 2008-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib elisp-common toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ 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 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="https://protobuf.dev/"
+
+LICENSE="BSD"
+SLOT="0/3.$(ver_cut 1-2).0"
+IUSE="emacs examples test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+ test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
+ "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
+)
+
+DOCS=( CONTRIBUTORS.txt README.md )
+
+src_configure() {
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ cmake-multilib_src_configure
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -Dprotobuf_DISABLE_RTTI=ON
+ -Dprotobuf_BUILD_EXAMPLES=$(usex examples)
+ -Dprotobuf_WITH_ZLIB=$(usex zlib)
+ -Dprotobuf_BUILD_TESTS=$(usex test)
+ )
+ use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON)
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+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
+ 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
+}
diff --git a/dev-libs/protobuf/protobuf-3.17.0.ebuild b/dev-libs/protobuf/protobuf-21.9.ebuild
index 6391fd499f34..68b9207ab7b4 100644
--- a/dev-libs/protobuf/protobuf-3.17.0.ebuild
+++ b/dev-libs/protobuf/protobuf-21.9.ebuild
@@ -1,28 +1,27 @@
-# Copyright 2008-2021 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/28"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+SLOT="0/32"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
@@ -33,9 +32,10 @@ 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"
+ "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
+ "${FILESDIR}/${PN}-3.19.0-system_libraries.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,6 +58,9 @@ 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/9433
+ sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
+
eautoreconf
}
@@ -113,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
diff --git a/dev-libs/protobuf/protobuf-22.5.ebuild b/dev-libs/protobuf/protobuf-22.5.ebuild
new file mode 100644
index 000000000000..dc99040c5f31
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-22.5.ebuild
@@ -0,0 +1,117 @@
+# Copyright 2008-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib elisp-common flag-o-matic toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ 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 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="https://protobuf.dev/"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2).0"
+IUSE="emacs examples test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="
+ >=dev-cpp/abseil-cpp-20230125:=[${MULTILIB_USEDEP}]
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+ test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ >=dev-cpp/abseil-cpp-20230125:=[${MULTILIB_USEDEP}]
+ emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
+ "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
+ "${FILESDIR}/${P}-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch"
+ "${FILESDIR}/${P}-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch"
+)
+
+DOCS=( CONTRIBUTORS.txt README.md )
+
+src_prepare() {
+ eapply_user
+ append-cxxflags -std=c++17
+ cmake_src_prepare
+}
+
+src_configure() {
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ cmake-multilib_src_configure
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_CXX_STANDARD=17
+ -Dprotobuf_DISABLE_RTTI=ON
+ -Dprotobuf_BUILD_EXAMPLES=$(usex examples)
+ -Dprotobuf_WITH_ZLIB=$(usex zlib)
+ -Dprotobuf_BUILD_TESTS=$(usex test)
+ -Dprotobuf_ABSL_PROVIDER=package
+ )
+ use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON)
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+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
+ 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
+}
diff --git a/dev-libs/protobuf/protobuf-23.3-r2.ebuild b/dev-libs/protobuf/protobuf-23.3-r2.ebuild
new file mode 100644
index 000000000000..c9721bfd61ce
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-23.3-r2.ebuild
@@ -0,0 +1,108 @@
+# Copyright 2008-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib elisp-common toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ 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 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="https://protobuf.dev/"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2).0"
+IUSE="emacs examples test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="
+ >=dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}]
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+ test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ >=dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}]
+ emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
+ "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
+)
+
+DOCS=( CONTRIBUTORS.txt README.md )
+
+src_configure() {
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ cmake-multilib_src_configure
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -Dprotobuf_DISABLE_RTTI=ON
+ -Dprotobuf_BUILD_EXAMPLES=$(usex examples)
+ -Dprotobuf_WITH_ZLIB=$(usex zlib)
+ -Dprotobuf_BUILD_TESTS=$(usex test)
+ -Dprotobuf_ABSL_PROVIDER=package
+ )
+ use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON)
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+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
+ 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
+}
diff --git a/dev-libs/protobuf/protobuf-3.15.8.ebuild b/dev-libs/protobuf/protobuf-3.15.8.ebuild
deleted file mode 100644
index 751620427fff..000000000000
--- a/dev-libs/protobuf/protobuf-3.15.8.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2008-2021 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/26"
-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.15.0-disable_no-warning-test.patch"
- "${FILESDIR}/${PN}-3.15.0-system_libraries.patch"
- "${FILESDIR}/${PN}-3.15.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
-
- 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
-}
diff --git a/dev-libs/protobuf/protobuf-3.16.0.ebuild b/dev-libs/protobuf/protobuf-3.16.0.ebuild
deleted file mode 100644
index ed6e85a966fb..000000000000
--- a/dev-libs/protobuf/protobuf-3.16.0.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2008-2021 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/27"
-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.15.0-disable_no-warning-test.patch"
- "${FILESDIR}/${PN}-3.16.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
-
- 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
-}
diff --git a/dev-libs/protobuf/protobuf-3.17.1.ebuild b/dev-libs/protobuf/protobuf-3.17.1.ebuild
deleted file mode 100644
index 6391fd499f34..000000000000
--- a/dev-libs/protobuf/protobuf-3.17.1.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2008-2021 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
-
- 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
-}
diff --git a/dev-libs/protobuf/protobuf-3.17.2.ebuild b/dev-libs/protobuf/protobuf-3.17.2.ebuild
deleted file mode 100644
index 6391fd499f34..000000000000
--- a/dev-libs/protobuf/protobuf-3.17.2.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2008-2021 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
-
- 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
-}
diff --git a/dev-libs/protobuf/protobuf-3.17.3.ebuild b/dev-libs/protobuf/protobuf-3.17.3.ebuild
deleted file mode 100644
index 6391fd499f34..000000000000
--- a/dev-libs/protobuf/protobuf-3.17.3.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2008-2021 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
-
- 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
-}
diff --git a/dev-libs/protobuf/protobuf-9999.ebuild b/dev-libs/protobuf/protobuf-9999.ebuild
deleted file mode 100644
index 6a5eecd502cf..000000000000
--- a/dev-libs/protobuf/protobuf-9999.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 2008-2021 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=""
-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
- 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
-}