pkgsrc/audio/musicpd/Makefile

128 lines
3.4 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.208 2020/02/18 13:21:38 nia Exp $
DISTNAME= mpd-0.21.20
PKGNAME= ${DISTNAME:S/mpd/musicpd/}
CATEGORIES= audio
MASTER_SITES= https://www.musicpd.org/download/mpd/0.21/
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.musicpd.org/
COMMENT= Remote controllable audio player
LICENSE= gnu-gpl-v2
CONFLICTS= mpd-[0-9]*
musicpd: update to 0.21.3. ver 0.21.3 (2018/11/16) * output - alsa: fix crash bug - alsa: fix stuttering at start of playback - alsa: fix discarded samples at end of song - alsa: clear error after reopening device * log: default to journal if MPD was started as systemd service ver 0.21.2 (2018/11/12) * protocol - operator "=~" matches a regular expression - operator "contains" matches substrings * decoder - ffmpeg: require FFmpeg 3.1 or later - ffmpeg: fix broken sound with certain codecs * output - alsa: fix high CPU usage with dmix - httpd: fix three crash bugs * mixer - alsa: fix more rounding errors * fix zlib support ver 0.21.1 (2018/11/04) * protocol - allow escaping quotes in filter expressions - operator "==" never searches substrings in filter expressions * decoder - ffmpeg: fix build failure with non-standard FFmpeg installation path - flac: fix linker failure when building without FLAC support * encoder - vorbis: fix linker failure when building without Vorbis decoder * fix build failure on Linux-PowerPC * fix build failure on FreeBSD * eliminate DLL dependencies on Windows * add warning about buggy Boost version 1.67 * require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build ver 0.21 (2018/10/31) * configuration - add "include" directive, allows including config files - incremental "metadata_to_use" setting * protocol - "tagtypes" can be used to hide tags - "find" and "search" can sort - "outputs" prints the plugin name - "outputset" sets runtime attributes - close connection when client sends HTTP request - new filter syntax for "find"/"search" etc. with negation * database - simple: scan audio formats - proxy: require libmpdclient 2.9 - proxy: forward `sort` and `window` to server * player - hard-code "buffer_before_play" to 1 second, independent of audio format - "one-shot" single mode * input - curl: download to buffer instead of throttling transfer - qobuz: new plugin to play Qobuz streams - tidal: new plugin to play Tidal streams * tags - new tags "OriginalDate", "MUSICBRAINZ_WORKID" * decoder - ffmpeg: require at least version 11.12 - gme: try loading m3u sidecar files - hybrid_dsd: new decoder plugin - mad: move "gapless_mp3_playback" setting to "decoder" block - mikmod: require at least version 3.2 - pcm: support audio/L24 (RFC 3190) - sidplay: support basic and kernal rom (libsidplayfp) * resampler - soxr: flush resampler at end of song * output - alsa: non-blocking mode - alsa: change "dop" and "allowed_formats" settings at runtime - ao: fix crash bug due to partial frames - shout: support the Shine encoder plugin - sndio: remove support for the broken RoarAudio sndio emulation - osx: initial support for DSD over PCM - roar: removed - httpd_output: support for unix sockets * mixer - sndio: new mixer plugin * encoder - opus: support for sending metadata using ogg stream chaining * listen on $XDG_RUNTIME_DIR/mpd/socket by default * append hostname to Zeroconf service name * systemd watchdog support * require GCC 6 * build with Meson instead of autotools * use GTest instead of cppunit ver 0.20.23 (2018/10/29) * protocol - emit "player" idle event when restarting the current song * fix broken float to s32 conversion * new clang crash bug workaround ver 0.20.22 (2018/10/23) * protocol - add tag fallbacks for AlbumArtistSort, ArtistSort - fix empty string filter on fallback tags - "count group ..." can print an empty group - fix broken command "list ... group" * storage - curl: URL-encode paths * decoder - fluidsynth: adapt to API change in version 2.0 * Android - now runs as a service - add button to start/stop MPD - add option to auto-start on boot * work around clang bug leading to crash * install the SVG icon
2018-12-11 11:37:20 +01:00
USE_TOOLS+= pkg-config
USE_LANGUAGES= c99 c++14
# c++14
GCC_REQD+= 6
MESON_ARGS+= -Ddocumentation=true
# worrying libraries with limited maintainance:
# - audiofile, many CVEs, no activity since 2016
# using sndfile instead
# - mad, no release since 2004
# using mpg123 instead
MESON_ARGS+= -Dmad=disabled
MESON_ARGS+= -Daudiofile=disabled
# not available in pkgsrc?
MESON_ARGS+= -Dnfs=disabled
MESON_ARGS+= -Diso9660=disabled
MESON_ARGS+= -Dsndio=disabled
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS"
MESON_ARGS+= -Dsolaris_output=enabled
.endif
MPD_USER?= mpd
MPD_GROUP?= mpd
PKG_GROUPS= ${MPD_GROUP}
PKG_USERS= ${MPD_USER}:${MPD_GROUP}
PKG_GROUPS_VARS= MPD_USER
PKG_USERS_VARS= MPD_GROUP
.include "../../mk/oss.buildlink3.mk"
2012-01-11 20:51:26 +01:00
.if ${OSS_TYPE} == "none"
MESON_ARGS+= -Doss=disabled
.else
MESON_ARGS+= -Doss=enabled
LDFLAGS+= ${LIBOSSAUDIO}
SUBST_CLASSES+= oss
SUBST_STAGE.oss= pre-configure
SUBST_MESSAGE.oss= Correcting the path to the OSS device.
SUBST_FILES.oss+= src/output/plugins/OssOutputPlugin.cxx
SUBST_SED.oss+= -e "s,/dev/sound/dsp,${DEVOSSAUDIO},g"
.endif
EGDIR= ${PREFIX}/share/examples/mpd
CONF_FILES= ${EGDIR}/mpd.conf ${PKG_SYSCONFDIR}/mpd.conf
RCD_SCRIPTS= mpd
FILES_SUBST+= MPD_USER=${MPD_USER:Q}
FILES_SUBST+= MPD_GROUP=${MPD_GROUP:Q}
FILES_SUBST+= VARBASE=${VARBASE}
BUILD_DEFS+= VARBASE
OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd \
${MPD_USER} ${MPD_GROUP} 0755
OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/music \
${MPD_USER} ${MPD_GROUP} 0755
OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/playlists \
${MPD_USER} ${MPD_GROUP} 0755
CPPFLAGS.SunOS+= -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
.include "options.mk"
SUBST_CLASSES+= conf
SUBST_STAGE.conf= pre-configure
SUBST_FILES.conf= ${WRKSRC}/mpd.conf
SUBST_MESSAGE.conf= Setting variables in the configuration file.
SUBST_VARS.conf+= VARBASE
SUBST_VARS.conf+= MPD_USER
musicpd: update to 0.21.3. ver 0.21.3 (2018/11/16) * output - alsa: fix crash bug - alsa: fix stuttering at start of playback - alsa: fix discarded samples at end of song - alsa: clear error after reopening device * log: default to journal if MPD was started as systemd service ver 0.21.2 (2018/11/12) * protocol - operator "=~" matches a regular expression - operator "contains" matches substrings * decoder - ffmpeg: require FFmpeg 3.1 or later - ffmpeg: fix broken sound with certain codecs * output - alsa: fix high CPU usage with dmix - httpd: fix three crash bugs * mixer - alsa: fix more rounding errors * fix zlib support ver 0.21.1 (2018/11/04) * protocol - allow escaping quotes in filter expressions - operator "==" never searches substrings in filter expressions * decoder - ffmpeg: fix build failure with non-standard FFmpeg installation path - flac: fix linker failure when building without FLAC support * encoder - vorbis: fix linker failure when building without Vorbis decoder * fix build failure on Linux-PowerPC * fix build failure on FreeBSD * eliminate DLL dependencies on Windows * add warning about buggy Boost version 1.67 * require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build ver 0.21 (2018/10/31) * configuration - add "include" directive, allows including config files - incremental "metadata_to_use" setting * protocol - "tagtypes" can be used to hide tags - "find" and "search" can sort - "outputs" prints the plugin name - "outputset" sets runtime attributes - close connection when client sends HTTP request - new filter syntax for "find"/"search" etc. with negation * database - simple: scan audio formats - proxy: require libmpdclient 2.9 - proxy: forward `sort` and `window` to server * player - hard-code "buffer_before_play" to 1 second, independent of audio format - "one-shot" single mode * input - curl: download to buffer instead of throttling transfer - qobuz: new plugin to play Qobuz streams - tidal: new plugin to play Tidal streams * tags - new tags "OriginalDate", "MUSICBRAINZ_WORKID" * decoder - ffmpeg: require at least version 11.12 - gme: try loading m3u sidecar files - hybrid_dsd: new decoder plugin - mad: move "gapless_mp3_playback" setting to "decoder" block - mikmod: require at least version 3.2 - pcm: support audio/L24 (RFC 3190) - sidplay: support basic and kernal rom (libsidplayfp) * resampler - soxr: flush resampler at end of song * output - alsa: non-blocking mode - alsa: change "dop" and "allowed_formats" settings at runtime - ao: fix crash bug due to partial frames - shout: support the Shine encoder plugin - sndio: remove support for the broken RoarAudio sndio emulation - osx: initial support for DSD over PCM - roar: removed - httpd_output: support for unix sockets * mixer - sndio: new mixer plugin * encoder - opus: support for sending metadata using ogg stream chaining * listen on $XDG_RUNTIME_DIR/mpd/socket by default * append hostname to Zeroconf service name * systemd watchdog support * require GCC 6 * build with Meson instead of autotools * use GTest instead of cppunit ver 0.20.23 (2018/10/29) * protocol - emit "player" idle event when restarting the current song * fix broken float to s32 conversion * new clang crash bug workaround ver 0.20.22 (2018/10/23) * protocol - add tag fallbacks for AlbumArtistSort, ArtistSort - fix empty string filter on fallback tags - "count group ..." can print an empty group - fix broken command "list ... group" * storage - curl: URL-encode paths * decoder - fluidsynth: adapt to API change in version 2.0 * Android - now runs as a service - add button to start/stop MPD - add option to auto-start on boot * work around clang bug leading to crash * install the SVG icon
2018-12-11 11:37:20 +01:00
SUBST_CLASSES+= sphinx
SUBST_STAGE.sphinx= pre-configure
SUBST_FILES.sphinx= doc/meson.build
SUBST_MESSAGE.sphinx= Fixing sphinx binary name.
SUBST_SED.sphinx+= -e "s,sphinx-build,sphinx-build-${PYVERSSUFFIX},"
INSTALLATION_DIRS= ${EGDIR}
PYTHON_FOR_BUILD_ONLY= tool
PYTHON_VERSIONED_DEPENDENCIES= sphinx:tool
post-extract:
${CP} ${FILESDIR}/mpd.conf ${WRKSRC}/mpd.conf
post-install:
${INSTALL_DATA} ${WRKSRC}/mpd.conf ${DESTDIR}${EGDIR}
musicpd: update to 0.21.3. ver 0.21.3 (2018/11/16) * output - alsa: fix crash bug - alsa: fix stuttering at start of playback - alsa: fix discarded samples at end of song - alsa: clear error after reopening device * log: default to journal if MPD was started as systemd service ver 0.21.2 (2018/11/12) * protocol - operator "=~" matches a regular expression - operator "contains" matches substrings * decoder - ffmpeg: require FFmpeg 3.1 or later - ffmpeg: fix broken sound with certain codecs * output - alsa: fix high CPU usage with dmix - httpd: fix three crash bugs * mixer - alsa: fix more rounding errors * fix zlib support ver 0.21.1 (2018/11/04) * protocol - allow escaping quotes in filter expressions - operator "==" never searches substrings in filter expressions * decoder - ffmpeg: fix build failure with non-standard FFmpeg installation path - flac: fix linker failure when building without FLAC support * encoder - vorbis: fix linker failure when building without Vorbis decoder * fix build failure on Linux-PowerPC * fix build failure on FreeBSD * eliminate DLL dependencies on Windows * add warning about buggy Boost version 1.67 * require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build ver 0.21 (2018/10/31) * configuration - add "include" directive, allows including config files - incremental "metadata_to_use" setting * protocol - "tagtypes" can be used to hide tags - "find" and "search" can sort - "outputs" prints the plugin name - "outputset" sets runtime attributes - close connection when client sends HTTP request - new filter syntax for "find"/"search" etc. with negation * database - simple: scan audio formats - proxy: require libmpdclient 2.9 - proxy: forward `sort` and `window` to server * player - hard-code "buffer_before_play" to 1 second, independent of audio format - "one-shot" single mode * input - curl: download to buffer instead of throttling transfer - qobuz: new plugin to play Qobuz streams - tidal: new plugin to play Tidal streams * tags - new tags "OriginalDate", "MUSICBRAINZ_WORKID" * decoder - ffmpeg: require at least version 11.12 - gme: try loading m3u sidecar files - hybrid_dsd: new decoder plugin - mad: move "gapless_mp3_playback" setting to "decoder" block - mikmod: require at least version 3.2 - pcm: support audio/L24 (RFC 3190) - sidplay: support basic and kernal rom (libsidplayfp) * resampler - soxr: flush resampler at end of song * output - alsa: non-blocking mode - alsa: change "dop" and "allowed_formats" settings at runtime - ao: fix crash bug due to partial frames - shout: support the Shine encoder plugin - sndio: remove support for the broken RoarAudio sndio emulation - osx: initial support for DSD over PCM - roar: removed - httpd_output: support for unix sockets * mixer - sndio: new mixer plugin * encoder - opus: support for sending metadata using ogg stream chaining * listen on $XDG_RUNTIME_DIR/mpd/socket by default * append hostname to Zeroconf service name * systemd watchdog support * require GCC 6 * build with Meson instead of autotools * use GTest instead of cppunit ver 0.20.23 (2018/10/29) * protocol - emit "player" idle event when restarting the current song * fix broken float to s32 conversion * new clang crash bug workaround ver 0.20.22 (2018/10/23) * protocol - add tag fallbacks for AlbumArtistSort, ArtistSort - fix empty string filter on fallback tags - "count group ..." can print an empty group - fix broken command "list ... group" * storage - curl: URL-encode paths * decoder - fluidsynth: adapt to API change in version 2.0 * Android - now runs as a service - add button to start/stop MPD - add option to auto-start on boot * work around clang bug leading to crash * install the SVG icon
2018-12-11 11:37:20 +01:00
${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example ${DESTDIR}${EGDIR}
.include "../../devel/meson/build.mk"
BUILDLINK_ABI_DEPENDS.flac+= flac>=1.2
.include "../../audio/flac/buildlink3.mk"
.include "../../audio/libopus/buildlink3.mk"
.include "../../audio/mpg123/buildlink3.mk"
.include "../../databases/sqlite3/buildlink3.mk"
Update to 0.19.7: ver 0.19.7 (2014/12/17) * input - nfs: fix crash while canceling a failing file open operation - nfs: fix memory leak on connection failure - nfs: fix reconnect after mount failure - nfs: implement mount timeout (60 seconds) * storage - nfs: implement I/O timeout (60 seconds) * playlist - embcue: fix filename suffix detection - don't skip non-existent songs in "listplaylist" * decoder - ffmpeg: fix time stamp underflow * fix memory allocator bug on Windows ver 0.19.6 (2014/12/08) * decoder - ffmpeg: support FFmpeg 2.5 * fix build failure with musl * android - update libFLAC to 1.3.1 - update FFmpeg to 2.5 ver 0.19.5 (2014/11/26) * input - nfs: fix crash on connection failure * archive - zzip: fix crash after seeking * decoder - dsdiff, dsf, opus: fix deadlock while seeking - mp4v2: remove because of incompatible license ver 0.19.4 (2014/11/18) * protocol - workaround for buggy clients that send "add /" * decoder - ffmpeg: support opus - opus: add MIME types audio/ogg and application/ogg * fix crash on failed filename charset conversion * fix local socket detection from uid=0 (root) ver 0.19.3 (2014/11/11) * protocol - fix "(null)" result string to "list" when AlbumArtist is disabled * database - upnp: fix breakage due to malformed URIs * input - curl: another fix for redirected streams * decoder - audiofile: fix crash while playing streams - audiofile: fix bit rate calculation - ffmpeg: support opus - opus: fix bogus duration on streams - opus: support chained streams - opus: improved error logging * fix distorted audio with soxr resampler * fix build failure on Mac OS X with non-Apple compilers ver 0.19.2 (2014/11/02) * input - curl: fix redirected streams * playlist - don't allow empty playlist name - m3u: don't ignore unterminated last line - m3u: recognize the file suffix ".m3u8" * decoder - ignore URI query string for plugin detection - faad: remove workaround for ancient libfaad2 ABI bug - ffmpeg: recognize MIME type audio/aacp - mad: fix negative replay gain values * output - fix memory leak after filter initialization error - fall back to PCM if given DSD sample rate is not supported * fix assertion failure on unsupported PCM conversion * auto-disable plugins that require GLib when --disable-glib is used ver 0.19.1 (2014/10/19) * input - mms: fix deadlock bug * playlist - extm3u: fix Extended M3U detection - m3u, extm3u, cue: fix truncated lines * fix build failure on Mac OS X * add missing file systemd/mpd.socket to tarball ver 0.19 (2014/10/10) * protocol - new commands "addtagid", "cleartagid", "listfiles", "listmounts", "listneighbors", "mount", "rangeid", "unmount" - "lsinfo" and "readcomments" allowed for remote files - "listneighbors" lists file servers on the local network - "playlistadd" supports file:/// - "idle" with unrecognized event name fails - "list" on album artist falls back to the artist tag - "list" and "count" allow grouping - new "search"/"find" filter "modified-since" - "seek*" allows fractional position - close connection after syntax error * database - proxy: forward "idle" events - proxy: forward the "update" command - proxy: copy "Last-Modified" from remote directories - simple: compress the database file using gzip - upnp: new plugin - cancel the update on shutdown * storage - music_directory can point to a remote file server - nfs: new plugin - smbclient: new plugin * playlist - cue: fix bogus duration of the last track - cue: restore CUE tracks from state file - soundcloud: use https instead of http - soundcloud: add default API key * archive - read tags from songs in an archive * input - alsa: new input plugin - curl: options "verify_peer" and "verify_host" - ffmpeg: update offset after seeking - ffmpeg: improved error messages - mms: non-blocking I/O - nfs: new input plugin - smbclient: new input plugin * filter - volume: improved software volume dithering * decoder: - vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song - audiofile: support scanning remote files - audiofile: log libaudiofile errors - dsdiff, dsf: report bit rate - dsdiff, dsf: implement seeking - dsf: support DSD512 - dsf: support multi-channel files - dsf: fix big-endian bugs - dsf: fix noise at end of malformed file - mpg123: support ID3v2, ReplayGain and MixRamp - sndfile: support scanning remote files - sndfile: support tags "comment", "album", "track", "genre" - sndfile: native floating point playback - sndfile: optimized 16 bit playback - mp4v2: support playback of MP4 files. * encoder: - shine: new encoder plugin * output - alsa: support native DSD playback - alsa: rename "DSD over USB" to "DoP" - osx: fix hang after (un)plugging headphones * threads: - the update thread runs at "idle" priority - the output thread runs at "real-time" priority - increase kernel timer slack on Linux - name each thread (for debugging) * configuration - allow playlist directory without music directory - use XDG to auto-detect "music_directory" and "db_file" * add tags "AlbumSort", "MUSICBRAINZ_RELEASETRACKID" * disable global Latin-1 fallback for tag values * new resampler option using libsoxr * ARM NEON optimizations * install systemd unit for socket activation * Android port
2015-01-05 23:19:02 +01:00
.include "../../devel/boost-libs/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
musicpd: update to 0.21.3. ver 0.21.3 (2018/11/16) * output - alsa: fix crash bug - alsa: fix stuttering at start of playback - alsa: fix discarded samples at end of song - alsa: clear error after reopening device * log: default to journal if MPD was started as systemd service ver 0.21.2 (2018/11/12) * protocol - operator "=~" matches a regular expression - operator "contains" matches substrings * decoder - ffmpeg: require FFmpeg 3.1 or later - ffmpeg: fix broken sound with certain codecs * output - alsa: fix high CPU usage with dmix - httpd: fix three crash bugs * mixer - alsa: fix more rounding errors * fix zlib support ver 0.21.1 (2018/11/04) * protocol - allow escaping quotes in filter expressions - operator "==" never searches substrings in filter expressions * decoder - ffmpeg: fix build failure with non-standard FFmpeg installation path - flac: fix linker failure when building without FLAC support * encoder - vorbis: fix linker failure when building without Vorbis decoder * fix build failure on Linux-PowerPC * fix build failure on FreeBSD * eliminate DLL dependencies on Windows * add warning about buggy Boost version 1.67 * require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build ver 0.21 (2018/10/31) * configuration - add "include" directive, allows including config files - incremental "metadata_to_use" setting * protocol - "tagtypes" can be used to hide tags - "find" and "search" can sort - "outputs" prints the plugin name - "outputset" sets runtime attributes - close connection when client sends HTTP request - new filter syntax for "find"/"search" etc. with negation * database - simple: scan audio formats - proxy: require libmpdclient 2.9 - proxy: forward `sort` and `window` to server * player - hard-code "buffer_before_play" to 1 second, independent of audio format - "one-shot" single mode * input - curl: download to buffer instead of throttling transfer - qobuz: new plugin to play Qobuz streams - tidal: new plugin to play Tidal streams * tags - new tags "OriginalDate", "MUSICBRAINZ_WORKID" * decoder - ffmpeg: require at least version 11.12 - gme: try loading m3u sidecar files - hybrid_dsd: new decoder plugin - mad: move "gapless_mp3_playback" setting to "decoder" block - mikmod: require at least version 3.2 - pcm: support audio/L24 (RFC 3190) - sidplay: support basic and kernal rom (libsidplayfp) * resampler - soxr: flush resampler at end of song * output - alsa: non-blocking mode - alsa: change "dop" and "allowed_formats" settings at runtime - ao: fix crash bug due to partial frames - shout: support the Shine encoder plugin - sndio: remove support for the broken RoarAudio sndio emulation - osx: initial support for DSD over PCM - roar: removed - httpd_output: support for unix sockets * mixer - sndio: new mixer plugin * encoder - opus: support for sending metadata using ogg stream chaining * listen on $XDG_RUNTIME_DIR/mpd/socket by default * append hostname to Zeroconf service name * systemd watchdog support * require GCC 6 * build with Meson instead of autotools * use GTest instead of cppunit ver 0.20.23 (2018/10/29) * protocol - emit "player" idle event when restarting the current song * fix broken float to s32 conversion * new clang crash bug workaround ver 0.20.22 (2018/10/23) * protocol - add tag fallbacks for AlbumArtistSort, ArtistSort - fix empty string filter on fallback tags - "count group ..." can print an empty group - fix broken command "list ... group" * storage - curl: URL-encode paths * decoder - fluidsynth: adapt to API change in version 2.0 * Android - now runs as a service - add button to start/stop MPD - add option to auto-start on boot * work around clang bug leading to crash * install the SVG icon
2018-12-11 11:37:20 +01:00
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
2019-10-21 23:19:35 +02:00
.include "../../lang/python/versioned_dependencies.mk"
.include "../../security/libgcrypt/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"