diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2023-06-27 22:00:38 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2023-06-27 22:14:36 +0200 |
commit | 2bf32183a2b79e19eb860b8e39dd2e8ac226113e (patch) | |
tree | 0054ac1122ff6de1ba2a521a1cb2db3e0dd5ed6a /dev-libs/protobuf | |
parent | dev-libs/protobuf: drop 3.19.3, 3.19.6, 3.20.1-r1, 3.20.3, 21.8 (diff) | |
download | gentoo-2bf32183a2b79e19eb860b8e39dd2e8ac226113e.tar.gz gentoo-2bf32183a2b79e19eb860b8e39dd2e8ac226113e.tar.bz2 gentoo-2bf32183a2b79e19eb860b8e39dd2e8ac226113e.zip |
dev-libs/protobuf: drop unmaintained 9999
Multiple patches are broken, not synced with last release version bump,
autotools build system is dead.
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-libs/protobuf')
-rw-r--r-- | dev-libs/protobuf/files/protobuf-3.20.1-protoc_input_output_files.patch | 240 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-9999.ebuild | 148 |
2 files changed, 0 insertions, 388 deletions
diff --git a/dev-libs/protobuf/files/protobuf-3.20.1-protoc_input_output_files.patch b/dev-libs/protobuf/files/protobuf-3.20.1-protoc_input_output_files.patch deleted file mode 100644 index 39a68650a74a..000000000000 --- a/dev-libs/protobuf/files/protobuf-3.20.1-protoc_input_output_files.patch +++ /dev/null @@ -1,240 +0,0 @@ -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 -@@ -1110,6 +1110,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; -@@ -1118,13 +1140,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; - } - } - -@@ -1163,6 +1192,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)) { -@@ -1885,6 +1919,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; -@@ -2018,22 +2058,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). -@@ -2344,7 +2400,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 @@ - 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 -@@ -292,7 +292,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 @@ - // 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 @@ - 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); -@@ -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/protobuf-9999.ebuild b/dev-libs/protobuf/protobuf-9999.ebuild deleted file mode 100644 index 9f84c789877f..000000000000 --- a/dev-libs/protobuf/protobuf-9999.ebuild +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 2008-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -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.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/ -" - -LICENSE="BSD" -SLOT="0/32" -IUSE="emacs examples static-libs test zlib" -RESTRICT="!test? ( test )" - -BDEPEND="emacs? ( app-editors/emacs:* )" -DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" -RDEPEND="emacs? ( app-editors/emacs:* ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" - -PATCHES=( - "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch" - "${FILESDIR}/${PN}-3.19.0-system_libraries.patch" - "${FILESDIR}/${PN}-3.20.1-protoc_input_output_files.patch" -) - -DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md) - -src_prepare() { - default - - # https://github.com/protocolbuffers/protobuf/issues/7413 - sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die - - # https://github.com/protocolbuffers/protobuf/issues/8082 - sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/8459 - sed \ - -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ - -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ - -i src/google/protobuf/arena_unittest.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/8460 - sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/9433 - sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die - - eautoreconf -} - -src_configure() { - append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI - - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local options=( - $(use_enable static-libs static) - $(use_with zlib) - ) - - if tc-is-cross-compiler; then - # Build system uses protoc when building, so protoc copy runnable on host is needed. - mkdir -p "${WORKDIR}/build" || die - pushd "${WORKDIR}/build" > /dev/null || die - ECONF_SOURCE="${S}" econf_build "${options[@]}" - options+=(--with-protoc="$(pwd)/src/protoc") - popd > /dev/null || die - fi - - ECONF_SOURCE="${S}" econf "${options[@]}" -} - -src_compile() { - multilib-minimal_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -multilib_src_compile() { - if tc-is-cross-compiler; then - emake -C "${WORKDIR}/build/src" protoc - fi - - default -} - -multilib_src_test() { - emake check -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - 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 -} |