package/netopeer2: add package

Netopeer2 is a set of tools implementing network configuration
tools based on the NETCONF Protocol.

Netopeer2 needs libnetconf2 to have SSL/TSL and SSH support, so
we enable both openssl and libssh+server from netopeer2, so that
libnetconf2 has appropriate support. But netopeer2 does not use
either, so does not build-depend on them.

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
[yann.morin.1998@free.fr:
  - fix dependencies and their comments
  - explain openssl and libssh+server dependencies
  - fix codestyle in Config,in, noticed by Adam
  - fix codestyle in .mk
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Heiko Thiery 2020-06-16 14:16:45 +02:00 committed by Yann E. MORIN
parent 7f97fd4f15
commit 6335ff0857
8 changed files with 222 additions and 0 deletions

View file

@ -1090,6 +1090,7 @@ F: package/python-sip/
N: Heiko Thiery <heiko.thiery@gmail.com>
F: package/libnetconf2/
F: package/libyang/
F: package/netopeer2/
F: package/sysrepo/
N: Henrique Camargo <henrique@henriquecamargo.com>

View file

@ -1751,6 +1751,7 @@ menu "Networking"
source "package/mongoose/Config.in"
source "package/nanomsg/Config.in"
source "package/neon/Config.in"
source "package/netopeer2/Config.in"
source "package/nghttp2/Config.in"
source "package/norm/Config.in"
source "package/nss-mdns/Config.in"

View file

@ -0,0 +1,33 @@
From c6afffafd1e27054ff59b82ffed3a99795814631 Mon Sep 17 00:00:00 2001
From: Heiko Thiery <heiko.thiery@gmail.com>
Date: Mon, 8 Jun 2020 09:47:58 +0200
Subject: [PATCH] build BUGFIX take DESTDIR into account (#649)
When installing yang modules add DESTDIR prefix to the NP2_MODULE_DIR.
Fixes #648
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
[patch taken from upstream:
https://github.com/CESNET/netopeer2/commit/726b1384a3f93090ede1143da86c99d5d24d06c5]
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
scripts/setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/setup.sh b/scripts/setup.sh
index 7175bc4..81abf63 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -8,7 +8,7 @@ fi
# avoid problems with sudo path
SYSREPOCTL=`su -c "which sysrepoctl" $USER`
-MODDIR=${NP2_MODULE_DIR}
+MODDIR=${DESTDIR}${NP2_MODULE_DIR}
PERMS=${NP2_MODULE_PERMS}
OWNER=${NP2_MODULE_OWNER}
GROUP=${NP2_MODULE_GROUP}
--
2.20.1

View file

@ -0,0 +1,79 @@
From 71cc996faa5500b3bfd499ad0c436c8b96629ea7 Mon Sep 17 00:00:00 2001
From: Michal Vasko <mvasko@cesnet.cz>
Date: Wed, 10 Jun 2020 15:20:23 +0200
Subject: [PATCH] scripts CHANGE use su only for effective root
Fixes #645
[patch taken from upstream:
https://github.com/CESNET/netopeer2/commit/2161b333009c21ffc8501e5127b82e6f0570ca8e]
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
scripts/merge_config.sh | 8 ++++++--
scripts/merge_hostkey.sh | 11 ++++++++---
scripts/setup.sh | 8 ++++++--
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/scripts/merge_config.sh b/scripts/merge_config.sh
index dde0c75..4ad151c 100755
--- a/scripts/merge_config.sh
+++ b/scripts/merge_config.sh
@@ -2,8 +2,12 @@
set -e
-# avoid problems with sudo path
-SYSREPOCFG=`su -c "which sysrepocfg" $USER`
+# avoid problems with sudo PATH
+if [ `id -u` -eq 0 ]; then
+ SYSREPOCFG=`su -c 'which sysrepocfg' -l $USER`
+else
+ SYSREPOCFG=`which sysrepocfg`
+fi
KS_KEY_NAME=genkey
# check that there is no listen/Call Home configuration yet
diff --git a/scripts/merge_hostkey.sh b/scripts/merge_hostkey.sh
index 87947fa..a0677ee 100755
--- a/scripts/merge_hostkey.sh
+++ b/scripts/merge_hostkey.sh
@@ -2,9 +2,14 @@
set -e
-# avoid problems with sudo path
-SYSREPOCFG=`su -c "which sysrepocfg" $USER`
-OPENSSL=`su -c "which openssl" $USER`
+# avoid problems with sudo PATH
+if [ `id -u` -eq 0 ]; then
+ SYSREPOCFG=`su -c 'which sysrepocfg' -l $USER`
+ OPENSSL=`su -c 'which openssl' -l $USER`
+else
+ SYSREPOCFG=`which sysrepocfg`
+ OPENSSL=`which openssl`
+fi
# check that there is no SSH key with this name yet
KEYSTORE_KEY=`$SYSREPOCFG -X -x "/ietf-keystore:keystore/asymmetric-keys/asymmetric-key[name='genkey']/name"`
diff --git a/scripts/setup.sh b/scripts/setup.sh
index 81abf63..8bf6825 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -6,8 +6,12 @@ if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" -o -z "$NP2_MODULE_OWNER" -o
exit 1
fi
-# avoid problems with sudo path
-SYSREPOCTL=`su -c "which sysrepoctl" $USER`
+# avoid problems with sudo PATH
+if [ `id -u` -eq 0 ]; then
+ SYSREPOCTL=`su -c 'which sysrepoctl' -l $USER`
+else
+ SYSREPOCTL=`which sysrepoctl`
+fi
MODDIR=${DESTDIR}${NP2_MODULE_DIR}
PERMS=${NP2_MODULE_PERMS}
OWNER=${NP2_MODULE_OWNER}
--
2.20.1

View file

@ -0,0 +1,34 @@
comment "netopeer2 needs a toolchain w/ gcc >= 4.8, C++, threads, dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP \
|| !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
config BR2_PACKAGE_NETOPEER2
bool "netopeer2"
depends on BR2_USE_MMU # libnetconf2, libssh, sysrepo
depends on !BR2_STATIC_LIBS # libnetconf2, libssh, libyang, sysrepo
depends on BR2_INSTALL_LIBSTDCPP # sysrepo
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # sysrepo
select BR2_PACKAGE_LIBNETCONF2
select BR2_PACKAGE_LIBSSH
select BR2_PACKAGE_LIBSSH_SERVER # For libnetconf2 to have SSH
select BR2_PACKAGE_LIBYANG
select BR2_PACKAGE_OPENSSL # For libnetconf2 to have TLS
select BR2_PACKAGE_SYSREPO
help
Netopeer2 is a set of tools implementing network configuration
tools based on the NETCONF Protocol.
This is the server part.
https://github.com/CESNET/Netopeer2
if BR2_PACKAGE_NETOPEER2
config BR2_PACKAGE_NETOPEER2_CLI
bool "cli"
help
Enable netopeer2 CLI.
endif

View file

@ -0,0 +1,50 @@
#!/bin/sh
DAEMON="netopeer2-server"
PIDFILE="/var/run/$DAEMON.pid"
NETOPEER2_SERVER_ARGS=""
start() {
printf 'Starting %s: ' "$DAEMON"
start-stop-daemon -S -b -q -p $PIDFILE -x "/usr/bin/$DAEMON" \
-- $NETOPEER2_SERVER_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}"
esac

View file

@ -0,0 +1,3 @@
# Locally calculated
sha256 66f3ad68cc6e41f3231b090ef27016ccbfe007cda7d08ec19f409f7429f46ff9 netopeer2-1.1.34.tar.gz
sha256 b46f161fbdcf127d3ef22602e15958c3092fe3294f71a2dc8cdf8f6689cba95b LICENSE

View file

@ -0,0 +1,21 @@
################################################################################
#
# netopeer2
#
################################################################################
NETOPEER2_VERSION = 1.1.34
NETOPEER2_SITE = $(call github,CESNET,Netopeer2,v$(NETOPEER2_VERSION))
NETOPEER2_DL_SUBDIR = netopeer2
NETOPEER2_LICENSE = BSD-3-Clause
NETOPEER2_LICENSE_FILES = LICENSE
NETOPEER2_DEPENDENCIES = libnetconf2 libyang sysrepo
NETOPEER2_CONF_OPTS = -DBUILD_CLI=$(if $(BR2_PACKAGE_NETOPEER2_CLI),ON,OFF)
define NETOPEER2_INSTALL_INIT_SYSV
$(INSTALL) -m 755 -D package/netopeer2/S52netopeer2 \
$(TARGET_DIR)/etc/init.d/S52netopeer2
endef
$(eval $(cmake-package))