Index: head/audio/musicpd/Makefile =================================================================== --- head/audio/musicpd/Makefile (revision 432624) +++ head/audio/musicpd/Makefile (revision 432625) @@ -1,247 +1,242 @@ # $FreeBSD$ PORTNAME= musicpd -PORTVERSION= 0.20.2 -PORTREVISION= 1 +PORTVERSION= 0.20.3 CATEGORIES= audio ipv6 MASTER_SITES= http://www.musicpd.org/download/mpd/${PORTVERSION:R}/ DISTNAME= mpd-${PORTVERSION} MAINTAINER= riggs@FreeBSD.org COMMENT= Remote-controllable music daemon LICENSE= GPLv2 LIB_DEPENDS= libboost_iostreams.so:devel/boost-libs \ libicudata.so:devel/icu -USES= gmake pkgconfig compiler:c++14-lang tar:xz +USES= compiler:c++14-lang gmake pkgconfig tar:xz GNU_CONFIGURE= yes USE_GNOME= glib20 USE_RC_SUBR= ${PORTNAME} CONFIGURE_ARGS+=--disable-alsa --disable-systemd-daemon --disable-roar CFLAGS+= -I${PREFIX}/include CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib -L${LOCALBASE}/lib/sidplay/builders #Workaround (transient?) link error with libwrap CONFIGURE_ARGS+=--disable-libwrap BROKEN_powerpc64= Does not build on powerpc64 PORTDOCS= AUTHORS README.md COPYING NEWS SUB_FILES= pkg-message OPTIONS_DEFINE= ID3TAG IPV6 ARCHIVE SQLITE3 \ LAME VORBISENC DOCS OPTIONS_RADIO= RESAMPLER ZEROCONF OPTIONS_RADIO_ZEROCONF= AVAHI MDNSRESPONDER OPTIONS_RADIO_RESAMPLER= SAMPLERATE SOXR OPTIONS_MULTI= FILE_FORMAT OPTIONS_MULTI_FILE_FORMAT= AAC ADPLUG FFMPEG FLAC FLUIDSYNTH \ GME MAD MIKMOD MODPLUG MPG123 MUSEPACK \ OPUS SIDPLAY2 SNDFILE TREMOR TWOLAME \ VORBIS WAV WAVPACK WILDMIDI OPTIONS_GROUP= ACCESS PLAYBACK OPTIONS_GROUP_ACCESS= CDPARANOIA CURL MMS SMB YAJL OPTIONS_GROUP_PLAYBACK= AO HTTPD JACK OPENAL OSS PIPE PULSEAUDIO \ SHOUTCAST SNDIO ADPLUG_DESC= AdPlug support GME_DESC= GME support (video game music files) LAME_DESC= Support for MP3 Icecast Streams PIPE_DESC= Support for writing PCM audio to a pipe SIDPLAY2_DESC= Sidplay support (C64 mono and stereo files) TREMOR_DESC= Tremor decoder (not with SHOUTCAST; use VORBIS) TWOLAME_DESC= TwoLAME support (mp2) VORBISENC_DESC= Ogg Vorbis encoder WILDMIDI_DESC= WildMIDI support (MIDI files) YAJL_DESC= SoundCloud support via libyajl -OPTIONS_DEFAULT=ID3TAG MAD OSS FLAC VORBIS WAV FFMPEG SNDFILE CURL +OPTIONS_DEFAULT=HTTPD ID3TAG MAD OSS FLAC VORBIS WAV FFMPEG SNDFILE CURL AAC_CONFIGURE_ENABLE=aac AAC_LIB_DEPENDS=libfaad.so:audio/faad ADPLUG_CONFIGURE_ENABLE=adplug ADPLUG_LIB_DEPENDS=libadplug.so:audio/libadplug AO_CONFIGURE_ENABLE=ao AO_LIB_DEPENDS=libao.so:audio/libao CDPARANOIA_CONFIGURE_ENABLE=cdio-paranoia CDPARANOIA_LIB_DEPENDS=libcdda_paranoia.so:audio/cdparanoia CURL_CONFIGURE_ENABLE=curl CURL_LIB_DEPENDS=libcurl.so:ftp/curl FFMPEG_CONFIGURE_ENABLE=ffmpeg FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libavformat.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg FLAC_CONFIGURE_ENABLE=flac FLAC_LIB_DEPENDS=libFLAC.so:audio/flac FLUIDSYNTH_CONFIGURE_ENABLE=fluidsynth FLUIDSYNTH_LIB_DEPENDS=libfluidsynth.so:audio/fluidsynth GME_CONFIGURE_ENABLE=gme GME_LIB_DEPENDS=libgme.so:audio/libgme HTTPD_CONFIGURE_ENABLE=httpd-output ID3TAG_CONFIGURE_ENABLE=id3 ID3TAG_LIB_DEPENDS=libid3tag.so:audio/libid3tag IPV6_CONFIGURE_ENABLE=ipv6 JACK_CONFIGURE_ENABLE=jack JACK_LIB_DEPENDS=libjack.so:audio/jack LAME_CONFIGURE_ENABLE=lame-encoder LAME_LIB_DEPENDS=libmp3lame.so:audio/lame MAD_CONFIGURE_ENABLE=mad MAD_LIB_DEPENDS=libmad.so:audio/libmad MIKMOD_CONFIGURE_ENABLE=mikmod MIKMOD_LIB_DEPENDS=libmikmod.so:audio/libmikmod MMS_CONFIGURE_ENABLE=mms MMS_LIB_DEPENDS=libmms.so:net/libmms MODPLUG_CONFIGURE_ENABLE=modplug MODPLUG_LIB_DEPENDS=libmodplug.so:audio/libmodplug MPG123_CONFIGURE_ENABLE=mpg123 MPG123_LIB_DEPENDS=libmpg123.so:audio/mpg123 MUSEPACK_CONFIGURE_ENABLE=mpc MUSEPACK_LIB_DEPENDS=libmpcdec.so:audio/musepack OPENAL_CONFIGURE_ENABLE=openal OPENAL_LIB_DEPENDS=libopenal.so:audio/openal OPUS_CONFIGURE_ENABLE=opus OPUS_LIB_DEPENDS=libopus.so:audio/opus OSS_CONFIGURE_ENABLE=oss PIPE_CONFIGURE_ENABLE=pipe-output PULSEAUDIO_CONFIGURE_ENABLE=pulse PULSEAUDIO_LIB_DEPENDS=libpulse.so:audio/pulseaudio SAMPLERATE_CONFIGURE_ENABLE=lsr SAMPLERATE_LIB_DEPENDS=libsamplerate.so:audio/libsamplerate SIDPLAY2_CONFIGURE_ENABLE=sidplay SIDPLAY2_LIB_DEPENDS=libsidplay2.so:audio/libsidplay2 SMB_CONFIGURE_enable=smbclient SMB_LIB_DEPENDS=libsmbclient.so:net/samba-libsmbclient SNDFILE_CONFIGURE_ENABLE=sndfile SNDFILE_LIB_DEPENDS=libsndfile.so:audio/libsndfile SNDIO_CONFIGURE_ENABLE=sndio SNDIO_LIB_DEPENDS=libsndio.so:audio/sndio SOXR_CONFIGURE_ENABLE=soxr SOXR_LIB_DEPENDS=libsoxr.so:audio/libsoxr SQLITE3_CONFIGURE_ENABLE=sqlite SQLITE3_LIB_DEPENDS=libsqlite3.so:databases/sqlite3 TREMOR_CONFIGURE_WITH=tremor TREMOR_LIB_DEPENDS=libvorbisidec.so:audio/libtremor TWOLAME_CONFIGURE_ENABLE=twolame-encoder TWOLAME_LIB_DEPENDS=libtwolame.so:audio/twolame VORBISENC_CONFIGURE_ENABLE=vorbis-encoder VORBISENC_LIB_DEPENDS=libvorbisenc.so:audio/libvorbis VORBIS_CONFIGURE_ENABLE=vorbis VORBIS_LIB_DEPENDS=libvorbis.so:audio/libvorbis WAV_CONFIGURE_ENABLE=audiofile WAV_LIB_DEPENDS=libaudiofile.so:audio/libaudiofile WAVPACK_CONFIGURE_ENABLE=wavpack WAVPACK_LIB_DEPENDS=libwavpack.so:audio/wavpack WILDMIDI_CONFIGURE_ENABLE=wildmidi WILDMIDI_LIB_DEPENDS=libWildMidi.so:audio/wildmidi YAJL_CONFIGURE_ENABLE=yajl YAJL_LIB_DEPENDS=libyajl.so:devel/yajl MPDUSER?= mpd MPDGROUP?= mpd USERS= ${MPDUSER} GROUPS= ${MPDGROUP} .include -.if ${OSVERSION} < 1100000 -USE_GCC= 5+ -.endif - .ifdef MPDCONF IGNORE=Please remove the MPDCONF line from make.conf, then rename ${PREFIX}/etc/${MPDCONF} to musicpd.conf, if it exists .endif .if exists(${PREFIX}/etc/mpd.conf) MSG=does not expect ${PREFIX}/etc/mpd.conf to exist. .if !exists(${PREFIX}/etc/musicpd.conf) IGNORE=${MSG} Move it to ${PREFIX}/etc/musicpd.conf. .else IGNORE=${MSG} You also have musicpd.conf-- check carefully to see which one you want, and remove mpd.conf. .endif .endif .if ${PORT_OPTIONS:MARCHIVE} CONFIGURE_ARGS+=--enable-bzip2 \ --enable-zzip \ --enable-iso9660 LIB_DEPENDS+= libzzip.so:devel/zziplib \ libcdio_paranoia.so:sysutils/libcdio-paranoia .else CONFIGURE_ARGS+=--disable-bzip2 \ --disable-zzip \ --disable-iso9660 .endif .if ${PORT_OPTIONS:MAVAHI} CONFIGURE_ARGS+=--with-zeroconf=avahi LIB_DEPENDS+= libavahi-client.so:net/avahi-app .else CONFIGURE_ARGS+=--with-zeroconf=no .endif .if ${PORT_OPTIONS:MMDNSRESPONDER} CONFIGURE_ARGS+=--with-zeroconf=bonjour LIB_DEPENDS+= libdns_sd.so:net/mDNSResponder .else CONFIGURE_ARGS+=--with-zeroconf=no .endif # libshout streaming support will be disabled by configure script when built # also with tremor since the latter does not support vorbis encoding .if ${PORT_OPTIONS:MSHOUTCAST} . if ${PORT_OPTIONS:MTREMOR} IGNORE= shoutcast and tremor do not coexist; use vorbis instead . endif LIB_DEPENDS+= libshout.so:audio/libshout CONFIGURE_ARGS+=--enable-vorbis-encoder \ --enable-shout .else CONFIGURE_ARGS+=--disable-shout .endif post-patch: -# Replace ~/ with /var/mpd and make musicpd run as mpd by default - @${REINPLACE_CMD} -e 's,^#\([^"]*"\)~/,\1/var/mpd,g' \ +# Replace ~/ with /var/mpd/ and make musicpd run as mpd by default + @${REINPLACE_CMD} -e 's,^#\([^"]*"\)~/,\1/var/mpd/,g' \ -e 's,^#\(user[^"]*"\)nobody,\1${MPDUSER},g' \ ${WRKSRC}/doc/mpdconf.example # Uncomment OSS audio output part from MPDCONF; dragons! start=$$(expr $$(${SED} -n '/^# type *"oss"/=' \ ${WRKSRC}/doc/mpdconf.example) - 1); \ finish=$$(for n in $$(${JOT} 10 $$start); do \ [ "$$(${SED} -n $${n}p ${WRKSRC}/doc/mpdconf.example)" = \ "#}" ] && ${ECHO_CMD} $$n || true; done); \ ${REINPLACE_CMD} -e "$${start},$${finish}s,^#,," \ ${WRKSRC}/doc/mpdconf.example # Fix man pages for executable names @${REINPLACE_CMD} -e 's/^\(\.B m\)pd/\1usicpd/' \ -e 's#^\(\.BI \)/etc/mpd.conf#\1${PREFIX}/etc/${PORTNAME}.conf#' \ -e 's#^mpd.conf#${PORTNAME}.conf#' \ -e 's#^mpd(1)#musicpd(1)#' \ ${WRKSRC}/doc/mpd.1 ${WRKSRC}/doc/mpd.conf.5 do-install: ${INSTALL_PROGRAM} ${WRKSRC}/src/mpd \ ${STAGEDIR}/${PREFIX}/bin/${PORTNAME} ${INSTALL_MAN} ${WRKSRC}/doc/mpd.1 \ ${STAGEDIR}/${PREFIX}/man/man1/${PORTNAME}.1 ${INSTALL_MAN} ${WRKSRC}/doc/mpd.conf.5 \ ${STAGEDIR}/${PREFIX}/man/man5/${PORTNAME}.conf.5 ${MKDIR} ${STAGEDIR}/${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}/${DOCSDIR}/ ${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example \ ${STAGEDIR}/${PREFIX}/etc/${PORTNAME}.conf.sample .include Index: head/audio/musicpd/distinfo =================================================================== --- head/audio/musicpd/distinfo (revision 432624) +++ head/audio/musicpd/distinfo (revision 432625) @@ -1,3 +1,3 @@ -TIMESTAMP = 1484486662 -SHA256 (mpd-0.20.2.tar.xz) = 552a87d71c2981baeddf28c1856a7e071ea0236dd38bc75ec25d58529605ff77 -SIZE (mpd-0.20.2.tar.xz) = 768816 +TIMESTAMP = 1485595393 +SHA256 (mpd-0.20.3.tar.xz) = 2238c1233f5318800ede7c37eeaf705c04920315de572dc666aff6ca682eb0f9 +SIZE (mpd-0.20.3.tar.xz) = 770568 Index: head/audio/musicpd/files/patch-src_db_Count.cxx =================================================================== --- head/audio/musicpd/files/patch-src_db_Count.cxx (nonexistent) +++ head/audio/musicpd/files/patch-src_db_Count.cxx (revision 432625) @@ -0,0 +1,38 @@ +--- src/db/Count.cxx.orig 2017-01-03 19:47:53 UTC ++++ src/db/Count.cxx +@@ -62,7 +62,7 @@ Print(Response &r, TagType group, const + } + } + +-static bool ++static void + stats_visitor_song(SearchStats &stats, const LightSong &song) + { + stats.n_songs++; +@@ -70,8 +70,6 @@ stats_visitor_song(SearchStats &stats, c + const auto duration = song.GetDuration(); + if (!duration.IsNegative()) + stats.total_duration += duration; +- +- return true; + } + + static bool +@@ -94,7 +92,7 @@ CollectGroupCounts(TagCountMap &map, Tag + return found; + } + +-static bool ++static void + GroupCountVisitor(TagCountMap &map, TagType group, const LightSong &song) + { + assert(song.tag != nullptr); +@@ -103,8 +101,6 @@ GroupCountVisitor(TagCountMap &map, TagT + if (!CollectGroupCounts(map, group, tag) && group == TAG_ALBUM_ARTIST) + /* fall back to "Artist" if no "AlbumArtist" was found */ + CollectGroupCounts(map, TAG_ARTIST, tag); +- +- return true; + } + + void Property changes on: head/audio/musicpd/files/patch-src_db_Count.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/audio/musicpd/files/patch-src_db_DatabasePlaylist.cxx =================================================================== --- head/audio/musicpd/files/patch-src_db_DatabasePlaylist.cxx (nonexistent) +++ head/audio/musicpd/files/patch-src_db_DatabasePlaylist.cxx (revision 432625) @@ -0,0 +1,17 @@ +--- src/db/DatabasePlaylist.cxx.orig 2017-01-03 19:47:53 UTC ++++ src/db/DatabasePlaylist.cxx +@@ -27,13 +27,12 @@ + + #include + +-static bool ++static void + AddSong(const Storage &storage, const char *playlist_path_utf8, + const LightSong &song) + { + spl_append_song(playlist_path_utf8, + DatabaseDetachSong(storage, song)); +- return true; + } + + void Property changes on: head/audio/musicpd/files/patch-src_db_DatabasePlaylist.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/audio/musicpd/files/patch-src_db_DatabasePrint.cxx =================================================================== --- head/audio/musicpd/files/patch-src_db_DatabasePrint.cxx (nonexistent) +++ head/audio/musicpd/files/patch-src_db_DatabasePrint.cxx (revision 432625) @@ -0,0 +1,112 @@ +--- src/db/DatabasePrint.cxx.orig 2017-01-03 19:47:53 UTC ++++ src/db/DatabasePrint.cxx +@@ -49,16 +49,14 @@ PrintDirectoryURI(Response &r, bool base + ApplyBaseFlag(directory.GetPath(), base)); + } + +-static bool ++static void + PrintDirectoryBrief(Response &r, bool base, const LightDirectory &directory) + { + if (!directory.IsRoot()) + PrintDirectoryURI(r, base, directory); +- +- return true; + } + +-static bool ++static void + PrintDirectoryFull(Response &r, bool base, const LightDirectory &directory) + { + if (!directory.IsRoot()) { +@@ -67,8 +65,6 @@ PrintDirectoryFull(Response &r, bool bas + if (directory.mtime > 0) + time_print(r, "Last-Modified", directory.mtime); + } +- +- return true; + } + + static void +@@ -96,7 +92,7 @@ print_playlist_in_directory(Response &r, + directory->GetPath(), name_utf8); + } + +-static bool ++static void + PrintSongBrief(Response &r, Partition &partition, + bool base, const LightSong &song) + { +@@ -106,11 +102,9 @@ PrintSongBrief(Response &r, Partition &p + /* this song file has an embedded CUE sheet */ + print_playlist_in_directory(r, base, + song.directory, song.uri); +- +- return true; + } + +-static bool ++static void + PrintSongFull(Response &r, Partition &partition, + bool base, const LightSong &song) + { +@@ -120,21 +114,18 @@ PrintSongFull(Response &r, Partition &pa + /* this song file has an embedded CUE sheet */ + print_playlist_in_directory(r, base, + song.directory, song.uri); +- +- return true; + } + +-static bool ++static void + PrintPlaylistBrief(Response &r, bool base, + const PlaylistInfo &playlist, + const LightDirectory &directory) + { + print_playlist_in_directory(r, base, + &directory, playlist.name.c_str()); +- return true; + } + +-static bool ++static void + PrintPlaylistFull(Response &r, bool base, + const PlaylistInfo &playlist, + const LightDirectory &directory) +@@ -144,8 +135,6 @@ PrintPlaylistFull(Response &r, bool base + + if (playlist.mtime > 0) + time_print(r, "Last-Modified", playlist.mtime); +- +- return true; + } + + void +@@ -191,15 +180,13 @@ db_selection_print(Response &r, Partitio + 0, std::numeric_limits::max()); + } + +-static bool ++static void + PrintSongURIVisitor(Response &r, Partition &partition, const LightSong &song) + { + song_print_uri(r, partition, song); +- +- return true; + } + +-static bool ++static void + PrintUniqueTag(Response &r, TagType tag_type, + const Tag &tag) + { +@@ -211,8 +198,6 @@ PrintUniqueTag(Response &r, TagType tag_ + if (item.type != tag_type) + r.Format("%s: %s\n", + tag_item_names[item.type], item.value); +- +- return true; + } + + void Property changes on: head/audio/musicpd/files/patch-src_db_DatabasePrint.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/audio/musicpd/files/patch-src_db_DatabaseQueue.cxx =================================================================== --- head/audio/musicpd/files/patch-src_db_DatabaseQueue.cxx (nonexistent) +++ head/audio/musicpd/files/patch-src_db_DatabaseQueue.cxx (revision 432625) @@ -0,0 +1,18 @@ +--- src/db/DatabaseQueue.cxx.orig 2017-01-03 19:47:53 UTC ++++ src/db/DatabaseQueue.cxx +@@ -27,14 +27,13 @@ + + #include + +-static bool ++static void + AddToQueue(Partition &partition, const LightSong &song) + { + const Storage &storage = *partition.instance.storage; + partition.playlist.AppendSong(partition.pc, + DatabaseDetachSong(storage, + song)); +- return true; + } + + void Property changes on: head/audio/musicpd/files/patch-src_db_DatabaseQueue.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/audio/musicpd/files/patch-src_db_Helpers.cxx =================================================================== --- head/audio/musicpd/files/patch-src_db_Helpers.cxx (nonexistent) +++ head/audio/musicpd/files/patch-src_db_Helpers.cxx (revision 432625) @@ -0,0 +1,19 @@ +--- src/db/Helpers.cxx.orig 2017-01-03 19:47:53 UTC ++++ src/db/Helpers.cxx +@@ -67,15 +67,13 @@ StatsVisitTag(DatabaseStats &stats, Stri + } + } + +-static bool ++static void + StatsVisitSong(DatabaseStats &stats, StringSet &artists, StringSet &albums, + const LightSong &song) + { + ++stats.song_count; + + StatsVisitTag(stats, artists, albums, *song.tag); +- +- return true; + } + + DatabaseStats Property changes on: head/audio/musicpd/files/patch-src_db_Helpers.cxx ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/audio/musicpd/files/pkg-message.in =================================================================== --- head/audio/musicpd/files/pkg-message.in (revision 432624) +++ head/audio/musicpd/files/pkg-message.in (revision 432625) @@ -1,31 +1,37 @@ **************************************************************** The musicpd package has been successfully installed. -In order to run the MPD server, you need to edit +In order to run the MPD server, you need to edit the provided +sample configuration file %%PREFIX%%/etc/musicpd.conf -and add the following line to /etc/rc.conf: +Edit the variables in the section "Files and directories" +according to your local environment. Ensure that the referenced +directories exist and owned by the 'mpd' user, except for the +variable music_directory. It is sufficient for the 'mpd' user +to have read permissions to the referenced directory. +To enable the service at boot time, add the following line to +/etc/rc.conf: + musicpd_enable="YES" Then start the server with service musicpd start or reboot. -The example configuration of MPD server requires music files to -be stored in the /var/mpd/music directory. NOTE: The musicpd server is pretty useless without a client. You might want to install one of the following ports too: Command line: musicpc, ncmpc (Curses), ncmpcpp (Curses) GNOME / GTK: glurp, gmpc KDE / Qt: quimup, qmpdlient Web: phpmp ****************************************************************