package/sysrepo: add package
sysrepo is a YANG-based configuration and operational state data store for Unix/Linux applications. It is a dependency of Netopeer, a NETCONF server. Both patches have been merged upstream. Signed-off-by: Heiko Thiery <heiko.thiery@kontron.com> [Arnout: fix sysvinit scripts to properly daemonize and to read /etc/default] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
ee9e281da7
commit
30849a53d4
@ -1048,6 +1048,7 @@ F: package/python-sip/
|
|||||||
N: Heiko Thiery <heiko.thiery@gmail.com>
|
N: Heiko Thiery <heiko.thiery@gmail.com>
|
||||||
F: package/libnetconf2/
|
F: package/libnetconf2/
|
||||||
F: package/libyang/
|
F: package/libyang/
|
||||||
|
F: package/sysrepo/
|
||||||
|
|
||||||
N: Henrique Camargo <henrique@henriquecamargo.com>
|
N: Henrique Camargo <henrique@henriquecamargo.com>
|
||||||
F: package/json-glib/
|
F: package/json-glib/
|
||||||
|
@ -1680,6 +1680,7 @@ menu "Networking"
|
|||||||
source "package/slirp/Config.in"
|
source "package/slirp/Config.in"
|
||||||
source "package/snmppp/Config.in"
|
source "package/snmppp/Config.in"
|
||||||
source "package/sofia-sip/Config.in"
|
source "package/sofia-sip/Config.in"
|
||||||
|
source "package/sysrepo/Config.in"
|
||||||
source "package/thrift/Config.in"
|
source "package/thrift/Config.in"
|
||||||
source "package/usbredir/Config.in"
|
source "package/usbredir/Config.in"
|
||||||
source "package/wampcc/Config.in"
|
source "package/wampcc/Config.in"
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
From c4a2195febbd5d436f8de79d8391d8da9aa60ac4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Walle <michael@walle.cc>
|
||||||
|
Date: Thu, 10 Oct 2019 14:58:16 +0200
|
||||||
|
Subject: [PATCH] CMakeLists.txt: respect CMAKE_INSTALL_PREFIX and DESTDIR
|
||||||
|
|
||||||
|
Don't use absolute pathnames in the install function. This way the files
|
||||||
|
will be installed in the correct location even if CMAKE_INSTALL_PREFIX
|
||||||
|
and DESTDIR are changed.
|
||||||
|
|
||||||
|
Patch comes from upstream pull-request:
|
||||||
|
https://github.com/sysrepo/sysrepo/pull/1638
|
||||||
|
|
||||||
|
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index e4521088..14b7cd36 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -357,7 +357,7 @@ if(WITH_SYSTEMD)
|
||||||
|
${PROJECT_SOURCE_DIR}/deploy/systemd/sysrepod.service
|
||||||
|
${PROJECT_SOURCE_DIR}/deploy/systemd/sysrepo-plugind.service
|
||||||
|
)
|
||||||
|
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/deploy/systemd/ DESTINATION "/lib/systemd/system"
|
||||||
|
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/deploy/systemd/ DESTINATION "lib/systemd/system"
|
||||||
|
FILES_MATCHING PATTERN "*.service")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 906927b4ee2dd0d5bd669d193fc851d14919fbd1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Walle <michael@walle.cc>
|
||||||
|
Date: Thu, 10 Oct 2019 14:38:57 +0200
|
||||||
|
Subject: [PATCH] CMakeLists.txt: make systemd unit dir configurable
|
||||||
|
|
||||||
|
Patch comes from upstream pull-request:
|
||||||
|
https://github.com/sysrepo/sysrepo/pull/1638
|
||||||
|
|
||||||
|
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 6 +++++-
|
||||||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 14b7cd36..14c84675 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -217,6 +217,9 @@ else()
|
||||||
|
message(FATAL_ERROR "Unknown file format \"${FILE_FORMAT_EXT}\", must be json, xml, or lyb.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+set(SYSTEMD_UNIT_DIR "lib/systemd/system/" CACHE STRING
|
||||||
|
+ "Path to the systemd service directory.")
|
||||||
|
+
|
||||||
|
# timeouts
|
||||||
|
set(REQUEST_TIMEOUT 15 CACHE STRING
|
||||||
|
"Timeout (in seconds) for Sysrepo API requests. Set to 0 for no timeout.")
|
||||||
|
@@ -357,7 +360,8 @@ if(WITH_SYSTEMD)
|
||||||
|
${PROJECT_SOURCE_DIR}/deploy/systemd/sysrepod.service
|
||||||
|
${PROJECT_SOURCE_DIR}/deploy/systemd/sysrepo-plugind.service
|
||||||
|
)
|
||||||
|
- install(DIRECTORY ${PROJECT_SOURCE_DIR}/deploy/systemd/ DESTINATION "lib/systemd/system"
|
||||||
|
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/deploy/systemd/
|
||||||
|
+ DESTINATION "${SYSTEMD_UNIT_DIR}"
|
||||||
|
FILES_MATCHING PATTERN "*.service")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
35
package/sysrepo/Config.in
Normal file
35
package/sysrepo/Config.in
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
config BR2_PACKAGE_SYSREPO
|
||||||
|
bool "sysrepo"
|
||||||
|
depends on BR2_USE_MMU # libnetconf2
|
||||||
|
depends on !BR2_STATIC_LIBS
|
||||||
|
depends on BR2_INSTALL_LIBSTDCPP
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||||
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
|
||||||
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # host-protobuf
|
||||||
|
select BR2_PACKAGE_LIBAVL
|
||||||
|
select BR2_PACKAGE_LIBEV
|
||||||
|
select BR2_PACKAGE_LIBNETCONF2
|
||||||
|
select BR2_PACKAGE_LIBYANG
|
||||||
|
select BR2_PACKAGE_PCRE
|
||||||
|
select BR2_PACKAGE_PCRE_UCP
|
||||||
|
select BR2_PACKAGE_PROTOBUF_C
|
||||||
|
help
|
||||||
|
Sysrepo is an YANG-based configuration and operational state
|
||||||
|
data store for Unix/Linux applications.
|
||||||
|
|
||||||
|
https://github.com/sysrepo
|
||||||
|
|
||||||
|
if BR2_PACKAGE_SYSREPO
|
||||||
|
|
||||||
|
config BR2_PACKAGE_SYSREPO_EXAMPLES
|
||||||
|
bool "enable examples"
|
||||||
|
help
|
||||||
|
Enable sysrepo examples.
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
comment "sysrepo needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8"
|
||||||
|
depends on BR2_USE_MMU
|
||||||
|
depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \
|
||||||
|
|| !BR2_TOOLCHAIN_HAS_THREADS
|
||||||
|
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
48
package/sysrepo/S50sysrepod
Normal file
48
package/sysrepo/S50sysrepod
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
DAEMON="sysrepod"
|
||||||
|
PIDFILE="/var/run/$DAEMON.pid"
|
||||||
|
|
||||||
|
SYSREPOD_ARGS=""
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
printf 'Starting %s: ' "$DAEMON"
|
||||||
|
start-stop-daemon -S -q -x "/usr/bin/$DAEMON" \
|
||||||
|
-- $SYSREPOD_ARGS
|
||||||
|
status=$?
|
||||||
|
if [ "$status" -eq 0 ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "FAIL"
|
||||||
|
fi
|
||||||
|
return "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
printf 'Stopping %s: ' "$DAEMON"
|
||||||
|
start-stop-daemon -K -q -p "$PIDFILE"
|
||||||
|
status=$?
|
||||||
|
if [ "$status" -eq 0 ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "FAIL"
|
||||||
|
fi
|
||||||
|
return "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
sleep 1
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start|stop|restart)
|
||||||
|
"$1";;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart}"
|
||||||
|
exit 1
|
||||||
|
esac
|
53
package/sysrepo/S51sysrepo-plugind
Normal file
53
package/sysrepo/S51sysrepo-plugind
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
DAEMON="sysrepo-plugind"
|
||||||
|
PIDFILE="/var/run/$DAEMON.pid"
|
||||||
|
|
||||||
|
SYSREPO_PLUGIND_ARGS=""
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
printf 'Starting %s: ' "$DAEMON"
|
||||||
|
start-stop-daemon -S -q -x "/usr/bin/$DAEMON" \
|
||||||
|
-- $SYSREPO_PLUGIND_ARGS
|
||||||
|
status=$?
|
||||||
|
if [ "$status" -eq 0 ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "FAIL"
|
||||||
|
fi
|
||||||
|
return "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
printf 'Stopping %s: ' "$DAEMON"
|
||||||
|
start-stop-daemon -K -q -p $PIDFILE
|
||||||
|
status=$?
|
||||||
|
if [ "$status" -eq 0 ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "FAIL"
|
||||||
|
fi
|
||||||
|
return "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
sleep 1
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
# we do not support real reload .. just restart
|
||||||
|
restart
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start|stop|restart|reload)
|
||||||
|
"$1";;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|restart|reload}"
|
||||||
|
exit 1
|
||||||
|
esac
|
2
package/sysrepo/sysrepo.hash
Normal file
2
package/sysrepo/sysrepo.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
sha256 d3066c1776a6727b96bbb3517eb646d0bb6037e8e1addcbe873cae590493843e sysrepo-0.7.8.tar.gz
|
||||||
|
sha256 28a773bfffa828ec38c030fc8ace5f3aeb90926ec1309bbd135441c4387ce3cd LICENSE
|
60
package/sysrepo/sysrepo.mk
Normal file
60
package/sysrepo/sysrepo.mk
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# sysrepo
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
SYSREPO_VERSION = 0.7.8
|
||||||
|
SYSREPO_SITE = $(call github,sysrepo,sysrepo,v$(SYSREPO_VERSION))
|
||||||
|
SYSREPO_INSTALL_STAGING = YES
|
||||||
|
SYSREPO_LICENSE = Apache-2.0
|
||||||
|
SYSREPO_LICENSE_FILES = LICENSE
|
||||||
|
SYSREPO_DEPENDENCIES = libev libnetconf2 libavl libyang pcre protobuf-c host-sysrepo
|
||||||
|
HOST_SYSREPO_DEPENDENCIES = host-libev host-libnetconf2 host-libavl host-libyang host-pcre host-protobuf-c
|
||||||
|
|
||||||
|
SYSREPO_CONF_OPTS = \
|
||||||
|
-DGEN_PYTHON2_TESTS=OFF \
|
||||||
|
-DENABLE_TESTS=OFF \
|
||||||
|
-DGEN_CPP_BINDINGS=OFF \
|
||||||
|
-DGEN_LANGUAGE_BINDINGS=OFF \
|
||||||
|
-DGEN_PYTHON_BINDINGS=OFF \
|
||||||
|
-DBUILD_CPP_EXAMPLES=OFF \
|
||||||
|
-DCALL_SYSREPOCTL_BIN=$(HOST_DIR)/bin/sysrepoctl \
|
||||||
|
-DCALL_SYSREPOCFG_BIN=$(HOST_DIR)/bin/sysrepocfg \
|
||||||
|
-DBUILD_EXAMPLES=$(if $(BR2_PACKAGE_SYSREPO_EXAMPLES),ON,OFF) \
|
||||||
|
$(if $(BR2_INIT_SYSTEMD),-DWITH_SYSTEMD=ON) \
|
||||||
|
$(if $(BR2_INIT_SYSTEMD),-DSYSTEMD_UNIT_DIR=usr/lib/systemd/system)
|
||||||
|
|
||||||
|
# On ARM, this is needed to prevent unaligned memory access with an optimized
|
||||||
|
# build .. https://github.com/sysrepo/sysrepo/issues/947
|
||||||
|
SYSREPO_CONF_OPTS += -DUSE_SR_MEM_MGMT=OFF
|
||||||
|
|
||||||
|
define SYSREPO_INSTALL_INIT_SYSV
|
||||||
|
$(INSTALL) -m 755 -D package/sysrepo/S50sysrepod \
|
||||||
|
$(TARGET_DIR)/etc/init.d/S50sysrepod
|
||||||
|
$(INSTALL) -m 755 -D package/sysrepo/S51sysrepo-plugind \
|
||||||
|
$(TARGET_DIR)/etc/init.d/S51sysrepo-plugind
|
||||||
|
endef
|
||||||
|
|
||||||
|
define SYSREPO_INSTALL_INIT_SYSTEMD
|
||||||
|
mkdir -p $(TARGET_DIR)/etc/systemd/systemd/multi-user.target.wants
|
||||||
|
ln -fs ../../../../usr/lib/systemd/system/sysrepod.service \
|
||||||
|
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
||||||
|
ln -fs ../../../../usr/lib/systemd/system/sysrepo-plugind.service \
|
||||||
|
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
||||||
|
endef
|
||||||
|
|
||||||
|
HOST_SYSREPO_CONF_OPTS = \
|
||||||
|
-DGEN_PYTHON2_TESTS=OFF \
|
||||||
|
-DENABLE_TESTS=OFF \
|
||||||
|
-DGEN_CPP_BINDINGS=OFF \
|
||||||
|
-DGEN_LANGUAGE_BINDINGS=OFF \
|
||||||
|
-DGEN_PYTHON_BINDINGS=OFF \
|
||||||
|
-DCALL_TARGET_BINS_DIRECTLY=OFF \
|
||||||
|
-DBUILD_EXAMPLES=OFF \
|
||||||
|
-DBUILD_CPP_EXAMPLES=OFF \
|
||||||
|
-DREPOSITORY_LOC=$(HOST_DIR)/etc/sysrepo \
|
||||||
|
-DSUBSCRIPTIONS_SOCKET_DIR=$(HOST_DIR)/var/run/sysrepo-subscriptions
|
||||||
|
|
||||||
|
$(eval $(cmake-package))
|
||||||
|
$(eval $(host-cmake-package))
|
Loading…
Reference in New Issue
Block a user