protobuf: add version 29.5
authorGeorge Sapkin <redacted>
Fri, 8 May 2026 18:33:47 +0000 (21:33 +0300)
committerGeorge Sapkin <redacted>
Wed, 13 May 2026 17:57:12 +0000 (20:57 +0300)
Add new version of protobuf as a separate package.

Signed-off-by: George Sapkin <redacted>
libs/protobuf/protobuf/Makefile [new file with mode: 0644]

diff --git a/libs/protobuf/protobuf/Makefile b/libs/protobuf/protobuf/Makefile
new file mode 100644 (file)
index 0000000..68290ef
--- /dev/null
@@ -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 <ardeleanalex@gmail.com>
+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))
git clone https://git.99rst.org/PROJECT