diff options
author | Paul Zander <negril.nx+gentoo@gmail.com> | 2024-07-18 21:09:20 +0200 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-07-19 06:34:39 +0100 |
commit | a7a48ed2a0c9cfb428f50be5bf15b9fd1132c9c6 (patch) | |
tree | d9d2f0403e5da1fb97890812145c488d3b532327 /dev-libs | |
parent | dev-util/pkgdev: keyword 0.2.10-r1 for ~mips (diff) | |
download | gentoo-a7a48ed2a0c9cfb428f50be5bf15b9fd1132c9c6.tar.gz gentoo-a7a48ed2a0c9cfb428f50be5bf15b9fd1132c9c6.tar.bz2 gentoo-a7a48ed2a0c9cfb428f50be5bf15b9fd1132c9c6.zip |
dev-libs/protobuf-c: add 1.5.0-r2
Drop patch causing "Built-in generator --c_out specifies a maximum edition
PROTO3 which is not the protoc maximum 2023"
Add dependency on dev-cpp/abseil-cpp:=
Closes: https://bugs.gentoo.org/934464
Closes: https://bugs.gentoo.org/936230
Closes: https://bugs.gentoo.org/936167
Closes: https://bugs.gentoo.org/936122
Closes: https://bugs.gentoo.org/936120
Closes: https://bugs.gentoo.org/936030
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37607
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/protobuf-c/files/protobuf-c-1.5.0-Clean-CMake.patch | 52 | ||||
-rw-r--r-- | dev-libs/protobuf-c/protobuf-c-1.5.0-r2.ebuild (renamed from dev-libs/protobuf-c/protobuf-c-1.5.0-r1.ebuild) | 9 |
2 files changed, 7 insertions, 54 deletions
diff --git a/dev-libs/protobuf-c/files/protobuf-c-1.5.0-Clean-CMake.patch b/dev-libs/protobuf-c/files/protobuf-c-1.5.0-Clean-CMake.patch index f3e55a9c89cc..38a36b50cc86 100644 --- a/dev-libs/protobuf-c/files/protobuf-c-1.5.0-Clean-CMake.patch +++ b/dev-libs/protobuf-c/files/protobuf-c-1.5.0-Clean-CMake.patch @@ -115,55 +115,3 @@ index 062d330b..be28b601 100644 } // Work around changes in protobuf >= 22.x without breaking compilation against - -From 2480f4d9d2fa97e5511ed0914ee529a344e969a7 Mon Sep 17 00:00:00 2001 -From: Robert Edmonds <edmonds@users.noreply.github.com> -Date: Wed, 20 Mar 2024 22:43:30 -0400 -Subject: [PATCH 03/11] CGenerator: Protect against being invoked against - "edition" syntax .proto files - -The Google protobuf project is currently experimenting with a new syntax -for .proto files called "editions". Since protobuf-c is a proto2/proto3 -compiler, after the previous commit reimplementing `FieldSyntax()`, the -protobuf compiler will abort like this if presented with an "editions" -syntax .proto file due to the safety check in `FieldSyntax()`: - - $ protoc --experimental_editions --c_out=. test.proto - protoc-gen-c: ./protoc-c/c_helpers.h:178: int google::protobuf::compiler::c::FieldSyntax(const google::protobuf::FieldDescriptor*): Assertion `syntax == "proto2" || syntax == "proto3"' failed. - --c_out: protoc-gen-c: Plugin killed by signal 6. - -On protobuf 26, our `CodeGenerator` can implement certain methods to -declare that we "support" editions, and then reject any other edition -except proto2 and proto3, which have apparently been retroactively -declared to be "editions". Of course this needs to be wrapped in a -version guard. - -With this protection in place, the protobuf compiler cleanly exits with -a nice error message like this: - - $ protoc --experimental_editions --c_out=. test.proto - WARNING: All log messages before absl::InitializeLog() is called are written to STDERR - E0000 00:00:1710988958.296200 20022 descriptor.cc:4620] Invalid proto descriptor for file "test.proto": - E0000 00:00:1710988958.296239 20022 descriptor.cc:4623] test.proto: Edition 2023 is later than the maximum supported edition PROTO3 - --c_out: protoc-gen-c: Plugin failed with status code 1. ---- - protoc-c/c_generator.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h -index b8b44aaa..4aeb5790 100644 ---- a/protoc-c/c_generator.h -+++ b/protoc-c/c_generator.h -@@ -93,6 +93,12 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator { - const std::string& parameter, - OutputDirectory* output_directory, - std::string* error) const; -+ -+#if GOOGLE_PROTOBUF_VERSION >= 5026000 -+ uint64_t GetSupportedFeatures() const { return CodeGenerator::FEATURE_SUPPORTS_EDITIONS; } -+ Edition GetMinimumEdition() const { return Edition::EDITION_PROTO2; } -+ Edition GetMaximumEdition() const { return Edition::EDITION_PROTO3; } -+#endif - }; - - } // namespace c diff --git a/dev-libs/protobuf-c/protobuf-c-1.5.0-r1.ebuild b/dev-libs/protobuf-c/protobuf-c-1.5.0-r2.ebuild index 842e911beb9e..3099c2e6a0ad 100644 --- a/dev-libs/protobuf-c/protobuf-c-1.5.0-r1.ebuild +++ b/dev-libs/protobuf-c/protobuf-c-1.5.0-r2.ebuild @@ -16,7 +16,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="BSD-2" # Subslot == SONAME version SLOT="0/1.0.0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86" IUSE="static-libs" BDEPEND=" @@ -25,7 +25,12 @@ BDEPEND=" " DEPEND=" >=dev-libs/protobuf-3:0=[${MULTILIB_USEDEP}]" -RDEPEND="${DEPEND}" +# NOTE +# protobuf links to abseil-cpp libraries via it's .pc files. +# To cause rebuild when the abseil-cpp version changes we add it to RDEPEND only. +RDEPEND="${DEPEND} + dev-cpp/abseil-cpp:=[${MULTILIB_USEDEP}] +" PATCHES=( "${FILESDIR}/${PN}-1.5.0-Clean-CMake.patch" |