From 22aa3f098da49adad41743ed923929efc21ca39f Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Fri, 8 May 2026 21:33:47 +0300 Subject: [PATCH] protobuf: add version 29.5 Add new version of protobuf as a separate package. Signed-off-by: George Sapkin --- libs/protobuf/protobuf/Makefile | 108 ++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 libs/protobuf/protobuf/Makefile diff --git a/libs/protobuf/protobuf/Makefile b/libs/protobuf/protobuf/Makefile new file mode 100644 index 0000000000..68290ef5dd --- /dev/null +++ b/libs/protobuf/protobuf/Makefile @@ -0,0 +1,108 @@ +# Copyright (C) 2007-2026 OpenWrt.org +# +# SPDX-License-Identifier: GPL-2.0-only + +include $(TOPDIR)/rules.mk + +PKG_NAME:=protobuf +PKG_VERSION:=29.5 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/google/protobuf/releases/download/v$(PKG_VERSION) +PKG_HASH:=a191d2afdd75997ba59f62019425016703daed356a9d92f7425f4741439ae544 + +PKG_MAINTAINER:=Alexandru Ardelean +PKG_LICENSE:=BSD-3-Clause +PKG_LICENSE_FILES:=LICENSE +PKG_CPE_ID:=cpe:/a:google:protobuf + +HOST_BUILD_DEPENDS:=abseil-cpp/host +PKG_BUILD_DEPENDS:=abseil-cpp + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/protobuf/Default + SECTION:=libs + CATEGORY:=Libraries + TITLE:=A structured data encoding library + URL:=https://github.com/google/protobuf + DEPENDS:=+libatomic +libstdcpp +zlib +endef + +define Package/protobuf + $(call Package/protobuf/Default) + DEPENDS+=+protobuf-lite +endef + +define Package/protobuf-lite + $(call Package/protobuf/Default) +endef + +define Package/protobuf/description/Default + Protocol Buffers are a way of encoding structured data in an efficient + yet extensible format. Google uses Protocol Buffers for almost all of its + internal RPC protocols and file formats. +endef + +define Package/protobuf/description + $(call Package/protobuf/description/Default) + + This package provides the libprotoc, libprotobuf, and libprotobuf-lite + libraries. For a much smaller protobuf package, see "protobuf-lite". +endef + +define Package/protobuf-lite/description + $(call Package/protobuf/description/Default) + + This package provides the libprotobuf-lite library. +endef + +CMAKE_HOST_OPTIONS += \ + -DBUILD_SHARED_LIBS=OFF \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -Dprotobuf_ABSL_PROVIDER="package" \ + -Dprotobuf_BUILD_EXAMPLES=OFF \ + -Dprotobuf_BUILD_PROTOC_BINARIES=ON \ + -Dprotobuf_BUILD_TESTS=OFF + +CMAKE_OPTIONS += \ + -DBUILD_SHARED_LIBS=ON \ + -Dprotobuf_ABSL_PROVIDER="package" \ + -Dprotobuf_BUILD_EXAMPLES=OFF \ + -Dprotobuf_BUILD_PROTOC_BINARIES=ON \ + -Dprotobuf_BUILD_TESTS=OFF \ + -Dprotobuf_WITH_ZLIB=ON + +TARGET_LDFLAGS += -latomic + +define Build/InstallDev + $(call Build/InstallDev/cmake,$(1)) + $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/protobuf.pc + $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/protobuf.pc + $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/protobuf-lite.pc + $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/protobuf-lite.pc + $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/upb.pc + $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/upb.pc + $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/utf8_range.pc + $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/utf8_range.pc +endef + +define Package/protobuf-lite/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libprotobuf-lite.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libutf8_range.so* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libutf8_validity.so* $(1)/usr/lib/ +endef + +define Package/protobuf/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libprotobuf.so.* $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libprotoc.so.* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,protobuf)) +$(eval $(call BuildPackage,protobuf-lite)) +$(eval $(call HostBuild))