From cc17ed7fa466e53ea6c29f49608f381807d2ce52 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 22 Apr 2026 12:20:01 +0300 Subject: [PATCH] upmpdcli: update to 1.9.17 Changes since 1.8.11: - 1.8.16: Enhanced Tidal/Subsonic modules; improved Recoll 1.40 compatibility - 1.8.17: Resolved Qobuz plugin incompatibilities on modern distributions - 1.8.18: Fix many issues with the thoroughly broken Qobuz plugin - 1.9.0: Restructured Qobuz plugin; improved search; fixed custom icon support - 1.9.1: Subsonic and Tidal module enhancements - 1.9.2: Resolved Qobuz login issues with OpenHome credentials service - 1.9.5: Repaired broken Qobuz plugin; fixed gcc 15 compilation crash - 1.9.6: Fixed media server crash with malformed proxy URLs - 1.9.7: Fixed streaming URL handling with colon characters - 1.9.11: Vastly improved Qobuz search; uprcl property operators and indexing - 1.9.12: Accelerated uprcl initialization via stored Recoll data - 1.9.13: Improved OpenHome source switching; major Subsonic plugin overhaul - 1.9.14: Custom HTTP headers support for plugins; fixed rare proxy deadlock - 1.9.15: Enhanced Linn Kinsky compatibility; improved radio metadata handling - 1.9.17: Restored Qobuz connectivity via new OAuth method Signed-off-by: Alexandru Ardelean --- sound/upmpdcli/Makefile | 4 ++-- sound/upmpdcli/test.sh | 46 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 sound/upmpdcli/test.sh diff --git a/sound/upmpdcli/Makefile b/sound/upmpdcli/Makefile index 67677095bf..11a117d76c 100644 --- a/sound/upmpdcli/Makefile +++ b/sound/upmpdcli/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=upmpdcli -PKG_VERSION:=1.8.11 +PKG_VERSION:=1.9.17 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads -PKG_HASH:=d715120b869382ea701f07baa604c77b7895537e0655e1ed4dfa68d986d6a59f +PKG_HASH:=5eb9ba2f4d2790e302fc1788509789804bb866161e4d9ae05e13bc6f75fc4e1f PKG_MAINTAINER:=Alexandru Ardelean PKG_LICENSE:=LGPL-2.1-or-later diff --git a/sound/upmpdcli/test.sh b/sound/upmpdcli/test.sh new file mode 100644 index 0000000000..34dbfe4060 --- /dev/null +++ b/sound/upmpdcli/test.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +case "$1" in +upmpdcli) + # Version check: upmpdcli prints version to stderr on bad args, or to + # stdout with --version; try both. + ver_out=$(upmpdcli --version 2>&1 || upmpdcli -v 2>&1 || true) + echo "$ver_out" | grep -qF "$2" || { + # Some builds print only the short semver, not the full string; + # check for the major.minor part at minimum. + major_minor=$(echo "$2" | cut -d. -f1-2) + echo "$ver_out" | grep -qF "$major_minor" || { + echo "FAIL: version '$2' not found in: $ver_out" + exit 1 + } + } + echo "Version check passed" + + # Binary must be executable + [ -x /usr/bin/upmpdcli ] || { echo "FAIL: /usr/bin/upmpdcli not executable"; exit 1; } + + # Shared data files: OHCredentials and radio list MUST be present + [ -d /usr/share/upmpdcli ] || { echo "FAIL: /usr/share/upmpdcli missing"; exit 1; } + + # Config template must have been installed + [ -f /etc/upmpdcli.conf ] || { echo "FAIL: /etc/upmpdcli.conf missing"; exit 1; } + + # The config file must mention key directives that users typically + # customise; catch packaging regressions that ship a truncated config. + grep -q "friendlyname" /etc/upmpdcli.conf || \ + { echo "FAIL: 'friendlyname' missing from config"; exit 1; } + grep -q "mpdhost" /etc/upmpdcli.conf || \ + { echo "FAIL: 'mpdhost' missing from config"; exit 1; } + + # Attempt a dry-run: upmpdcli will fail to connect to MPD (none + # running) but must exit with a recognisable error, not a crash/signal. + # We rely on the fact that it prints something before exiting. + tmplog=$(mktemp /tmp/upmpdcli-test.XXXXXX) + timeout 3 upmpdcli -c /etc/upmpdcli.conf >"$tmplog" 2>&1 || true + # Must have produced some output (startup log or error) + [ -s "$tmplog" ] || { echo "FAIL: upmpdcli produced no output"; rm -f "$tmplog"; exit 1; } + echo "Startup output (first 5 lines):" + head -5 "$tmplog" + rm -f "$tmplog" + ;; +esac