All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [git commit] package/netopeer2: add package
Date: Fri, 24 Jul 2020 23:27:00 +0200	[thread overview]
Message-ID: <20200724212239.99D528832E@busybox.osuosl.org> (raw)

commit: https://git.buildroot.net/buildroot/commit/?id=6335ff08570daa6ec905650a8e46b449b0ad1bb8
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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 at 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>
---
 DEVELOPERS                                         |  1 +
 package/Config.in                                  |  1 +
 ...uild-BUGFIX-take-DESTDIR-into-account-649.patch | 33 +++++++++
 ...pts-CHANGE-use-su-only-for-effective-root.patch | 79 ++++++++++++++++++++++
 package/netopeer2/Config.in                        | 34 ++++++++++
 package/netopeer2/S52netopeer2                     | 50 ++++++++++++++
 package/netopeer2/netopeer2.hash                   |  3 +
 package/netopeer2/netopeer2.mk                     | 21 ++++++
 8 files changed, 222 insertions(+)

diff --git a/DEVELOPERS b/DEVELOPERS
index 043e8ce3f4..ad927c6bbe 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -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>
diff --git a/package/Config.in b/package/Config.in
index e6500123f6..3b0b57bc5b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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"
diff --git a/package/netopeer2/0001-build-BUGFIX-take-DESTDIR-into-account-649.patch b/package/netopeer2/0001-build-BUGFIX-take-DESTDIR-into-account-649.patch
new file mode 100644
index 0000000000..bff4337fe7
--- /dev/null
+++ b/package/netopeer2/0001-build-BUGFIX-take-DESTDIR-into-account-649.patch
@@ -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
+
diff --git a/package/netopeer2/0002-scripts-CHANGE-use-su-only-for-effective-root.patch b/package/netopeer2/0002-scripts-CHANGE-use-su-only-for-effective-root.patch
new file mode 100644
index 0000000000..b960a87beb
--- /dev/null
+++ b/package/netopeer2/0002-scripts-CHANGE-use-su-only-for-effective-root.patch
@@ -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
+
diff --git a/package/netopeer2/Config.in b/package/netopeer2/Config.in
new file mode 100644
index 0000000000..763b1f234b
--- /dev/null
+++ b/package/netopeer2/Config.in
@@ -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
diff --git a/package/netopeer2/S52netopeer2 b/package/netopeer2/S52netopeer2
new file mode 100644
index 0000000000..cf53a8f109
--- /dev/null
+++ b/package/netopeer2/S52netopeer2
@@ -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
diff --git a/package/netopeer2/netopeer2.hash b/package/netopeer2/netopeer2.hash
new file mode 100644
index 0000000000..93a094d563
--- /dev/null
+++ b/package/netopeer2/netopeer2.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  66f3ad68cc6e41f3231b090ef27016ccbfe007cda7d08ec19f409f7429f46ff9  netopeer2-1.1.34.tar.gz
+sha256  b46f161fbdcf127d3ef22602e15958c3092fe3294f71a2dc8cdf8f6689cba95b  LICENSE
diff --git a/package/netopeer2/netopeer2.mk b/package/netopeer2/netopeer2.mk
new file mode 100644
index 0000000000..641666e8d3
--- /dev/null
+++ b/package/netopeer2/netopeer2.mk
@@ -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))

                 reply	other threads:[~2020-07-24 21:27 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200724212239.99D528832E@busybox.osuosl.org \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.