[4/5] protobuf: New build dependency for protobuf-c

Message ID 20240124210944.1258100-4-adolf.belka@ipfire.org
State Staged
Commit 27ff7667519829c24c88c3b6ed5dd8f53010db5d
Headers
Series [1/5] frr: Update to version 9.1 |

Commit Message

Adolf Belka Jan. 24, 2024, 9:09 p.m. UTC
  - protobuf required for protobuf-c which is new build dependency for frr

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/protobuf | 288 +++++++++++++++++++++++++++++++
 lfs/protobuf                     |  81 +++++++++
 make.sh                          |   1 +
 3 files changed, 370 insertions(+)
 create mode 100644 config/rootfiles/common/protobuf
 create mode 100644 lfs/protobuf
  

Patch

diff --git a/config/rootfiles/common/protobuf b/config/rootfiles/common/protobuf
new file mode 100644
index 000000000..d3aa47718
--- /dev/null
+++ b/config/rootfiles/common/protobuf
@@ -0,0 +1,288 @@ 
+#usr/bin/protoc
+#usr/bin/protoc-25.2.0
+#usr/include/google
+#usr/include/google/protobuf
+#usr/include/google/protobuf/any.h
+#usr/include/google/protobuf/any.pb.h
+#usr/include/google/protobuf/any.proto
+#usr/include/google/protobuf/api.pb.h
+#usr/include/google/protobuf/api.proto
+#usr/include/google/protobuf/arena.h
+#usr/include/google/protobuf/arena_align.h
+#usr/include/google/protobuf/arena_allocation_policy.h
+#usr/include/google/protobuf/arena_cleanup.h
+#usr/include/google/protobuf/arenastring.h
+#usr/include/google/protobuf/arenaz_sampler.h
+#usr/include/google/protobuf/compiler
+#usr/include/google/protobuf/compiler/allowlists
+#usr/include/google/protobuf/compiler/allowlists/allowlist.h
+#usr/include/google/protobuf/compiler/allowlists/allowlists.h
+#usr/include/google/protobuf/compiler/code_generator.h
+#usr/include/google/protobuf/compiler/command_line_interface.h
+#usr/include/google/protobuf/compiler/cpp
+#usr/include/google/protobuf/compiler/cpp/enum.h
+#usr/include/google/protobuf/compiler/cpp/extension.h
+#usr/include/google/protobuf/compiler/cpp/field.h
+#usr/include/google/protobuf/compiler/cpp/field_generators
+#usr/include/google/protobuf/compiler/cpp/field_generators/generators.h
+#usr/include/google/protobuf/compiler/cpp/file.h
+#usr/include/google/protobuf/compiler/cpp/generator.h
+#usr/include/google/protobuf/compiler/cpp/helpers.h
+#usr/include/google/protobuf/compiler/cpp/message.h
+#usr/include/google/protobuf/compiler/cpp/message_layout_helper.h
+#usr/include/google/protobuf/compiler/cpp/names.h
+#usr/include/google/protobuf/compiler/cpp/options.h
+#usr/include/google/protobuf/compiler/cpp/padding_optimizer.h
+#usr/include/google/protobuf/compiler/cpp/parse_function_generator.h
+#usr/include/google/protobuf/compiler/cpp/service.h
+#usr/include/google/protobuf/compiler/cpp/tracker.h
+#usr/include/google/protobuf/compiler/csharp
+#usr/include/google/protobuf/compiler/csharp/csharp_doc_comment.h
+#usr/include/google/protobuf/compiler/csharp/csharp_enum.h
+#usr/include/google/protobuf/compiler/csharp/csharp_enum_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_field_base.h
+#usr/include/google/protobuf/compiler/csharp/csharp_generator.h
+#usr/include/google/protobuf/compiler/csharp/csharp_helpers.h
+#usr/include/google/protobuf/compiler/csharp/csharp_map_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_message.h
+#usr/include/google/protobuf/compiler/csharp/csharp_message_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_options.h
+#usr/include/google/protobuf/compiler/csharp/csharp_primitive_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_reflection_class.h
+#usr/include/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_repeated_message_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h
+#usr/include/google/protobuf/compiler/csharp/csharp_source_generator_base.h
+#usr/include/google/protobuf/compiler/csharp/csharp_wrapper_field.h
+#usr/include/google/protobuf/compiler/csharp/names.h
+#usr/include/google/protobuf/compiler/importer.h
+#usr/include/google/protobuf/compiler/java
+#usr/include/google/protobuf/compiler/java/context.h
+#usr/include/google/protobuf/compiler/java/doc_comment.h
+#usr/include/google/protobuf/compiler/java/enum.h
+#usr/include/google/protobuf/compiler/java/enum_field.h
+#usr/include/google/protobuf/compiler/java/enum_field_lite.h
+#usr/include/google/protobuf/compiler/java/enum_lite.h
+#usr/include/google/protobuf/compiler/java/extension.h
+#usr/include/google/protobuf/compiler/java/extension_lite.h
+#usr/include/google/protobuf/compiler/java/field.h
+#usr/include/google/protobuf/compiler/java/file.h
+#usr/include/google/protobuf/compiler/java/generator.h
+#usr/include/google/protobuf/compiler/java/generator_factory.h
+#usr/include/google/protobuf/compiler/java/helpers.h
+#usr/include/google/protobuf/compiler/java/java_features.pb.h
+#usr/include/google/protobuf/compiler/java/kotlin_generator.h
+#usr/include/google/protobuf/compiler/java/map_field.h
+#usr/include/google/protobuf/compiler/java/map_field_lite.h
+#usr/include/google/protobuf/compiler/java/message.h
+#usr/include/google/protobuf/compiler/java/message_builder.h
+#usr/include/google/protobuf/compiler/java/message_builder_lite.h
+#usr/include/google/protobuf/compiler/java/message_field.h
+#usr/include/google/protobuf/compiler/java/message_field_lite.h
+#usr/include/google/protobuf/compiler/java/message_lite.h
+#usr/include/google/protobuf/compiler/java/message_serialization.h
+#usr/include/google/protobuf/compiler/java/name_resolver.h
+#usr/include/google/protobuf/compiler/java/names.h
+#usr/include/google/protobuf/compiler/java/options.h
+#usr/include/google/protobuf/compiler/java/primitive_field.h
+#usr/include/google/protobuf/compiler/java/primitive_field_lite.h
+#usr/include/google/protobuf/compiler/java/service.h
+#usr/include/google/protobuf/compiler/java/shared_code_generator.h
+#usr/include/google/protobuf/compiler/java/string_field.h
+#usr/include/google/protobuf/compiler/java/string_field_lite.h
+#usr/include/google/protobuf/compiler/objectivec
+#usr/include/google/protobuf/compiler/objectivec/enum.h
+#usr/include/google/protobuf/compiler/objectivec/enum_field.h
+#usr/include/google/protobuf/compiler/objectivec/extension.h
+#usr/include/google/protobuf/compiler/objectivec/field.h
+#usr/include/google/protobuf/compiler/objectivec/file.h
+#usr/include/google/protobuf/compiler/objectivec/generator.h
+#usr/include/google/protobuf/compiler/objectivec/helpers.h
+#usr/include/google/protobuf/compiler/objectivec/import_writer.h
+#usr/include/google/protobuf/compiler/objectivec/line_consumer.h
+#usr/include/google/protobuf/compiler/objectivec/map_field.h
+#usr/include/google/protobuf/compiler/objectivec/message.h
+#usr/include/google/protobuf/compiler/objectivec/message_field.h
+#usr/include/google/protobuf/compiler/objectivec/names.h
+#usr/include/google/protobuf/compiler/objectivec/nsobject_methods.h
+#usr/include/google/protobuf/compiler/objectivec/oneof.h
+#usr/include/google/protobuf/compiler/objectivec/options.h
+#usr/include/google/protobuf/compiler/objectivec/primitive_field.h
+#usr/include/google/protobuf/compiler/objectivec/text_format_decode_data.h
+#usr/include/google/protobuf/compiler/parser.h
+#usr/include/google/protobuf/compiler/php
+#usr/include/google/protobuf/compiler/php/names.h
+#usr/include/google/protobuf/compiler/php/php_generator.h
+#usr/include/google/protobuf/compiler/plugin.h
+#usr/include/google/protobuf/compiler/plugin.pb.h
+#usr/include/google/protobuf/compiler/plugin.proto
+#usr/include/google/protobuf/compiler/python
+#usr/include/google/protobuf/compiler/python/generator.h
+#usr/include/google/protobuf/compiler/python/helpers.h
+#usr/include/google/protobuf/compiler/python/pyi_generator.h
+#usr/include/google/protobuf/compiler/retention.h
+#usr/include/google/protobuf/compiler/ruby
+#usr/include/google/protobuf/compiler/ruby/ruby_generator.h
+#usr/include/google/protobuf/compiler/rust
+#usr/include/google/protobuf/compiler/rust/accessors
+#usr/include/google/protobuf/compiler/rust/accessors/accessor_generator.h
+#usr/include/google/protobuf/compiler/rust/accessors/accessors.h
+#usr/include/google/protobuf/compiler/rust/context.h
+#usr/include/google/protobuf/compiler/rust/generator.h
+#usr/include/google/protobuf/compiler/rust/message.h
+#usr/include/google/protobuf/compiler/rust/naming.h
+#usr/include/google/protobuf/compiler/rust/oneof.h
+#usr/include/google/protobuf/compiler/rust/relative_path.h
+#usr/include/google/protobuf/compiler/scc.h
+#usr/include/google/protobuf/compiler/subprocess.h
+#usr/include/google/protobuf/compiler/versions.h
+#usr/include/google/protobuf/compiler/versions_suffix.h
+#usr/include/google/protobuf/compiler/zip_writer.h
+#usr/include/google/protobuf/cpp_edition_defaults.h
+#usr/include/google/protobuf/cpp_features.pb.h
+#usr/include/google/protobuf/cpp_features.proto
+#usr/include/google/protobuf/descriptor.h
+#usr/include/google/protobuf/descriptor.pb.h
+#usr/include/google/protobuf/descriptor.proto
+#usr/include/google/protobuf/descriptor_database.h
+#usr/include/google/protobuf/descriptor_legacy.h
+#usr/include/google/protobuf/descriptor_visitor.h
+#usr/include/google/protobuf/duration.pb.h
+#usr/include/google/protobuf/duration.proto
+#usr/include/google/protobuf/dynamic_message.h
+#usr/include/google/protobuf/empty.pb.h
+#usr/include/google/protobuf/empty.proto
+#usr/include/google/protobuf/endian.h
+#usr/include/google/protobuf/explicitly_constructed.h
+#usr/include/google/protobuf/extension_set.h
+#usr/include/google/protobuf/extension_set_inl.h
+#usr/include/google/protobuf/feature_resolver.h
+#usr/include/google/protobuf/field_access_listener.h
+#usr/include/google/protobuf/field_mask.pb.h
+#usr/include/google/protobuf/field_mask.proto
+#usr/include/google/protobuf/generated_enum_reflection.h
+#usr/include/google/protobuf/generated_enum_util.h
+#usr/include/google/protobuf/generated_message_bases.h
+#usr/include/google/protobuf/generated_message_reflection.h
+#usr/include/google/protobuf/generated_message_tctable_decl.h
+#usr/include/google/protobuf/generated_message_tctable_gen.h
+#usr/include/google/protobuf/generated_message_tctable_impl.h
+#usr/include/google/protobuf/generated_message_util.h
+#usr/include/google/protobuf/has_bits.h
+#usr/include/google/protobuf/implicit_weak_message.h
+#usr/include/google/protobuf/inlined_string_field.h
+#usr/include/google/protobuf/internal_message_util.h
+#usr/include/google/protobuf/internal_visibility.h
+#usr/include/google/protobuf/io
+#usr/include/google/protobuf/io/coded_stream.h
+#usr/include/google/protobuf/io/gzip_stream.h
+#usr/include/google/protobuf/io/io_win32.h
+#usr/include/google/protobuf/io/printer.h
+#usr/include/google/protobuf/io/strtod.h
+#usr/include/google/protobuf/io/tokenizer.h
+#usr/include/google/protobuf/io/zero_copy_sink.h
+#usr/include/google/protobuf/io/zero_copy_stream.h
+#usr/include/google/protobuf/io/zero_copy_stream_impl.h
+#usr/include/google/protobuf/io/zero_copy_stream_impl_lite.h
+#usr/include/google/protobuf/json
+#usr/include/google/protobuf/json/internal
+#usr/include/google/protobuf/json/internal/descriptor_traits.h
+#usr/include/google/protobuf/json/internal/lexer.h
+#usr/include/google/protobuf/json/internal/message_path.h
+#usr/include/google/protobuf/json/internal/parser.h
+#usr/include/google/protobuf/json/internal/parser_traits.h
+#usr/include/google/protobuf/json/internal/unparser.h
+#usr/include/google/protobuf/json/internal/unparser_traits.h
+#usr/include/google/protobuf/json/internal/untyped_message.h
+#usr/include/google/protobuf/json/internal/writer.h
+#usr/include/google/protobuf/json/internal/zero_copy_buffered_stream.h
+#usr/include/google/protobuf/json/json.h
+#usr/include/google/protobuf/map.h
+#usr/include/google/protobuf/map_entry.h
+#usr/include/google/protobuf/map_field.h
+#usr/include/google/protobuf/map_field_inl.h
+#usr/include/google/protobuf/map_field_lite.h
+#usr/include/google/protobuf/map_type_handler.h
+#usr/include/google/protobuf/message.h
+#usr/include/google/protobuf/message_lite.h
+#usr/include/google/protobuf/metadata.h
+#usr/include/google/protobuf/metadata_lite.h
+#usr/include/google/protobuf/parse_context.h
+#usr/include/google/protobuf/port.h
+#usr/include/google/protobuf/port_def.inc
+#usr/include/google/protobuf/port_undef.inc
+#usr/include/google/protobuf/raw_ptr.h
+#usr/include/google/protobuf/reflection.h
+#usr/include/google/protobuf/reflection_internal.h
+#usr/include/google/protobuf/reflection_mode.h
+#usr/include/google/protobuf/reflection_ops.h
+#usr/include/google/protobuf/repeated_field.h
+#usr/include/google/protobuf/repeated_ptr_field.h
+#usr/include/google/protobuf/serial_arena.h
+#usr/include/google/protobuf/service.h
+#usr/include/google/protobuf/source_context.pb.h
+#usr/include/google/protobuf/source_context.proto
+#usr/include/google/protobuf/string_block.h
+#usr/include/google/protobuf/struct.pb.h
+#usr/include/google/protobuf/struct.proto
+#usr/include/google/protobuf/stubs
+#usr/include/google/protobuf/stubs/callback.h
+#usr/include/google/protobuf/stubs/common.h
+#usr/include/google/protobuf/stubs/platform_macros.h
+#usr/include/google/protobuf/stubs/port.h
+#usr/include/google/protobuf/stubs/status_macros.h
+#usr/include/google/protobuf/text_format.h
+#usr/include/google/protobuf/thread_safe_arena.h
+#usr/include/google/protobuf/timestamp.pb.h
+#usr/include/google/protobuf/timestamp.proto
+#usr/include/google/protobuf/type.pb.h
+#usr/include/google/protobuf/type.proto
+#usr/include/google/protobuf/unknown_field_set.h
+#usr/include/google/protobuf/util
+#usr/include/google/protobuf/util/delimited_message_util.h
+#usr/include/google/protobuf/util/field_comparator.h
+#usr/include/google/protobuf/util/field_mask_util.h
+#usr/include/google/protobuf/util/json_util.h
+#usr/include/google/protobuf/util/message_differencer.h
+#usr/include/google/protobuf/util/time_util.h
+#usr/include/google/protobuf/util/type_resolver.h
+#usr/include/google/protobuf/util/type_resolver_util.h
+#usr/include/google/protobuf/varint_shuffle.h
+#usr/include/google/protobuf/wire_format.h
+#usr/include/google/protobuf/wire_format_lite.h
+#usr/include/google/protobuf/wrappers.pb.h
+#usr/include/google/protobuf/wrappers.proto
+#usr/include/java
+#usr/include/java/core
+#usr/include/java/core/src
+#usr/include/java/core/src/main
+#usr/include/java/core/src/main/java
+#usr/include/java/core/src/main/java/com
+#usr/include/java/core/src/main/java/com/google
+#usr/include/java/core/src/main/java/com/google/protobuf
+#usr/include/java/core/src/main/java/com/google/protobuf/java_features.proto
+#usr/include/utf8_range.h
+#usr/include/utf8_validity.h
+#usr/lib/cmake/protobuf
+#usr/lib/cmake/protobuf/protobuf-config-version.cmake
+#usr/lib/cmake/protobuf/protobuf-config.cmake
+#usr/lib/cmake/protobuf/protobuf-generate.cmake
+#usr/lib/cmake/protobuf/protobuf-module.cmake
+#usr/lib/cmake/protobuf/protobuf-options.cmake
+#usr/lib/cmake/protobuf/protobuf-targets-noconfig.cmake
+#usr/lib/cmake/protobuf/protobuf-targets.cmake
+#usr/lib/cmake/utf8_range
+#usr/lib/cmake/utf8_range/utf8_range-config.cmake
+#usr/lib/cmake/utf8_range/utf8_range-targets-noconfig.cmake
+#usr/lib/cmake/utf8_range/utf8_range-targets.cmake
+#usr/lib/libprotobuf-lite.so
+#usr/lib/libprotobuf-lite.so.25.2.0
+#usr/lib/libprotobuf.so
+#usr/lib/libprotobuf.so.25.2.0
+#usr/lib/libprotoc.so
+#usr/lib/libprotoc.so.25.2.0
+#usr/lib/libutf8_range.a
+#usr/lib/libutf8_validity.a
+#usr/lib/pkgconfig/protobuf-lite.pc
+#usr/lib/pkgconfig/protobuf.pc
+#usr/lib/pkgconfig/utf8_range.pc
diff --git a/lfs/protobuf b/lfs/protobuf
new file mode 100644
index 000000000..5258fc192
--- /dev/null
+++ b/lfs/protobuf
@@ -0,0 +1,81 @@ 
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2024  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 25.2
+
+THISAPP    = protobuf-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 1ee7a48d3a481f523ff240c79e8cacb39b6a7e2c671279812cbffd5ce9be595034461fba41f03bed363133118c1b92bd14bcfd8c4e46ac6368e6407a23fb02ea
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+	@$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && cmake . \
+			-D CMAKE_INSTALL_PREFIX=/usr \
+			-D protobuf_BUILD_TESTS=OFF \
+			-D protobuf_BUILD_SHARED_LIBS=ON \
+			-D protobuf_ABSL_PROVIDER=package
+	cd $(DIR_APP) && make $(MAKETUNING)
+	cd $(DIR_APP) && make install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 183d4a535..9405d497e 100644
--- a/make.sh
+++ b/make.sh
@@ -1648,6 +1648,7 @@  buildipfire() {
   lfsmake2 dnsdist
   lfsmake2 bird
   lfsmake2 libyang
+  lfsmake2 protobuf
   lfsmake2 protobuf-c
   lfsmake2 frr
   lfsmake2 dmidecode