diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
| commit | bfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch) | |
| tree | 0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-libs/protobuf | |
| parent | f716a9fe6455d39eef01e718aae68dae61c19704 (diff) | |
| download | baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip | |
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-libs/protobuf')
| -rw-r--r-- | dev-libs/protobuf/Manifest | 10 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/70protobuf-gentoo.el | 3 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/proto.vim | 1 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch | 118 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch | 36 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch | 146 | ||||
| -rw-r--r-- | dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch | 240 | ||||
| -rw-r--r-- | dev-libs/protobuf/metadata.xml | 23 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-21.12.ebuild | 105 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-29.6.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-30.2.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-31.1.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-32.1.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-33.6.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-34.1.ebuild | 106 | ||||
| -rw-r--r-- | dev-libs/protobuf/protobuf-35.0.ebuild | 106 |
16 files changed, 1424 insertions, 0 deletions
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest new file mode 100644 index 000000000000..d0e092a7bc50 --- /dev/null +++ b/dev-libs/protobuf/Manifest @@ -0,0 +1,10 @@ +DIST googletest-09ffd0015395354774c059a17d9f5bee36177ff9.tar.gz 886670 BLAKE2B 7bfaf186b0f04609714b04641f87dad624c263452a0e3878a5750b9d70d7bd8b71ef3f3500b0cb877d5ed6164eff6c7a3766f5b44db5271faed2d42440d17799 SHA512 e647073fbddbf202514db0bc71b39ae90c0e2528a9c658051a6a5725c34c68556ce91e25f7fbb580dcb27acdf9ec676b9dcdeb3bf30af79c50dfb3a60430203e +DIST googletest-1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2.tar.gz 873606 BLAKE2B 2808ff26b62e1f61d6d76e956427f8d5ebc57a9fdaae12514fde2e0f6fe9d574cb246401d762b8400792a9c8cd85327eae0546e64a92ad2835e16ee92673fc45 SHA512 af660ed16718b12df0aedaee44175ab16c4ad65e9d9aa6681ef0ef9f0c9ada17fb974af84dae901a4917f0050a023467647ac056a56c93d69e6549fa98703680 +DIST protobuf-21.12.tar.gz 5141166 BLAKE2B 33500612d103afb817062486a741e8e5503f82c42c70054d47d1899e6bb79f3fdde2666cad5b8eff6e1bc539c3b0cdf9f2b125ce7e5d3a459a69e84d67ab535e SHA512 2dc8f552388438268d8b9f7a9e84c6abf1736be3d5031438c789c317410c9f4b5cedd25bf7da6d67b3ba32ca890869f9ddaab2284d6ac0e734a5b135ffbb1346 +DIST v29.6.tar.gz 9353493 BLAKE2B d68f3fad860f9f8a238f0117f055c7a5492b820c9a22b4ad286e5912946c76ed44d3c4ef4c77ada9511368ac8e1527ae60dee7baf9af707c8840ab7a82f57344 SHA512 cf47676578098f6aa3c5c44f1ea351a2332b65f3f71fcd5ba66673f01c56571ac2fab69df172bf016a1d3f9cc033e735deef9055708592d43b6035ec6bcfa3da +DIST v30.2.tar.gz 9523463 BLAKE2B c62321f592164ed9f365036011a3938bb0ed6c2efb7a707cba51534e0c388d87a57841fdd4d4f33bd2d463148c6cf3814e6b2bc3737a06f3b86a40163fb9c163 SHA512 f639c0970039d20eb3b05246db9b476a21d90f858fda958cc22162e064ad2d26383fc3679317e37a74e35f02948228dbce13885e7097834ed93b27131c97e70b +DIST v31.1.tar.gz 9602477 BLAKE2B abb35cb4deddd63e56f1cc6c18e0c3f5331adb502573dadc0feb93e7d56cb956596742071af59ba95ad5c8055e4508f7c9a2653ee8a77cccf489c3cc7caf2cd6 SHA512 30561e92ff791b1c8c0f30cad833b2189e7f907fccc630a5090aaae00bf565d2f534db1126137a0ae4af85b49dfc16fdae82dc78c00e6db389c04e777705e289 +DIST v32.1.tar.gz 9694736 BLAKE2B 37a310799eaa58b14f67c62410f1e150c031b94db5a499ceeda749bd13a1165403a5d4c86ffa45729ae333080697ce0619b29a51d2bc345de012f99a3ce5dd20 SHA512 840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075 +DIST v33.6.tar.gz 6890866 BLAKE2B 318a24f478084c8c0e97f4fe14677b86f1c01e4bdc148564fd1fda997e8fecf39c2dba4903784d10733ebcf4671bd4ba67f739f54218074e9c3dd883bae717c3 SHA512 16f8689ec7aba47d29f27c2360c33c78d6e11ae9f29e815f792e6b943713395e680f0ab6d48f9395e8bec1df44c4afdc212ad4e4fc3629b820e7b3ac82e132e9 +DIST v34.1.tar.gz 7037923 BLAKE2B 38e0717361f8130f404217c7d8feba1984fc18424245a471be70eeb34bdab6c50f3b8d1cce5e0914065d1ebf607c022cae58fbcebe3e0495ee7279e011b17553 SHA512 87820e7792dc42e20dc084174f096031e2173d68a8fcf8c5deb8e91c25396d6ce423da2019b8757f27c9adbc030b7cfd9b3efcb41e18ac19b2f36c995953b8b7 +DIST v35.0.tar.gz 7153471 BLAKE2B 1deed56c80be6613ed8d67a8b28b4a62c0ccae2ba89b44b886c5030377b495c1d0d8e0f15786e69aae928067e2eb8877503e14a64946a20901a4872470ca989a SHA512 0d97b06f4e40b631cf5498bdb895846fd98943eeb97abe7993ee23a200c4956d34bc3c8c1436e5ac8413d217b49ba8689b3a58908a8e4ab5283864d678950aaf diff --git a/dev-libs/protobuf/files/70protobuf-gentoo.el b/dev-libs/protobuf/files/70protobuf-gentoo.el new file mode 100644 index 000000000000..51370527f6f2 --- /dev/null +++ b/dev-libs/protobuf/files/70protobuf-gentoo.el @@ -0,0 +1,3 @@ +(add-to-list 'load-path "@SITELISP@") +(add-to-list 'auto-mode-alist '("\\.proto\\'" . protobuf-mode)) +(autoload 'protobuf-mode "protobuf-mode" "Google protobuf mode." t) diff --git a/dev-libs/protobuf/files/proto.vim b/dev-libs/protobuf/files/proto.vim new file mode 100644 index 000000000000..6d26809efee6 --- /dev/null +++ b/dev-libs/protobuf/files/proto.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.proto set filetype=proto 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-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.19.0-system_libraries.patch b/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch new file mode 100644 index 000000000000..56905c7847db --- /dev/null +++ b/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch @@ -0,0 +1,146 @@ +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 + +-# 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 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]) + +-# 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 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 +-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. +@@ -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 \ +- $(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 \ +@@ -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 \ +- $(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 \ +@@ -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 \ +- $(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 \ +@@ -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 \ +- $(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 + diff --git a/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch new file mode 100644 index 000000000000..e4bf6858974a --- /dev/null +++ b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch @@ -0,0 +1,240 @@ +https://github.com/protocolbuffers/protobuf/pull/235 + +--- 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; ++ 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; +@@ -1120,13 +1142,20 @@ + file.add_message_type()->set_name("EmptyMessage"); + GOOGLE_CHECK(pool.BuildFile(file) != nullptr); + 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; + } + } + +@@ -1165,6 +1194,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)) { +@@ -1888,6 +1922,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; +@@ -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 +- 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). +@@ -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 == 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); ++ 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. +--- 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( +@@ -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_; ++ // 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_; +--- a/src/google/protobuf/compiler/command_line_interface_unittest.cc ++++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc +@@ -99,7 +99,7 @@ + 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" + // is replaced with TestTempDir(). + void Run(const std::string& command); +@@ -2626,6 +2626,17 @@ + std::string::npos); + } + ++ 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)); ++ ++ // 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_ = +@@ -2749,6 +2760,19 @@ + "Can only use --deterministic_output with --encode.\n"); + } + ++TEST_P(EncodeDecodeTest, RedirectInputOutput) { ++ std::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/metadata.xml b/dev-libs/protobuf/metadata.xml new file mode 100644 index 000000000000..76f0e5a75754 --- /dev/null +++ b/dev-libs/protobuf/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="person"> + <email>arfrever.fta@gmail.com</email> + <name>Arfrever Frehtes Taifersar Arahesis</name> + </maintainer> + <maintainer type="project"> + <email>cjk@gentoo.org</email> + <name>Cjk</name> + </maintainer> + <upstream> + <remote-id type="cpe">cpe:/a:google:protobuf</remote-id> + </upstream> + <origin>ports</origin> + <slots> + <subslots>Soname version number</subslots> + </slots> +</pkgmetadata>
\ No newline at end of file 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-29.6.ebuild b/dev-libs/protobuf/protobuf-29.6.ebuild new file mode 100644 index 000000000000..b2aa93deaec5 --- /dev/null +++ b/dev-libs/protobuf/protobuf-29.6.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-30.2.ebuild b/dev-libs/protobuf/protobuf-30.2.ebuild new file mode 100644 index 000000000000..b2aa93deaec5 --- /dev/null +++ b/dev-libs/protobuf/protobuf-30.2.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-31.1.ebuild b/dev-libs/protobuf/protobuf-31.1.ebuild new file mode 100644 index 000000000000..e46cee6c6499 --- /dev/null +++ b/dev-libs/protobuf/protobuf-31.1.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-32.1.ebuild b/dev-libs/protobuf/protobuf-32.1.ebuild new file mode 100644 index 000000000000..e46cee6c6499 --- /dev/null +++ b/dev-libs/protobuf/protobuf-32.1.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2025 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-33.6.ebuild b/dev-libs/protobuf/protobuf-33.6.ebuild new file mode 100644 index 000000000000..9bf1ec7a2966 --- /dev/null +++ b/dev-libs/protobuf/protobuf-33.6.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-34.1.ebuild b/dev-libs/protobuf/protobuf-34.1.ebuild new file mode 100644 index 000000000000..9bf1ec7a2966 --- /dev/null +++ b/dev-libs/protobuf/protobuf-34.1.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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-35.0.ebuild b/dev-libs/protobuf/protobuf-35.0.ebuild new file mode 100644 index 000000000000..9bf1ec7a2966 --- /dev/null +++ b/dev-libs/protobuf/protobuf-35.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 2023-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos" +GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9" +SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz + https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz +" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" +DEPEND=" + ${BDEPEND} + >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${DEPEND} +" + +DOCS=(CONTRIBUTORS.txt README.md) + +src_prepare() { + cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest + rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT} + 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=( + -Dprotobuf_DISABLE_RTTI=ON + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + -Dprotobuf_BUILD_TESTS=OFF + ) + 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 +} |
