From adc2d87190e264b9c55474f56994bf36db92e191 Mon Sep 17 00:00:00 2001 From: Vincent Jardin Date: Fri, 5 Dec 2025 11:06:26 +0100 Subject: [PATCH] package/sysrepo-cpp: new package Add a Buildroot package for sysrepo-cpp, providing modern C++ RAII bindings for the sysrepo YANG datastore library. Signed-off-by: Vincent Jardin Signed-off-by: Thomas Petazzoni --- DEVELOPERS | 1 + package/Config.in | 1 + package/sysrepo-cpp/Config.in | 29 ++++++++++++++++++++++++++++ package/sysrepo-cpp/sysrepo-cpp.hash | 3 +++ package/sysrepo-cpp/sysrepo-cpp.mk | 19 ++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 package/sysrepo-cpp/Config.in create mode 100644 package/sysrepo-cpp/sysrepo-cpp.hash create mode 100644 package/sysrepo-cpp/sysrepo-cpp.mk diff --git a/DEVELOPERS b/DEVELOPERS index af596a3847..0296a28280 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -3361,6 +3361,7 @@ F: package/bfscripts/ F: package/dpdk/ F: package/libecoli/ F: package/libyang-cpp/ +F: package/sysrepo-cpp/ N: Vincent Prince F: package/nss-myhostname/ diff --git a/package/Config.in b/package/Config.in index a663869f6d..297565ab1b 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2145,6 +2145,7 @@ menu "Networking" source "package/sofia-sip/Config.in" source "package/sscep/Config.in" source "package/sysrepo/Config.in" + source "package/sysrepo-cpp/Config.in" source "package/thrift/Config.in" source "package/usbredir/Config.in" source "package/wampcc/Config.in" diff --git a/package/sysrepo-cpp/Config.in b/package/sysrepo-cpp/Config.in new file mode 100644 index 0000000000..8f836e92fe --- /dev/null +++ b/package/sysrepo-cpp/Config.in @@ -0,0 +1,29 @@ +config BR2_PACKAGE_SYSREPO_CPP + bool "sysrepo-cpp" + depends on BR2_USE_MMU # sysrepo + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # sysrepo + depends on !BR2_STATIC_LIBS # sysrepo, libyang-cpp + depends on BR2_INSTALL_LIBSTDCPP # sysrepo, libyang-cpp + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # libyang-cpp + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libyang-cpp + # std::timespec build issue + depends on !BR2_TOOLCHAIN_USES_UCLIBC + select BR2_PACKAGE_SYSREPO + select BR2_PACKAGE_LIBYANG_CPP + help + C++20 RAII bindings for the sysrepo YANG datastore library. + + This library provides modern C++ object-oriented bindings on + top of sysrepo, using RAII for automatic lifetime + management. + + https://github.com/sysrepo/sysrepo-cpp + +comment "sysrepo-cpp needs a glibc or musl toolchain w/ NPTL threads, dynamic libs, C++, gcc >= 10" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ + BR2_STATIC_LIBS || \ + !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \ + BR2_TOOLCHAIN_USES_UCLIBC diff --git a/package/sysrepo-cpp/sysrepo-cpp.hash b/package/sysrepo-cpp/sysrepo-cpp.hash new file mode 100644 index 0000000000..43a1bc439f --- /dev/null +++ b/package/sysrepo-cpp/sysrepo-cpp.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 d7fbeaba7f2fdaf70c67cc70f438943eee636b21f08854e58967d0d97801bacc sysrepo-cpp-6.tar.gz +sha256 82e3758011ec44c78e98d0777799d6e12aec5b8a64b32ebb20d0fe50e32488bb LICENSE diff --git a/package/sysrepo-cpp/sysrepo-cpp.mk b/package/sysrepo-cpp/sysrepo-cpp.mk new file mode 100644 index 0000000000..f211357abd --- /dev/null +++ b/package/sysrepo-cpp/sysrepo-cpp.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# sysrepo-cpp +# +################################################################################ + +SYSREPO_CPP_VERSION = 6 +SYSREPO_CPP_SITE = $(call github,sysrepo,sysrepo-cpp,v$(SYSREPO_CPP_VERSION)) +SYSREPO_CPP_LICENSE = BSD-3-Clause +SYSREPO_CPP_LICENSE_FILES = LICENSE +SYSREPO_CPP_INSTALL_STAGING = YES +SYSREPO_CPP_SUPPORTS_IN_SOURCE_BUILD = NO +SYSREPO_CPP_DEPENDENCIES = sysrepo libyang-cpp + +SYSREPO_CPP_CONF_OPTS += \ + -DWITH_DOCS=OFF \ + -DWITH_EXAMPLES=OFF + +$(eval $(cmake-package))