diff --git a/sound/mpd/Makefile b/sound/mpd/Makefile index d70d501737..45abd2a6be 100644 --- a/sound/mpd/Makefile +++ b/sound/mpd/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mpd -PKG_VERSION:=0.23.16 -PKG_RELEASE:=2 +PKG_VERSION:=0.23.17 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://www.musicpd.org/download/mpd/0.23 -PKG_HASH:=9668e36df80de485683c962d02845bf314d8a08e6141af7afeff76401e32b2c1 +PKG_HASH:=a86f4fe811695743b08db82a9f1a840b8918bb4f46b06f48aa1d8d1b5386dff2 PKG_MAINTAINER:=Alexandru Ardelean PKG_LICENSE:=GPL-2.0-or-later diff --git a/sound/mpd/files/mpd.init b/sound/mpd/files/mpd.init index f89049d6cc..93bffd1e5f 100644 --- a/sound/mpd/files/mpd.init +++ b/sound/mpd/files/mpd.init @@ -18,7 +18,8 @@ start_service() { local pld lport #create mpd directories from config - pld=$(grep ^playlist_directory "$CONFIGFILE" | cut -d "\"" -f 2 | sed "s/~/\/root/g") + pld=$(grep ^playlist_directory "$CONFIGFILE" | head -1 | cut -d '"' -f 2 | sed "s/~/\/root/g") + [ -z "$pld" ] && pld="/tmp/mpd" if [ ! -d "$pld" ]; then mkdir -m 0755 -p "$pld" chown $USER:$GROUP $pld diff --git a/sound/mpd/patches/020-string-view.patch b/sound/mpd/patches/020-string-view.patch deleted file mode 100644 index 75ad50efbb..0000000000 --- a/sound/mpd/patches/020-string-view.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/src/tag/GenParseName.cxx -+++ b/src/tag/GenParseName.cxx -@@ -21,7 +21,13 @@ - - #include - #include -+#if __has_include("") - #include -+using std::string_view; -+#else -+#include -+using boost::string_view; -+#endif - - #include - -@@ -41,7 +47,7 @@ main(int argc, char **argv) - - FILE *out = fopen(argv[1], "w"); - -- std::map names; -+ std::map names; - for (unsigned i = 0; i < unsigned(TAG_NUM_OF_ITEM_TYPES); ++i) - names[tag_item_names[i]] = TagType(i); - diff --git a/sound/mpd/test.sh b/sound/mpd/test.sh new file mode 100644 index 0000000000..4e0c413362 --- /dev/null +++ b/sound/mpd/test.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +_mpd_test() { + # Version check + mpd --version | grep -F "$2" + + # Confirm the binary reports at least one supported output plugin; + # "null" is always compiled in and safe for testing. + mpd --version | grep -i "null" + + # Test playlist_directory parsing logic from the init script: + # explicit value + _cfg=/tmp/mpd-pldtest.conf + printf 'playlist_directory "/tmp/mpd-pld-explicit"\n' > "$_cfg" + _pld=$(grep ^playlist_directory "$_cfg" | head -1 | cut -d '"' -f 2 | sed "s/~/\/root/g") + [ -z "$_pld" ] && _pld="/tmp/mpd" + [ "$_pld" = "/tmp/mpd-pld-explicit" ] || { + echo "FAIL: pld='$_pld', expected /tmp/mpd-pld-explicit" + rm -f "$_cfg"; exit 1 + } + + # Test default fallback when playlist_directory is absent + printf '# playlist_directory commented out\n' > "$_cfg" + _pld=$(grep ^playlist_directory "$_cfg" | head -1 | cut -d '"' -f 2 | sed "s/~/\/root/g") + [ -z "$_pld" ] && _pld="/tmp/mpd" + [ "$_pld" = "/tmp/mpd" ] || { + echo "FAIL: pld='$_pld', expected /tmp/mpd default" + rm -f "$_cfg"; exit 1 + } + rm -f "$_cfg" + + # Set playlist_directory in the installed config so the init script + # has a valid path to create on first service start. + grep -q ^playlist_directory /etc/mpd.conf || \ + printf '\nplaylist_directory "/tmp/mpd"\n' >> /etc/mpd.conf +} + +case "$1" in +mpd-full|mpd-mini) + _mpd_test "$@" + ;; +esac