diff --git a/packages/secubox-meshtastic/debian/changelog b/packages/secubox-meshtastic/debian/changelog index d51b480b..03e3abe3 100644 --- a/packages/secubox-meshtastic/debian/changelog +++ b/packages/secubox-meshtastic/debian/changelog @@ -1,3 +1,12 @@ +secubox-meshtastic (0.1.3-1~bookworm1) bookworm; urgency=medium + + * Daemon survives a restart with a stale socket: uvicorn/uvloop refuses to + rebind an existing UDS ("Address already in use"), causing a crash-loop on + restart. Add ExecStartPre=+/bin/rm -f the socket (runs as root, clears it + regardless of owner in the sticky /run/secubox) before ExecStart. + + -- Gerald KERMA Tue, 22 Jul 2026 14:00:00 +0200 + secubox-meshtastic (0.1.2-1~bookworm1) bookworm; urgency=high * SECURITY/regression fix: the postinst used `install -d -o root -g root` on diff --git a/packages/secubox-meshtastic/debian/secubox-meshtasticd.service b/packages/secubox-meshtastic/debian/secubox-meshtasticd.service index cf1c7c22..7263ccea 100644 --- a/packages/secubox-meshtastic/debian/secubox-meshtasticd.service +++ b/packages/secubox-meshtastic/debian/secubox-meshtasticd.service @@ -19,6 +19,10 @@ Group=secubox-meshtastic # others rely on the cgroup device controller). SupplementaryGroups=dialout WorkingDirectory=/usr/lib/secubox/meshtastic +# Clear a stale socket from an unclean prior stop — uvicorn/uvloop refuses to +# rebind an existing UDS ("Address already in use"). "+" runs as root so it +# works regardless of the stale socket's owner in the sticky shared dir. +ExecStartPre=+/bin/rm -f /run/secubox/meshtastic.sock ExecStart=/usr/sbin/secubox-meshtasticd Restart=on-failure RestartSec=5 diff --git a/packages/secubox-meshtastic/systemd/secubox-meshtasticd.service b/packages/secubox-meshtastic/systemd/secubox-meshtasticd.service index cf1c7c22..7263ccea 100644 --- a/packages/secubox-meshtastic/systemd/secubox-meshtasticd.service +++ b/packages/secubox-meshtastic/systemd/secubox-meshtasticd.service @@ -19,6 +19,10 @@ Group=secubox-meshtastic # others rely on the cgroup device controller). SupplementaryGroups=dialout WorkingDirectory=/usr/lib/secubox/meshtastic +# Clear a stale socket from an unclean prior stop — uvicorn/uvloop refuses to +# rebind an existing UDS ("Address already in use"). "+" runs as root so it +# works regardless of the stale socket's owner in the sticky shared dir. +ExecStartPre=+/bin/rm -f /run/secubox/meshtastic.sock ExecStart=/usr/sbin/secubox-meshtasticd Restart=on-failure RestartSec=5