From ef920ce4b4e3d3c122a4b4512d8ede17ed90b1f3 Mon Sep 17 00:00:00 2001 From: Stephen Early Date: Mon, 17 Oct 2016 17:18:00 +0100 Subject: [PATCH 1/6] Multiple device support using upstart or systemd Alters the Debian packaging rules to generate three separate binary packages: daliserver, daliserver-upstart and daliserver-systemd. The daliserver package is unchanged, i.e. it contains the debhelper-generated sysvinit startup script. The daliserver-upstart package has an upstart configuration file. This configuration file runs an instance of daliserver when a DALI USB device is plugged in, and stops it when the device is unplugged. A lookup table in /etc/default/daliserver-upstart enables daliserver options to be set based on the serial number of the device that is plugged in. The daliserver-systemd package has a systemd unit template file and a udev rule that runs an instance of daliserver when a DALI USB device is plugged in, and stops it when the device is unplugged. A lookup table in /etc/default/daliserver-systemd enables daliserver options to be set based on the serial number of the device that is plugged in. A helper script in /usr/lib/daliserver-systemd looks up the serial number, bus number and device number based on the systemd template instance name. --- .gitignore | 12 +++++++----- debian/control | 26 ++++++++++++++++++++++++++ debian/daliserver-systemd-start | 12 ++++++++++++ debian/daliserver-systemd.default | 12 ++++++++++++ debian/daliserver-systemd.install | 2 ++ debian/daliserver-systemd.postinst | 5 +++++ debian/daliserver-systemd.postrm | 5 +++++ debian/daliserver-systemd.udev | 1 + debian/daliserver-systemd@.service | 7 +++++++ debian/daliserver-upstart.default | 12 ++++++++++++ debian/daliserver-upstart.upstart | 23 +++++++++++++++++++++++ debian/rules | 9 +++++++++ 12 files changed, 121 insertions(+), 5 deletions(-) create mode 100755 debian/daliserver-systemd-start create mode 100644 debian/daliserver-systemd.default create mode 100644 debian/daliserver-systemd.install create mode 100644 debian/daliserver-systemd.postinst create mode 100644 debian/daliserver-systemd.postrm create mode 100644 debian/daliserver-systemd.udev create mode 100644 debian/daliserver-systemd@.service create mode 100644 debian/daliserver-upstart.default create mode 100644 debian/daliserver-upstart.upstart diff --git a/.gitignore b/.gitignore index 4518ef9..0709e1e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,13 +14,15 @@ /config.status /config.sub /configure -/debian/daliserver.debhelper.log -/debian/daliserver.postinst.debhelper -/debian/daliserver.postrm.debhelper -/debian/daliserver.prerm.debhelper -/debian/daliserver.substvars +/debian/.debhelper/ +/debian/*.debhelper.log +/debian/*.debhelper +/debian/*.substvars /debian/daliserver/ +/debian/daliserver-upstart/ +/debian/daliserver-systemd/ /debian/files +/debian/debhelper-build-stamp /debian/autoreconf.* /debian/.debhelper /depcomp diff --git a/debian/control b/debian/control index 583d4f0..0a69534 100644 --- a/debian/control +++ b/debian/control @@ -18,3 +18,29 @@ Description: Command multiplexing server for DALI lighting buses . Multiple clients can connect to the multiplexer to send commands to and receive responses from devices connected to the bus. + adapter is supported at a time by this package, and adapters cannot be + hotplugged. + +Package: daliserver-upstart +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libusb-1.0-0, upstart +Conflicts: daliserver, daliserver-systemd +Replaces: daliserver +Description: daliserver-upstart + daliserver is a command multiplexing server for the Tridonic DALI USB adapter, + allowing access to a DALI bus from any USB-equipped computer that supports + libusb. This package includes init scripts for upstart-based systems. + Multiple simultaneous DALI USB adapters are supported, and adapters can + be hotplugged. + +Package: daliserver-systemd +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, libusb-1.0-0, systemd +Conflicts: daliserver, daliserver-upstart +Replaces: daliserver +Description: daliserver + daliserver is a command multiplexing server for the Tridonic DALI USB adapter, + allowing access to a DALI bus from any USB-equipped computer that supports + libusb. This package includes init scripts for systemd-based systems. + Multiple simultaneous DALI USB adapters are supported, and adapters can + be hotplugged. diff --git a/debian/daliserver-systemd-start b/debian/daliserver-systemd-start new file mode 100755 index 0000000..3d4c064 --- /dev/null +++ b/debian/daliserver-systemd-start @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +DEVPATH=/"$(/bin/systemd-escape --unescape ${1})" +BUSNUM=$(cat ${DEVPATH}/busnum) +DEVNUM=$(cat ${DEVPATH}/devnum) +ID_SERIAL_SHORT=$(cat ${DEVPATH}/serial) + +source /etc/default/daliserver-systemd + +exec /usr/bin/daliserver $DALISERVER_OPTS -u $BUSNUM:$DEVNUM diff --git a/debian/daliserver-systemd.default b/debian/daliserver-systemd.default new file mode 100644 index 0000000..f2745a0 --- /dev/null +++ b/debian/daliserver-systemd.default @@ -0,0 +1,12 @@ +# Additional options for daliserver +# -n enables testing mode without USB connectivity +# -l sets the listening address (use 0.0.0.0 to listen on all interfaces) +# -p changes the port +# -f sets the log file name +DALISERVER_OPTS="-f /var/log/daliserver.log" + +# Options set based on serial number of DALI USB for -systemd package variant: +case "$ID_SERIAL_SHORT" in +# 000030A1) DALISERVER_OPTS="-p 55826 -f /var/log/daliserver-cellar.log" ;; +# 0000249A) DALISERVER_OPTS="-p 55827 -f /var/log/daliserver-groundfloor.log" ;; +esac diff --git a/debian/daliserver-systemd.install b/debian/daliserver-systemd.install new file mode 100644 index 0000000..289ee19 --- /dev/null +++ b/debian/daliserver-systemd.install @@ -0,0 +1,2 @@ +debian/daliserver-systemd@.service lib/systemd/system +debian/daliserver-systemd-start usr/lib/daliserver-systemd/ diff --git a/debian/daliserver-systemd.postinst b/debian/daliserver-systemd.postinst new file mode 100644 index 0000000..230725e --- /dev/null +++ b/debian/daliserver-systemd.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +set -e +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true +fi diff --git a/debian/daliserver-systemd.postrm b/debian/daliserver-systemd.postrm new file mode 100644 index 0000000..230725e --- /dev/null +++ b/debian/daliserver-systemd.postrm @@ -0,0 +1,5 @@ +#!/bin/sh +set -e +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true +fi diff --git a/debian/daliserver-systemd.udev b/debian/daliserver-systemd.udev new file mode 100644 index 0000000..75f4c62 --- /dev/null +++ b/debian/daliserver-systemd.udev @@ -0,0 +1 @@ +SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="17b5", ATTR{idProduct}=="0020", TAG+="systemd", PROGRAM="/bin/systemd-escape -p --template=daliserver-systemd@.service %S%p", ENV{SYSTEMD_WANTS}="%c" diff --git a/debian/daliserver-systemd@.service b/debian/daliserver-systemd@.service new file mode 100644 index 0000000..b2cfe13 --- /dev/null +++ b/debian/daliserver-systemd@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Command multiplexing server for Tridonic DALI USB on %i +BindsTo=%i.device +After=%i.device network.target + +[Service] +ExecStart=/usr/lib/daliserver-systemd/daliserver-systemd-start %i diff --git a/debian/daliserver-upstart.default b/debian/daliserver-upstart.default new file mode 100644 index 0000000..46e751d --- /dev/null +++ b/debian/daliserver-upstart.default @@ -0,0 +1,12 @@ +# Additional options for daliserver +# -n enables testing mode without USB connectivity +# -l sets the listening address (use 0.0.0.0 to listen on all interfaces) +# -p changes the port +# -f sets the log file name +DALISERVER_OPTS="-f /var/log/daliserver.log" + +# Options set based on serial number of DALI USB for -upstart package variant: +case "$ID_SERIAL_SHORT" in +# 000030A1) DALISERVER_OPTS="-p 55826 -f /var/log/daliserver-cellar.log" ;; +# 0000249A) DALISERVER_OPTS="-p 55827 -f /var/log/daliserver-groundfloor.log" ;; +esac diff --git a/debian/daliserver-upstart.upstart b/debian/daliserver-upstart.upstart new file mode 100644 index 0000000..85a0a48 --- /dev/null +++ b/debian/daliserver-upstart.upstart @@ -0,0 +1,23 @@ +# daliserver +# +# daliserver is a command multiplexing server for the Tridonic DALI +# USB adapter, allowing access to a DALI bus from any USB-equipped +# computer that supports libusb. + +description "Command multiplexing server for Tridonic DALI USB" +author "Gregor Riepl " + +start on usb-device-added ID_MODEL_ID='0020' ID_VENDOR_ID='17b5' +stop on usb-device-removed ID_MODEL_ID='0020' ID_VENDOR_ID='17b5' + +instance daliserver:$BUSNUM:$DEVNUM + +respawn + +# The device serial number is in ID_SERIAL_SHORT; this can be +# used in /etc/default/daliserver to set options per device. + +script + . /etc/default/daliserver-upstart + exec /usr/bin/daliserver $DALISERVER_OPTS -u $BUSNUM:$DEVNUM +end script diff --git a/debian/rules b/debian/rules index 63844c9..259a85e 100755 --- a/debian/rules +++ b/debian/rules @@ -4,3 +4,12 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --with autoreconf + +override_dh_auto_install: + dh_auto_install -p daliserver --destdir debian/daliserver + dh_auto_install -p daliserver-upstart --destdir debian/daliserver-upstart + dh_auto_install -p daliserver-systemd --destdir debian/daliserver-systemd + +override_dh_installinit: + dh_installinit -p daliserver + dh_installinit -p daliserver-upstart -p daliserver-systemd --no-start From b8d428d964347e07850f9cf8f6a168d96f52d36e Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Thu, 28 Mar 2024 08:38:11 +0100 Subject: [PATCH 2/6] Remove upstart and SysVinit scripts --- .gitignore | 2 -- debian/README.Debian | 6 +++++ debian/control | 24 ------------------- ...iserver-systemd-start => daliserver-start} | 2 +- debian/daliserver-systemd.default | 12 ---------- debian/daliserver-systemd.install | 2 -- debian/daliserver-systemd.postinst | 5 ---- debian/daliserver-systemd.postrm | 5 ---- debian/daliserver-upstart.default | 12 ---------- debian/daliserver-upstart.upstart | 23 ------------------ debian/daliserver.default | 8 ++++++- debian/daliserver.install | 2 ++ ...aliserver-systemd.udev => daliserver.udev} | 2 +- ...r-systemd@.service => daliserver@.service} | 2 +- debian/rules | 9 ------- 15 files changed, 18 insertions(+), 98 deletions(-) create mode 100644 debian/README.Debian rename debian/{daliserver-systemd-start => daliserver-start} (85%) delete mode 100644 debian/daliserver-systemd.default delete mode 100644 debian/daliserver-systemd.install delete mode 100644 debian/daliserver-systemd.postinst delete mode 100644 debian/daliserver-systemd.postrm delete mode 100644 debian/daliserver-upstart.default delete mode 100644 debian/daliserver-upstart.upstart create mode 100644 debian/daliserver.install rename debian/{daliserver-systemd.udev => daliserver.udev} (64%) rename debian/{daliserver-systemd@.service => daliserver@.service} (67%) diff --git a/.gitignore b/.gitignore index 0709e1e..712e508 100644 --- a/.gitignore +++ b/.gitignore @@ -19,8 +19,6 @@ /debian/*.debhelper /debian/*.substvars /debian/daliserver/ -/debian/daliserver-upstart/ -/debian/daliserver-systemd/ /debian/files /debian/debhelper-build-stamp /debian/autoreconf.* diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..8cadc01 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,6 @@ +# daliserver on Debian + +This package can run multiple daliserver instances through instanced systemd units. + +This is currently accomplished via a helper script and a configuration file in +/etc/default/daliserver. See there for more information. \ No newline at end of file diff --git a/debian/control b/debian/control index 0a69534..ac23896 100644 --- a/debian/control +++ b/debian/control @@ -20,27 +20,3 @@ Description: Command multiplexing server for DALI lighting buses receive responses from devices connected to the bus. adapter is supported at a time by this package, and adapters cannot be hotplugged. - -Package: daliserver-upstart -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libusb-1.0-0, upstart -Conflicts: daliserver, daliserver-systemd -Replaces: daliserver -Description: daliserver-upstart - daliserver is a command multiplexing server for the Tridonic DALI USB adapter, - allowing access to a DALI bus from any USB-equipped computer that supports - libusb. This package includes init scripts for upstart-based systems. - Multiple simultaneous DALI USB adapters are supported, and adapters can - be hotplugged. - -Package: daliserver-systemd -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libusb-1.0-0, systemd -Conflicts: daliserver, daliserver-upstart -Replaces: daliserver -Description: daliserver - daliserver is a command multiplexing server for the Tridonic DALI USB adapter, - allowing access to a DALI bus from any USB-equipped computer that supports - libusb. This package includes init scripts for systemd-based systems. - Multiple simultaneous DALI USB adapters are supported, and adapters can - be hotplugged. diff --git a/debian/daliserver-systemd-start b/debian/daliserver-start similarity index 85% rename from debian/daliserver-systemd-start rename to debian/daliserver-start index 3d4c064..06a3a32 100755 --- a/debian/daliserver-systemd-start +++ b/debian/daliserver-start @@ -7,6 +7,6 @@ BUSNUM=$(cat ${DEVPATH}/busnum) DEVNUM=$(cat ${DEVPATH}/devnum) ID_SERIAL_SHORT=$(cat ${DEVPATH}/serial) -source /etc/default/daliserver-systemd +source /etc/default/daliserver exec /usr/bin/daliserver $DALISERVER_OPTS -u $BUSNUM:$DEVNUM diff --git a/debian/daliserver-systemd.default b/debian/daliserver-systemd.default deleted file mode 100644 index f2745a0..0000000 --- a/debian/daliserver-systemd.default +++ /dev/null @@ -1,12 +0,0 @@ -# Additional options for daliserver -# -n enables testing mode without USB connectivity -# -l sets the listening address (use 0.0.0.0 to listen on all interfaces) -# -p changes the port -# -f sets the log file name -DALISERVER_OPTS="-f /var/log/daliserver.log" - -# Options set based on serial number of DALI USB for -systemd package variant: -case "$ID_SERIAL_SHORT" in -# 000030A1) DALISERVER_OPTS="-p 55826 -f /var/log/daliserver-cellar.log" ;; -# 0000249A) DALISERVER_OPTS="-p 55827 -f /var/log/daliserver-groundfloor.log" ;; -esac diff --git a/debian/daliserver-systemd.install b/debian/daliserver-systemd.install deleted file mode 100644 index 289ee19..0000000 --- a/debian/daliserver-systemd.install +++ /dev/null @@ -1,2 +0,0 @@ -debian/daliserver-systemd@.service lib/systemd/system -debian/daliserver-systemd-start usr/lib/daliserver-systemd/ diff --git a/debian/daliserver-systemd.postinst b/debian/daliserver-systemd.postinst deleted file mode 100644 index 230725e..0000000 --- a/debian/daliserver-systemd.postinst +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -set -e -if [ -d /run/systemd/system ]; then - systemctl --system daemon-reload >/dev/null || true -fi diff --git a/debian/daliserver-systemd.postrm b/debian/daliserver-systemd.postrm deleted file mode 100644 index 230725e..0000000 --- a/debian/daliserver-systemd.postrm +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -set -e -if [ -d /run/systemd/system ]; then - systemctl --system daemon-reload >/dev/null || true -fi diff --git a/debian/daliserver-upstart.default b/debian/daliserver-upstart.default deleted file mode 100644 index 46e751d..0000000 --- a/debian/daliserver-upstart.default +++ /dev/null @@ -1,12 +0,0 @@ -# Additional options for daliserver -# -n enables testing mode without USB connectivity -# -l sets the listening address (use 0.0.0.0 to listen on all interfaces) -# -p changes the port -# -f sets the log file name -DALISERVER_OPTS="-f /var/log/daliserver.log" - -# Options set based on serial number of DALI USB for -upstart package variant: -case "$ID_SERIAL_SHORT" in -# 000030A1) DALISERVER_OPTS="-p 55826 -f /var/log/daliserver-cellar.log" ;; -# 0000249A) DALISERVER_OPTS="-p 55827 -f /var/log/daliserver-groundfloor.log" ;; -esac diff --git a/debian/daliserver-upstart.upstart b/debian/daliserver-upstart.upstart deleted file mode 100644 index 85a0a48..0000000 --- a/debian/daliserver-upstart.upstart +++ /dev/null @@ -1,23 +0,0 @@ -# daliserver -# -# daliserver is a command multiplexing server for the Tridonic DALI -# USB adapter, allowing access to a DALI bus from any USB-equipped -# computer that supports libusb. - -description "Command multiplexing server for Tridonic DALI USB" -author "Gregor Riepl " - -start on usb-device-added ID_MODEL_ID='0020' ID_VENDOR_ID='17b5' -stop on usb-device-removed ID_MODEL_ID='0020' ID_VENDOR_ID='17b5' - -instance daliserver:$BUSNUM:$DEVNUM - -respawn - -# The device serial number is in ID_SERIAL_SHORT; this can be -# used in /etc/default/daliserver to set options per device. - -script - . /etc/default/daliserver-upstart - exec /usr/bin/daliserver $DALISERVER_OPTS -u $BUSNUM:$DEVNUM -end script diff --git a/debian/daliserver.default b/debian/daliserver.default index 19d2e2d..23c92f3 100644 --- a/debian/daliserver.default +++ b/debian/daliserver.default @@ -4,5 +4,11 @@ # -u only map to one specific USB port (will use the first found otherwise) # -l
sets the listening address (use 0.0.0.0 to listen on all interfaces, default=127.0.0.1) # -p changes the TCP port (default=55825) -DALISERVER_OPTS="" +# -f sets the log file name +DALISERVER_OPTS="-f /var/log/daliserver.log" +# Options set based on serial number of DALI USB for -systemd package variant: +case "$ID_SERIAL_SHORT" in +# 000030A1) DALISERVER_OPTS="-p 55826 -f /var/log/daliserver-cellar.log" ;; +# 0000249A) DALISERVER_OPTS="-p 55827 -f /var/log/daliserver-groundfloor.log" ;; +esac diff --git a/debian/daliserver.install b/debian/daliserver.install new file mode 100644 index 0000000..3ea8b66 --- /dev/null +++ b/debian/daliserver.install @@ -0,0 +1,2 @@ +debian/daliserver@.service lib/systemd/system +debian/daliserver-start usr/libexec/daliserver/ diff --git a/debian/daliserver-systemd.udev b/debian/daliserver.udev similarity index 64% rename from debian/daliserver-systemd.udev rename to debian/daliserver.udev index 75f4c62..e7c27ee 100644 --- a/debian/daliserver-systemd.udev +++ b/debian/daliserver.udev @@ -1 +1 @@ -SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="17b5", ATTR{idProduct}=="0020", TAG+="systemd", PROGRAM="/bin/systemd-escape -p --template=daliserver-systemd@.service %S%p", ENV{SYSTEMD_WANTS}="%c" +SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="17b5", ATTR{idProduct}=="0020", TAG+="systemd", PROGRAM="/bin/systemd-escape -p --template=daliserver@.service %S%p", ENV{SYSTEMD_WANTS}="%c" diff --git a/debian/daliserver-systemd@.service b/debian/daliserver@.service similarity index 67% rename from debian/daliserver-systemd@.service rename to debian/daliserver@.service index b2cfe13..80c002a 100644 --- a/debian/daliserver-systemd@.service +++ b/debian/daliserver@.service @@ -4,4 +4,4 @@ BindsTo=%i.device After=%i.device network.target [Service] -ExecStart=/usr/lib/daliserver-systemd/daliserver-systemd-start %i +ExecStart=/usr/libexec/daliserver/daliserver-start %i diff --git a/debian/rules b/debian/rules index 259a85e..63844c9 100755 --- a/debian/rules +++ b/debian/rules @@ -4,12 +4,3 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --with autoreconf - -override_dh_auto_install: - dh_auto_install -p daliserver --destdir debian/daliserver - dh_auto_install -p daliserver-upstart --destdir debian/daliserver-upstart - dh_auto_install -p daliserver-systemd --destdir debian/daliserver-systemd - -override_dh_installinit: - dh_installinit -p daliserver - dh_installinit -p daliserver-upstart -p daliserver-systemd --no-start From ff6eb08dd4e63b60266f4c8debd327199d9a9829 Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Thu, 28 Mar 2024 08:53:38 +0100 Subject: [PATCH 3/6] Update standards and fix some lintian warnings --- debian/changelog | 7 +++++++ debian/control | 8 +++----- debian/copyright | 10 +++++----- debian/daliserver.install | 1 - 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5d7c6c1..782a8a1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +daliserver (0.5) UNRELEASED; urgency=medium + + * Add multiple device support (systemd only) + Thanks to @sde1000 + + -- Gregor Riepl Thu, 28 Mar 2024 08:42:21 +0100 + daliserver (0.4) unstable; urgency=medium * Add systemd unit, SysV init script is kept for compatibility diff --git a/debian/control b/debian/control index ac23896..53f7e5b 100644 --- a/debian/control +++ b/debian/control @@ -2,16 +2,14 @@ Source: daliserver Section: net Priority: optional Maintainer: Gregor Riepl -Build-Depends: debhelper (>= 10), - autotools-dev, pkg-config, - libusb-1.0-0-dev -Standards-Version: 3.9.8 +Build-Depends: debhelper (>= 13), pkgconf, libusb-1.0-0-dev +Standards-Version: 4.6.2 Vcs-Git: https://github.com/onitake/daliserver.git Vcs-Browser: https://github.com/onitake/daliserver Package: daliserver Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base +Depends: ${shlibs:Depends}, ${misc:Depends} Description: Command multiplexing server for DALI lighting buses Exposes a DALI (Digital Addressable Lighting Interface) bus to the local machine by interfacing with the Tridonic DALI USB adapter. diff --git a/debian/copyright b/debian/copyright index 4be987c..ad3f360 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,28 +1,28 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Files: * -Copyright: 2010-2018, Gregor Riepl +Copyright: 2010-2024, Gregor Riepl Johannes Wüthrich philippstroehle Stephen Early Robert Niederreiter License: BSD-2-clause -Files: ./m4/ax_require_defined.m4 +Files: m4/ax_require_defined.m4 Copyright: 2014, Mike Frysinger License: FSFAP -Files: ./m4/ax_pthread.m4 +Files: m4/ax_pthread.m4 Copyright: 2008, Steven G. Johnson 2011, Daniel Richard G. License: GPL-3+ -Files: ./m4/ax_append_flag.m4 +Files: m4/ax_append_flag.m4 Copyright: 2008, Guido U. Draheim 2011, Maarten Bosmans License: GPL-3+ -Files: ./m4/ax_cflags_warn_all.m4 +Files: m4/ax_cflags_warn_all.m4 Copyright: 2008, Guido U. Draheim 2010, Rhys Ulerich License: GPL-3+ diff --git a/debian/daliserver.install b/debian/daliserver.install index 3ea8b66..6c6fd5a 100644 --- a/debian/daliserver.install +++ b/debian/daliserver.install @@ -1,2 +1 @@ -debian/daliserver@.service lib/systemd/system debian/daliserver-start usr/libexec/daliserver/ From 55e9bb171fbee87711276e10ea0948cc5efe4ca1 Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Wed, 3 Apr 2024 22:31:38 +0200 Subject: [PATCH 4/6] Add appstream metadata --- Makefile.am | 2 ++ com.github.onitake.daliserver.metainfo.xml | 27 ++++++++++++++++++++++ debian/control | 2 -- debian/copyright | 7 +++--- 4 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 com.github.onitake.daliserver.metainfo.xml diff --git a/Makefile.am b/Makefile.am index 7ba2513..7fe8340 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,6 @@ docdir = $(datadir)/doc/@PACKAGE@ doc_DATA = README +appstreamdir = $(datadir)/metainfo +appstream_DATA = com.github.onitake.daliserver.metainfo.xml ACLOCAL_AMFLAGS = -I m4 SUBDIRS = lib src test doc perl diff --git a/com.github.onitake.daliserver.metainfo.xml b/com.github.onitake.daliserver.metainfo.xml new file mode 100644 index 0000000..8857e2f --- /dev/null +++ b/com.github.onitake.daliserver.metainfo.xml @@ -0,0 +1,27 @@ + + + com.github.onitake.daliserver + https://github.com/onitake/daliserver + daliserver + Command multiplexing server for Tridonic DALI USB + FSFAP + BSD-2-Clause + +

+ daliserver exposes a DALI (Digital Addressable Lighting Interface) bus + to the local machine by interfacing with the Tridonic DALI USB adapter. +

+

+ Multiple clients can connect to the multiplexer to send commands to and + receive responses from devices connected to the bus. +

+
+ daliserver.service + + System + Electronics + + + usb:v17B5p0020d* + +
diff --git a/debian/control b/debian/control index 53f7e5b..525ff83 100644 --- a/debian/control +++ b/debian/control @@ -16,5 +16,3 @@ Description: Command multiplexing server for DALI lighting buses . Multiple clients can connect to the multiplexer to send commands to and receive responses from devices connected to the bus. - adapter is supported at a time by this package, and adapters cannot be - hotplugged. diff --git a/debian/copyright b/debian/copyright index ad3f360..eb24a8a 100644 --- a/debian/copyright +++ b/debian/copyright @@ -27,10 +27,11 @@ Copyright: 2008, Guido U. Draheim 2010, Rhys Ulerich License: GPL-3+ +Files: com.github.onitake.daliserver.metainfo.xml +Copyright: 2024, Gregor Riepl +License: FSFAP + License: BSD-2-clause - Copyright (c) 2010-2018, Gregor Riepl - All rights reserved. - . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . From e8cee7ceb4b0badfb30cdebedd84e844cc0034ac Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Wed, 3 Apr 2024 23:00:44 +0200 Subject: [PATCH 5/6] Remove redundant logger mem allocation and increase buffer --- debian/changelog | 2 ++ lib/log.c | 20 +++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index 782a8a1..5fa3eed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ daliserver (0.5) UNRELEASED; urgency=medium * Add multiple device support (systemd only) Thanks to @sde1000 + * Add appstream metadata + * Remove redundant memory allocation in logger -- Gregor Riepl Thu, 28 Mar 2024 08:42:21 +0100 diff --git a/lib/log.c b/lib/log.c index 2fdf379..a31a887 100644 --- a/lib/log.c +++ b/lib/log.c @@ -64,31 +64,31 @@ void log_vprintf(unsigned int level, const char *format, va_list args) { } else { out = stdout; } - char *datefmt = malloc(32); + char datefmt[40]; #ifdef HAVE_LOCALTIME_R struct tm nowtm; localtime_r(&now, &nowtm); - snprintf(datefmt, 32, "[%d-%02d-%02d %02d:%02d:%02d] ", nowtm.tm_year + 1900, nowtm.tm_mon + 1, nowtm.tm_mday, nowtm.tm_hour, nowtm.tm_min, nowtm.tm_sec); + snprintf(datefmt, sizeof(datefmt), "[%d-%02d-%02d %02d:%02d:%02d] ", nowtm.tm_year + 1900, nowtm.tm_mon + 1, nowtm.tm_mday, nowtm.tm_hour, nowtm.tm_min, nowtm.tm_sec); #else - snprintf(datefmt, 32, "[%ld] ", now); + snprintf(datefmt, sizeof(datefmt), "[%ld] ", now); #endif - char *prefixfmt = NULL; + const char *prefixfmt = NULL; switch (level) { case LOG_LEVEL_FATAL: - prefixfmt = strdup("!!FATAL!! "); + prefixfmt = "!!FATAL!! "; break; case LOG_LEVEL_ERROR: - prefixfmt = strdup("**ERROR** "); + prefixfmt = "**ERROR** "; break; case LOG_LEVEL_WARN: - prefixfmt = strdup("--WARNING-- "); + prefixfmt = "--WARNING-- "; break; case LOG_LEVEL_INFO: - prefixfmt = strdup("INFO "); + prefixfmt = "INFO "; break; case LOG_LEVEL_DEBUG: default: - prefixfmt = strdup(""); + prefixfmt = ""; break; } va_list fileargs; @@ -108,8 +108,6 @@ void log_vprintf(unsigned int level, const char *format, va_list args) { fflush(fp_logfile); va_end(fileargs); } - free(prefixfmt); - free(datefmt); } #ifdef HAVE_VSYSLOG if (level <= loglevel_syslog) { From 982c3535ab661af7ca8ffa0155055e7cbf237e0f Mon Sep 17 00:00:00 2001 From: Gregor Riepl Date: Wed, 3 Apr 2024 23:35:05 +0200 Subject: [PATCH 6/6] Disable default daliserver unit --- debian/daliserver.service | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/debian/daliserver.service b/debian/daliserver.service index 35e3bc7..e69de29 100644 --- a/debian/daliserver.service +++ b/debian/daliserver.service @@ -1,10 +0,0 @@ -[Unit] -Description=DALI USB adapter multiplexer - -[Service] -# see the defaults file for useful options -EnvironmentFile=-/etc/default/daliserver -ExecStart=/usr/bin/daliserver $DALISERVER_OPTS - -[Install] -WantedBy=multi-user.target