From abced56e32038fe6f66641d7a817ca62d5db1329 Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Tue, 27 Oct 2026 16:12:27 +0100 Subject: [PATCH 1/3] fix: refresh apt package lists before installing dependencies The installer failed with "Unable to locate package libportaudio2" on systems whose package lists were empty or stale. --- scripts/systemd/install-systemd.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/systemd/install-systemd.sh b/scripts/systemd/install-systemd.sh index 8c37b79..1221cad 100755 --- a/scripts/systemd/install-systemd.sh +++ b/scripts/systemd/install-systemd.sh @@ -86,6 +86,9 @@ install_package() { esac if prompt_yn "Install now? ($CMD)"; then + if [ "$PKG_MGR" = "apt-get" ]; then + apt-get update || true + fi $CMD || { echo -e "${R}Failed${N}"; return 1; } return 0 else From 243ca84621d6163b9ac8f3d2d7680e2b11d84477 Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Tue, 27 Oct 2026 16:12:29 +0100 Subject: [PATCH 2/3] fix: install sendspin with Python 3.13 in the systemd installer On Debian 12 based systems, uv picked its newest Python, which has no prebuilt orjson for that glibc, and the install failed building it. --- scripts/systemd/install-systemd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/systemd/install-systemd.sh b/scripts/systemd/install-systemd.sh index 1221cad..cd8a1da 100755 --- a/scripts/systemd/install-systemd.sh +++ b/scripts/systemd/install-systemd.sh @@ -202,7 +202,7 @@ if sudo -u "$DAEMON_USER" bash -l -c "uv tool list" 2>/dev/null | grep -q "^send sudo -u "$DAEMON_USER" bash -l -c "uv tool upgrade sendspin" || { echo -e "${R}Failed${N}"; exit 1; } echo -e " ${C}Release notes:${N} https://github.com/Sendspin/sendspin-cli/releases" else - sudo -u "$DAEMON_USER" bash -l -c "uv tool install sendspin" || { echo -e "${R}Failed${N}"; exit 1; } + sudo -u "$DAEMON_USER" bash -l -c "uv tool install --python 3.13 sendspin" || { echo -e "${R}Failed${N}"; exit 1; } fi # Grab the proper bin path from uv (in case it's non-standard) From 3fe56d620ac349803724dd9edb06a9131d6feeb0 Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Mon, 12 Oct 2026 07:24:43 +0200 Subject: [PATCH 3/3] fix: stop asking for a client ID in the systemd installer --- scripts/systemd/install-systemd.sh | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/scripts/systemd/install-systemd.sh b/scripts/systemd/install-systemd.sh index cd8a1da..35b7dda 100755 --- a/scripts/systemd/install-systemd.sh +++ b/scripts/systemd/install-systemd.sh @@ -208,14 +208,6 @@ fi # Grab the proper bin path from uv (in case it's non-standard) SENDSPIN_BIN="$(sudo -u "$DAEMON_USER" bash -l -c "uv tool dir --bin")/sendspin" -# Function to generate client_id from name (convert to snake-case) -# e.g., "Kitchen Music Player" -> "kitchen-music-player" -generate_client_id() { - local name="$1" - # Convert to lowercase, replace spaces/special chars with hyphens, remove consecutive hyphens - echo "$name" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]\+/-/g' | sed 's/^-\+\|-\+$//g' -} - # Paths for current JSON config CONFIG_DIR="$DAEMON_HOME/.config/sendspin" CONFIG_FILE="$CONFIG_DIR/settings-daemon.json" @@ -230,8 +222,6 @@ else # No existing config — prompt and create one echo -e "\n${C}Configuration${N}" NAME=$(prompt_input "Client friendly name (shown in the UI)" "$(hostname)") - DEFAULT_CLIENT_ID="$(generate_client_id "$NAME")" - CLIENT_ID=$(prompt_input "Client ID (used in settings and scripts)" "$DEFAULT_CLIENT_ID") echo -e "\n${C}Audio Devices${N}" # List audio devices - try to detect session environment for accuracy @@ -258,15 +248,13 @@ else sudo -u "$DAEMON_USER" tee "$CONFIG_FILE" > /dev/null << EOF { "name": "$NAME", - "client_id": "$CLIENT_ID", "audio_device": "$DEVICE" } EOF else sudo -u "$DAEMON_USER" tee "$CONFIG_FILE" > /dev/null << EOF { - "name": "$NAME", - "client_id": "$CLIENT_ID" + "name": "$NAME" } EOF fi