diff mbox series

[v3,2/3] package/dns320l-daemon: new package

Message ID 20231006140511.3840643-3-enki@fsck.pl
State New
Headers show
Series Support for D-Link DNS-320L | expand

Commit Message

enki Oct. 6, 2023, 2:05 p.m. UTC
dns320l-daemon is a simple system management daemon for the D-Link DNS-320L
NAS. It handles power, Wake-on-LAN, temperature, fan speed and some LEDs.

Signed-off-by: Maciej Grela <enki@fsck.pl>
---
 package/Config.in                             |  1 +
 .../0001-listen-on-localhost.patch            | 21 ++++++++++
 package/dns320l-daemon/Config.in              |  8 ++++
 package/dns320l-daemon/S50dns320l-daemon      | 42 +++++++++++++++++++
 package/dns320l-daemon/dns320l-daemon.hash    |  1 +
 package/dns320l-daemon/dns320l-daemon.mk      | 32 ++++++++++++++
 6 files changed, 105 insertions(+)
 create mode 100644 package/dns320l-daemon/0001-listen-on-localhost.patch
 create mode 100644 package/dns320l-daemon/Config.in
 create mode 100644 package/dns320l-daemon/S50dns320l-daemon
 create mode 100644 package/dns320l-daemon/dns320l-daemon.hash
 create mode 100644 package/dns320l-daemon/dns320l-daemon.mk

Comments

Giulio Benetti Feb. 5, 2024, 11:47 a.m. UTC | #1
Hi Maciej,

On 06/10/23 16:05, Maciej Grela wrote:
> dns320l-daemon is a simple system management daemon for the D-Link DNS-320L
> NAS. It handles power, Wake-on-LAN, temperature, fan speed and some LEDs.
> 
> Signed-off-by: Maciej Grela <enki@fsck.pl>
> ---
>   package/Config.in                             |  1 +
>   .../0001-listen-on-localhost.patch            | 21 ++++++++++
>   package/dns320l-daemon/Config.in              |  8 ++++
>   package/dns320l-daemon/S50dns320l-daemon      | 42 +++++++++++++++++++
>   package/dns320l-daemon/dns320l-daemon.hash    |  1 +
>   package/dns320l-daemon/dns320l-daemon.mk      | 32 ++++++++++++++
>   6 files changed, 105 insertions(+)
>   create mode 100644 package/dns320l-daemon/0001-listen-on-localhost.patch
>   create mode 100644 package/dns320l-daemon/Config.in
>   create mode 100644 package/dns320l-daemon/S50dns320l-daemon
>   create mode 100644 package/dns320l-daemon/dns320l-daemon.hash
>   create mode 100644 package/dns320l-daemon/dns320l-daemon.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 228e9eb1e3..f1c451890f 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2684,6 +2684,7 @@ menu "System tools"
>   	source "package/dcron/Config.in"
>   	source "package/ddrescue/Config.in"
>   	source "package/debianutils/Config.in"
> +	source "package/dns320l-daemon/Config.in"
>   	source "package/docker-cli/Config.in"
>   	source "package/docker-compose/Config.in"
>   	source "package/docker-engine/Config.in"
> diff --git a/package/dns320l-daemon/0001-listen-on-localhost.patch b/package/dns320l-daemon/0001-listen-on-localhost.patch
> new file mode 100644
> index 0000000000..50da024024
> --- /dev/null
> +++ b/package/dns320l-daemon/0001-listen-on-localhost.patch
> @@ -0,0 +1,21 @@
> +# HG changeset patch
> +# User Maciej Grela <enki@fsck.pl>
> +# Date 1696540279 -7200
> +#      Thu Oct 05 23:11:19 2023 +0200
> +# Node ID eca5ed65582402e64c36145290c214aee84b012b
> +# Parent  1f945ce22321a876143b38aaf5610c8915172b90
> +Subject: [PATCH] Listen on localhost by default
> +Signed-off-by: Maciej Grela <enki@fsck.pl>
> +
> +diff -r 1f945ce22321 -r eca5ed655824 dns320l-daemon.ini
> +--- a/dns320l-daemon.ini        Tue Dec 09 12:24:29 2014 +0100
> ++++ b/dns320l-daemon.ini        Thu Oct 05 23:11:19 2023 +0200
> +@@ -4,7 +4,7 @@
> +
> + [Daemon]
> + ServerPort = 57367
> +-ServerAddr = 0.0.0.0
> ++ServerAddr = 127.0.0.1
> + SyncTimeOnStartup = 0
> + SyncTimeOnShutdown = 0
> + DeviceShutdownDelay = 30
> diff --git a/package/dns320l-daemon/Config.in b/package/dns320l-daemon/Config.in
> new file mode 100644
> index 0000000000..35bd30a9e5
> --- /dev/null
> +++ b/package/dns320l-daemon/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_DNS320L_DAEMON
> +	bool "dns320l-daemon"
> +	depends on BR2_USE_MMU # fork()
> +	select BR2_PACKAGE_INIPARSER
> +	help
> +	  MCU Daemon for the D-Link DNS-320L
> +
> +	  https://www.aboehler.at/hg/dns320l-daemon
> diff --git a/package/dns320l-daemon/S50dns320l-daemon b/package/dns320l-daemon/S50dns320l-daemon
> new file mode 100644
> index 0000000000..3bc2a60d0b
> --- /dev/null
> +++ b/package/dns320l-daemon/S50dns320l-daemon
> @@ -0,0 +1,42 @@
> +#!/bin/sh
> +
> +DAEMON="dns320l-daemon"
> +
> +start() {
> +	printf 'Starting %s: ' "$DAEMON"
> +	start-stop-daemon -S -x "/usr/bin/$DAEMON"
> +	status="$?"
> +	if [ "$status" -eq 0 ]; then
> +		echo "OK"
> +	else
> +		echo "FAIL"
> +	fi
> +	return "$status"
> +}
> +
> +stop() {
> +	printf 'Stopping %s: ' "$DAEMON"
> +	start-stop-daemon -s INT -K -x "/usr/bin/$DAEMON"
> +}
> +
> +poweroff() {
> +	printf 'Stopping %s: ' "$DAEMON"
> +	start-stop-daemon -s TERM -K -x "/usr/bin/$DAEMON"
> +}
> +
> +restart() {
> +	stop
> +	sleep 1
> +	start
> +}
> +
> +case "$1" in
> +	start|stop|restart)
> +		"$1";;
> +	reload)
> +		restart;;
> +	*)
> +		echo "Usage: $0 {start|stop|restart|poweroff}"
> +		exit 1
> +		;;
> +esac
> diff --git a/package/dns320l-daemon/dns320l-daemon.hash b/package/dns320l-daemon/dns320l-daemon.hash
> new file mode 100644
> index 0000000000..4396eb8f5d
> --- /dev/null
> +++ b/package/dns320l-daemon/dns320l-daemon.hash
> @@ -0,0 +1 @@
> +sha256  eac74a64f0d4127748e629b8a5f723eab58ac83064a3f249f97b85bcd7faf061  tip.tar.bz2
> diff --git a/package/dns320l-daemon/dns320l-daemon.mk b/package/dns320l-daemon/dns320l-daemon.mk
> new file mode 100644
> index 0000000000..bc24a553c2
> --- /dev/null
> +++ b/package/dns320l-daemon/dns320l-daemon.mk
> @@ -0,0 +1,32 @@
> +################################################################################
> +#
> +# dns320l-daemon
> +#
> +################################################################################
> +
> +DNS320L_DAEMON_VERSION = 1.0
> +DNS320L_DAEMON_SOURCE = tip.tar.bz2
> +DNS320L_DAEMON_SITE = https://www.aboehler.at/hg/dns320l-daemon/archive

URL has moved to:
https://gitlab.aboehler.at/andreas/dns320l-daemon

and there are no Releases or git tags, so can you use as VERSION the
latest git SHA1?

Thank you
Best regards
diff mbox series

Patch

diff --git a/package/Config.in b/package/Config.in
index 228e9eb1e3..f1c451890f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2684,6 +2684,7 @@  menu "System tools"
 	source "package/dcron/Config.in"
 	source "package/ddrescue/Config.in"
 	source "package/debianutils/Config.in"
+	source "package/dns320l-daemon/Config.in"
 	source "package/docker-cli/Config.in"
 	source "package/docker-compose/Config.in"
 	source "package/docker-engine/Config.in"
diff --git a/package/dns320l-daemon/0001-listen-on-localhost.patch b/package/dns320l-daemon/0001-listen-on-localhost.patch
new file mode 100644
index 0000000000..50da024024
--- /dev/null
+++ b/package/dns320l-daemon/0001-listen-on-localhost.patch
@@ -0,0 +1,21 @@ 
+# HG changeset patch
+# User Maciej Grela <enki@fsck.pl>
+# Date 1696540279 -7200
+#      Thu Oct 05 23:11:19 2023 +0200
+# Node ID eca5ed65582402e64c36145290c214aee84b012b
+# Parent  1f945ce22321a876143b38aaf5610c8915172b90
+Subject: [PATCH] Listen on localhost by default
+Signed-off-by: Maciej Grela <enki@fsck.pl>
+
+diff -r 1f945ce22321 -r eca5ed655824 dns320l-daemon.ini
+--- a/dns320l-daemon.ini        Tue Dec 09 12:24:29 2014 +0100
++++ b/dns320l-daemon.ini        Thu Oct 05 23:11:19 2023 +0200
+@@ -4,7 +4,7 @@
+ 
+ [Daemon]
+ ServerPort = 57367
+-ServerAddr = 0.0.0.0
++ServerAddr = 127.0.0.1
+ SyncTimeOnStartup = 0
+ SyncTimeOnShutdown = 0
+ DeviceShutdownDelay = 30
diff --git a/package/dns320l-daemon/Config.in b/package/dns320l-daemon/Config.in
new file mode 100644
index 0000000000..35bd30a9e5
--- /dev/null
+++ b/package/dns320l-daemon/Config.in
@@ -0,0 +1,8 @@ 
+config BR2_PACKAGE_DNS320L_DAEMON
+	bool "dns320l-daemon"
+	depends on BR2_USE_MMU # fork()
+	select BR2_PACKAGE_INIPARSER
+	help
+	  MCU Daemon for the D-Link DNS-320L
+
+	  https://www.aboehler.at/hg/dns320l-daemon
diff --git a/package/dns320l-daemon/S50dns320l-daemon b/package/dns320l-daemon/S50dns320l-daemon
new file mode 100644
index 0000000000..3bc2a60d0b
--- /dev/null
+++ b/package/dns320l-daemon/S50dns320l-daemon
@@ -0,0 +1,42 @@ 
+#!/bin/sh
+
+DAEMON="dns320l-daemon"
+
+start() {
+	printf 'Starting %s: ' "$DAEMON"
+	start-stop-daemon -S -x "/usr/bin/$DAEMON"
+	status="$?"
+	if [ "$status" -eq 0 ]; then
+		echo "OK"
+	else
+		echo "FAIL"
+	fi
+	return "$status"
+}
+
+stop() {
+	printf 'Stopping %s: ' "$DAEMON"
+	start-stop-daemon -s INT -K -x "/usr/bin/$DAEMON"
+}
+
+poweroff() {
+	printf 'Stopping %s: ' "$DAEMON"
+	start-stop-daemon -s TERM -K -x "/usr/bin/$DAEMON"
+}
+
+restart() {
+	stop
+	sleep 1
+	start
+}
+
+case "$1" in
+	start|stop|restart)
+		"$1";;
+	reload)
+		restart;;
+	*)
+		echo "Usage: $0 {start|stop|restart|poweroff}"
+		exit 1
+		;;
+esac
diff --git a/package/dns320l-daemon/dns320l-daemon.hash b/package/dns320l-daemon/dns320l-daemon.hash
new file mode 100644
index 0000000000..4396eb8f5d
--- /dev/null
+++ b/package/dns320l-daemon/dns320l-daemon.hash
@@ -0,0 +1 @@ 
+sha256  eac74a64f0d4127748e629b8a5f723eab58ac83064a3f249f97b85bcd7faf061  tip.tar.bz2
diff --git a/package/dns320l-daemon/dns320l-daemon.mk b/package/dns320l-daemon/dns320l-daemon.mk
new file mode 100644
index 0000000000..bc24a553c2
--- /dev/null
+++ b/package/dns320l-daemon/dns320l-daemon.mk
@@ -0,0 +1,32 @@ 
+################################################################################
+#
+# dns320l-daemon
+#
+################################################################################
+
+DNS320L_DAEMON_VERSION = 1.0
+DNS320L_DAEMON_SOURCE = tip.tar.bz2
+DNS320L_DAEMON_SITE = https://www.aboehler.at/hg/dns320l-daemon/archive
+DNS320L_DAEMON_LICENSE = GPL-3
+DNS320L_DAEMON_DEPENDENCIES = iniparser
+DNS320l_DAEMON_PATCH = 0001-listen-on-localhost.patch
+
+define DNS320L_DAEMON_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+		CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE"
+endef
+
+define DNS320L_DAEMON_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/dns320l-daemon $(TARGET_DIR)/usr/bin/
+	$(INSTALL) -D -m 0600 $(@D)/dns320l-daemon.ini $(TARGET_DIR)/etc/
+endef
+
+define DNS320L_DAEMON_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 0644 $(@D)/dns320l-daemon.service $(TARGET_DIR)/lib/systemd/system/
+endef
+
+define DNS320L_DAEMON_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 0755 package/dns320l-daemon/S50dns320l-daemon $(TARGET_DIR)/etc/init.d/S50dns320l-daemon
+endef
+
+$(eval $(generic-package))