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

Giulio Benetti giulio.benetti at benettiengineering.com
Mon Feb 5 11:47:20 UTC 2024


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 at 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 at 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 at 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
-- 
Giulio Benetti
CEO&CTO at Benetti Engineering sas

> +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))





More information about the buildroot mailing list