commit c0f576ce448610be3109067e4e895f28ce44678f6762cf0517babff65ce25c37 Author: Martin Pluskal Date: Fri Aug 25 06:51:42 2017 +0000 Accepting request 517718 from home:cornelisbb OBS-URL: https://build.opensuse.org/request/show/517718 OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/mpd?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.mpd b/README.mpd new file mode 100644 index 0000000..25f3d7f --- /dev/null +++ b/README.mpd @@ -0,0 +1,41 @@ +mpd config file /etc/mpd.cond should be customised, at least a path to +music directories (music_directory). + +To use alsa sound output instead of pulse, activate the corresponding +part of mpd.conf and put comment on pulse part. + +For security reasons, MPD runs as restricted user mpd, group +audio. Please consider that music_directory and all directories in the +path to it should be readable and executable either for user mpd or +group audio. IF you ask youself what should "executable" means to +a directory, it is a right to change into it. So a directory could +either belong to mpd user or belong to the audio group or be readable +for all (others). Directories and files beneath it should be accessable +the same way. Some examples for right permissions: + +ls -l -d /mnt/mp3 + +readable by everyone +drwxr-xr-x 226 user users 16384 Mar 24 23:36 /mnt/mp3 + +readable by audio group +drwxr-x--- 226 user audio 16384 Mar 24 23:36 /mnt/mp3 + +readable by mpd user +drwx------ 226 mpd audio 16384 Mar 24 23:36 /mnt/mp3 + +If you would like to set up some independent directories, declare one +of it as music_directory and link others in it. Permissions for other +directories are to be set accordingly. + +MPD will be bounded to the local address (localhost): If you would +like to control it over network , then change bind_to_address to the +network address. You can set password and the list of activities to +restrict control of MPD over network. + +To start MPD at boot time, call as root: + +systemctl enable mpd + +If filenames or directory names don't display correctly, set the +character set (encoding) for the filesystem in mpd.conf. diff --git a/mpd-0.20.9.tar.xz b/mpd-0.20.9.tar.xz new file mode 100644 index 0000000..7b3f313 --- /dev/null +++ b/mpd-0.20.9.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd77a2869e32354b004cc6b34fcb0bee56114caa2d9ed862aaa8071441e34eb7 +size 773404 diff --git a/mpd-configh.patch b/mpd-configh.patch new file mode 100644 index 0000000..1ad12da --- /dev/null +++ b/mpd-configh.patch @@ -0,0 +1,12 @@ +--- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx ++++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx +@@ -20,8 +20,8 @@ + /* necessary because libavutil/common.h uses UINT64_C */ + #define __STDC_CONSTANT_MACROS + +-#include "lib/ffmpeg/Time.hxx" + #include "config.h" ++#include "lib/ffmpeg/Time.hxx" + #include "FfmpegDecoderPlugin.hxx" + #include "lib/ffmpeg/Domain.hxx" + #include "lib/ffmpeg/Error.hxx" diff --git a/mpd-mpdconf_suse.patch b/mpd-mpdconf_suse.patch new file mode 100644 index 0000000..9e8f689 --- /dev/null +++ b/mpd-mpdconf_suse.patch @@ -0,0 +1,86 @@ +--- a/doc/mpdconf.example 2017-02-01 21:58:30.000000000 +0100 ++++ b/doc/mpdconf.example 2017-08-10 12:26:41.316129281 +0200 +@@ -17,7 +17,7 @@ + # playlist files not created by the server but only if they are in the MPD + # format. This setting defaults to playlist saving being disabled. + # +-#playlist_directory "~/.mpd/playlists" ++#playlist_directory "/var/lib/mpd/playlists" + # + # This setting sets the location of the MPD database. This file is used to + # load the database at server start up and store the database while the +@@ -25,7 +25,7 @@ + # MPD to accept files over ipc socket (using file:// protocol) or streaming + # files over an accepted protocol. + # +-#db_file "~/.mpd/database" ++#db_file "/var/lib/mpd/mpd.db" + # + # These settings are the locations for the daemon log files for the daemon. + # These logs are great for troubleshooting, depending on your log_level +@@ -34,25 +34,25 @@ + # The special value "syslog" makes MPD use the local syslog daemon. This + # setting defaults to logging to syslog, otherwise logging is disabled. + # +-#log_file "~/.mpd/log" ++#log_file "syslog" + # + # This setting sets the location of the file which stores the process ID + # for use of mpd --kill and some init scripts. This setting is disabled by + # default and the pid file will not be stored. + # +-#pid_file "~/.mpd/pid" ++#pid_file "/var/lib/mpd/mpd.pid" + # + # This setting sets the location of the file which contains information about + # most variables to get MPD back into the same general shape it was in before + # it was brought down. This setting is disabled by default and the server + # state will be reset on server start up. + # +-#state_file "~/.mpd/state" ++#state_file "/var/lib/mpd/mpdstate" + # + # The location of the sticker database. This is a database which + # manages dynamic information attached to songs. + # +-#sticker_file "~/.mpd/sticker.sql" ++#sticker_file "/var/lib/mpd/sticker.sql" + # + ############################################################################### + +@@ -64,14 +64,14 @@ + # initialization. This setting is disabled by default and MPD is run as the + # current user. + # +-#user "nobody" ++#user "mpd" + # + # This setting specifies the group that MPD will run as. If not specified + # primary group of user specified with "user" setting will be used (if set). + # This is useful if MPD needs to be a member of group such as "audio" to + # have permission to use sound card. + # +-#group "nogroup" ++#group "audio" + # + # This setting sets the address for the daemon to listen on. Careful attention + # should be paid if this is assigned to anything other then the default, any. +@@ -280,8 +280,8 @@ + # An example of a pulseaudio output (streaming to a remote pulseaudio server) + # + #audio_output { +-# type "pulse" +-# name "My Pulse Output" ++ type "pulse" ++ name "Pulse Output" + ## server "remote_server" # optional + ## sink "remote_server_sink" # optional + #} +@@ -389,6 +389,6 @@ + # If file or directory names do not display correctly for your locale then you + # may need to modify this setting. + # +-#filesystem_charset "UTF-8" ++filesystem_charset "UTF-8" + # + ############################################################################### diff --git a/mpd-user.conf b/mpd-user.conf new file mode 100644 index 0000000..62e910f --- /dev/null +++ b/mpd-user.conf @@ -0,0 +1,53 @@ +music_directory "~/data/music" +playlist_directory "~/.mpd/playlists" +db_file "~/.mpd/database" +log_file "~/.mpd/log" +pid_file "~/.mpd/pid" +state_file "~/.mpd/state" +sticker_file "~/.mpd/sticker.sql" +bind_to_address "127.0.0.1" +port "6600" +#bind_to_address "~/.mpd/socket" +#gapless_mp3_playback "yes" +save_absolute_paths_in_playlists "no" +metadata_to_use "artist,album,title,track,name,date" +auto_update "yes" +#auto_update_depth "3" +follow_outside_symlinks "yes" +follow_inside_symlinks "yes" +zeroconf_enabled "yes" +zeroconf_name "Music Player" +#password "password@read,add,control,admin" +#default_permissions "read,add,control,admin" + +input { + plugin "curl" +} + +audio_output { +type "pulse" +name "PulseAudio" +} + +#audio_output { +#type "jack" +#name "mpd" +#} + +audio_output_format "48000:16:2" +samplerate_converter "Fastest Sinc Interpolator" + +#replaygain "album" +#replaygain_preamp "0" +#volume_normalization "no" +#audio_buffer_size "2048" +#buffer_before_play "10%" +#connection_timeout "60" +#max_connections "10" +#max_playlist_length "16384" +#max_command_list_size "2048" +#max_output_buffer_size "8192" + +filesystem_charset "UTF-8" +#id3v1_encoding "ISO-8859-1" + diff --git a/mpd.changes b/mpd.changes new file mode 100644 index 0000000..b043292 --- /dev/null +++ b/mpd.changes @@ -0,0 +1,1097 @@ +------------------------------------------------------------------- +Sat Aug 19 19:38:23 UTC 2017 - cornelis@solcon.nl + +- Build unconditional with libmpdclient again + +------------------------------------------------------------------- +Sat Aug 19 19:32:14 UTC 2017 - cornelis@solcon.nl + +- [from packman] Disable sidplay, use qmmp or QMPlay2 instead + +------------------------------------------------------------------- +Tue Aug 15 10:11:50 UTC 2017 - cornelis@solcon.nl + +- Make also libmpdclient conditional: it is not present in TW + +------------------------------------------------------------------- +Tue Aug 15 09:52:44 UTC 2017 - cornelis@solcon.nl + +- Update copyright notice and bugzilla link for openSUSE +- Follow guideline on + https://en.opensuse.org/openSUSE:Packaging_guidelines#Users_and_Groups + for the creation of the user "mpd" +- Updated mpd-mdpconf_suse.patch to make pulse default instead of + alsa +- Do not use compiler test but condition it +- Update README.mpd for systemd and pulse and remove German section + +------------------------------------------------------------------- +Thu Jul 27 00:00:00 UTC 2017 - olaf@aepfle.de + +- Update to ver 0.20.9 (2017/06/04) + * decoder + - ffmpeg: support *.adx + * playlist + - m3u: support MIME type `audio/mpegurl` + * database + - simple: fix false positive directory loop detection with NFS + * enforce a reasonable minimum audio_buffer_size setting + * cap buffer_before_play at 80%% to prevent deadlock + +------------------------------------------------------------------- +Wed Mar 15 00:00:00 UTC 2017 - olaf@aepfle.de + +- Update to ver 0.20.6 (2017/03/10) + * input + - curl: fix headers after HTTP redirect to Shoutcast server + * decoder + - ffmpeg: re-enable as fallback + - mpcdec: fix crash (division by zero) after seeking + - sidplay: make compatible with libsidplayfp < 1.8 + * fix stream tags after automatic song change + * workaround for GCC 4.9.4 / libstdc++ bug (build failure) + +------------------------------------------------------------------- +Tue Feb 21 00:00:00 UTC 2017 - olaf@aepfle.de + +- Update to ver 0.20.5 (2017/02/20) + * tags + - id3: fix memory leak on corrupt ID3 tags + * decoder + - sidplay: don't require libsidutils when building with libsidplayfp + * output + - httpd: fix two buffer overflows in IcyMetaData length calculation + * mixer + - alsa: fix crash bug + +------------------------------------------------------------------- +Wed Feb 8 00:00:00 UTC 2017 - olaf@aepfle.de + +- enable shine, sidplay, opus, upnp, nfs, smbclient, soxr +- use built-in systemd files +- drop sysv init + +------------------------------------------------------------------- +Tue Feb 7 00:00:00 UTC 2017 - olaf@aepfle.de + +- Update to ver 0.20.4 (2017/02/01) + * input + - nfs: fix freeze after reconnect + * output + - sndio: work around a libroar C++ incompatibility + * workaround for GCC 4.9 "constexpr" bug + ver 0.20.3 (2017/01/25) + * protocol + - "playlistadd" creates new playlist if it does not exist, as documented + * database + - proxy: fix error "terminate called after throwing ..." + - proxy: make connect errors during startup non-fatal + * neighbor + - upnp: fix premature expiry + * replay gain: don't reset ReplayGain levels when unpausing playback + * silence surround channels when converting from stereo + * use shortcuts such as "dsd64" in log messages + ver 0.20.2 (2017/01/15) + * input + - alsa: fix crash bug + - alsa: fix buffer overruns + * decoder + - flac: add options "probesize" and "analyzeduration" + * resampler + - libsamplerate: reset state after seeking + * output + - fix static noise after changing to a different audio format + - alsa: fix the DSD_U32 sample rate + - alsa: fix the DSD_U32 byte order + - alsa: support DSD_U16 + - recorder: fix error "Failed to create : No such file or directory" + * playlist + - cue: fix skipping songs + ver 0.20.1 (2017/01/09) + * input + - curl: fix crash bug + - curl: fix freeze bug + * decoder + - wavpack: fix crash bug + * storage + - curl: new storage plugin for WebDAV (work in progress) + * mixer + - alsa: normalize displayed volume according to human perception + * fix crash with volume_normalization enabled + ver 0.20 (2017/01/04) + * protocol + - "commands" returns playlist commands only if playlist_directory configured + - "search"/"find" have a "window" parameter + - report song duration with milliseconds precision + - "sticker find" can match sticker values + - drop the "file:///" prefix for absolute file paths + - add range parameter to command "plchanges" and "plchangesposid" + - send verbose error message to client + * input + - curl: fix memory leak + * tags + - ape, ogg: drop support for non-standard tag "album artist" + affected filetypes: vorbis, flac, opus & all files with ape2 tags + (most importantly some mp3s) + - id3: remove the "id3v1_encoding" setting; by definition, all ID3v1 tags + are ISO-Latin-1 + - ape: support APE replay gain on remote files + - read ID3 tags from NFS/SMB + * decoder + - improved error logging + - report I/O errors to clients + - ffmpeg: support ReplayGain and MixRamp + - ffmpeg: support stream tags + - gme: add option "accuracy" + - gme: provide the TRACK tag + - gme: faster scanning + - mad: reduce memory usage while scanning tags + - mpcdec: read the bit rate + - pcm: support audio/L16 (RFC 2586) and audio/x-mpd-float + - sidplay: faster scanning + - wavpack: large file support + - wavpack: support DSD (WavPack 5) + - wavpack: archive support + * playlist + - cue: don't skip pregap + - embcue: fix last track + - flac: new plugin which reads the "CUESHEET" metadata block + * output + - alsa: fix multi-channel order + - alsa: remove option "use_mmap" + - alsa: support DSD_U32 + - alsa: disable DoP if it fails + - jack: reduce CPU usage + - pulse: set channel map to WAVE-EX + - recorder: record tags + - recorder: allow dynamic file names + - sndio: new output plugin + * mixer + - null: new plugin + * resampler + - new block "resampler" in configuration file + replacing the old "samplerate_converter" setting + - soxr: allow multi-threaded resampling + * player + - reset song priority on playback + - reduce xruns + * write database and state file atomically + * always write UTF-8 to the log file. + * remove dependency on GLib + * support libsystemd (instead of the older libsystemd-daemon) + * database + - proxy: add TCP keepalive option + * update + - apply .mpdignore matches to subdirectories + * switch the code base to C++14 + - GCC 4.9 or clang 3.4 (or newer) recommended + ver 0.19.21 (2016/12/13) + * decoder + - ffmpeg: fix crash bug + * fix unit test failure after recent "setprio" change + * systemd: add user unit + ver 0.19.20 (2016/12/09) + * protocol + - "setprio" re-enqueues old song if priority has been raised + * decoder + - ffmpeg: ignore empty packets + - pcm: fix corruption bug with partial frames (after short read) + - sidplay: fix playback speed with libsidplayfp + * output + - winmm: fix 8 bit playback + * fix gcc 7.0 -Wimplicit-fallthrough + * systemd: paranoid security settings + ver 0.19.19 (2016/08/23) + * decoder + - ffmpeg: bug fix for FFmpeg 3.1 support + - wildmidi: support libWildMidi 0.4 + * output + - pulse: support 32 bit, 24 bit and floating point playback + * fix clang 3.9 warnings + ver 0.19.18 (2016/08/05) + * decoder + - ffmpeg: fix crash with older FFmpeg versions (< 3.0) + - ffmpeg: log detailed error message + - ffmpeg: support FFmpeg 3.1 + - sidplay: detect libsidplay2 with pkg-config + - sidplay: log detailed error message + - sidplay: read the "date" tag + - sidplay: allow building with libsidplayfp instead of libsidplay2 + * output + - shout: recognize setting "encoder" instead of "encoding" + * fix memory leak after stream failure + * fix build failure with Boost 1.61 + * require gcc 4.7 or newer + +------------------------------------------------------------------- +Fri Jul 29 00:00:00 UTC 2016 - olaf@aepfle.de + +- Update to ver 0.19.17 (2016/07/09) + * decoder + - flac: fix assertion failure while seeking + - flac: fix stream duration indicator + - fix seek problems in several plugins + * fix spurious seek error "Failed to allocate silence buffer" + * replay gain: fix "replay_gain_handler mixer" setting + * DSD: use 0x69 as silence pattern + * fix use-after-free bug on "close" and "kill" + ver 0.19.16 (2016/06/13) + * faster seeking + * fix system include path order + * add missing DocBook file to tarball + ver 0.19.15 (2016/04/30) + * decoder + - ffmpeg: support FFmpeg 3.0 + - ffmpeg: use as fallback instead of "mad" if no plugin matches + - opus: support bigger OpusTags packets + * fix more build failures on non-glibc builds due to constexpr Mutex + * fix build failure due to missing include + * fix unit test on Alpha + ver 0.19.14 (2016/03/18) + * decoder + - dsdiff: fix off-by-one buffer overflow + - opus: limit tag size to 64 kB + * archive + - iso9660: fix buffer overflow + * fix quadratic runtime bug in the tag pool + * fix build failures on non-glibc builds due to constexpr Mutex + ver 0.19.13 (2016/02/23) + * tags + - aiff, riff: fix ID3 chunk padding + * decoder + - ffmpeg: support the TAK codec + * fix disappearing duration of remote songs during playback + * initialize supplementary groups with glibc 2.19+ + ver 0.19.12 (2015/12/15) + * fix assertion failure on malformed UTF-8 tag + * fix build failure on non-Linux systems + * fix LimitRTTIME in systemd unit file + ver 0.19.11 (2015/10/27) + * tags + - ape: fix buffer overflow + * decoder + - ffmpeg: fix crash due to wrong avio_alloc_context() call + - gme: don't loop forever, fall back to GME's default play length + * encoder + - flac: fix crash with 32 bit playback + * mixer + - fix mixer lag after enabling/disabling output + +------------------------------------------------------------------- +Tue Sep 22 00:00:00 UTC 2015 - olaf@aepfle.de + +- Use pkgconfig for ffmpeg BuildRequires + +------------------------------------------------------------------- +Thu Aug 27 00:00:00 UTC 2015 - Mathias.Homann@opensuse.org + +- Update to ver 0.19.10 (2015/06/21) + * input + - curl: fix deadlock on small responses + - smbclient: fix DFF playback + * decoder + - ffmpeg: improve seeking accuracy + - fix stuck stream tags + * encoder + - opus: fix bogus granulepos + * output + - fix failure to open device right after booting + * neighbor + - nfs: fix deadlock when connecting + * fix "single" mode breakage due to queue edits + +------------------------------------------------------------------- +Wed Mar 4 00:00:00 UTC 2015 - joerg.lorenzen@ki.tng.de + +-Update to version 0.19.9: + + Decoder: + * dsdiff, dsf: raise ID3 tag limit to 1 MB. + + Playlist: + * Fix loading duplicate tag types from state file. + + Despotify: + * Remove defunct plugin. + + Fix clock integer overflow on OS X. + + Fix gcc 5.0 warnings. + + Fix build failure with uClibc. + + Fix build failure on non-POSIX operating systems. + + Fix dependency issue on parallel Android build. + + Fix database/state file saving on Windows. +- Changes from version 0.19.8: + + Input: + * curl: Fix bug after rewinding from end-of-file. + * mms: Reduce delay at the beginning of playback. + + Decoder: + * dsdiff, dsf: Allow ID3 tags larger than 4 kB. + * ffmpeg: Support interleaved floating point. + + Fix clang 3.6 warnings. + + Fix build failure on NetBSD. +- Changes from version 0.19.7: + + 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. +- Changes from version 0.19.6: + + Decoder: + * ffmpeg: Support FFmpeg 2.5. + + Fix build failure with musl. + + Android: + * Update libFLAC to 1.3.1. + * Update FFmpeg to 2.5. +- Changes from version 0.19.5: + + 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. + +------------------------------------------------------------------- +Wed Nov 26 00:00:00 UTC 2014 - malcolmlewis@opensuse.org + +- Update spec file to add lame support. + +------------------------------------------------------------------- +Sat Nov 22 00:00:00 UTC 2014 - malcolmlewis@opensuse.org + +-Update to version 0.19.4: + + 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). +- Changes from version 0.19.3: + + 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. +- Changes from version 0.19.2: + + 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. +- Changes from version 0.19.1: + + Input: + * Mms: fix deadlock bug. + + Playlist: + * Extm3u: fix Extended M3U detection. + * M3u, extm3u, cue: fix truncated lines. + + Add missing file systemd/mpd.socket to tarball. +- Changes from version 0.19: + + 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". + + 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. +- Rebase mpd-sndfile-vorbis.patch and mpd-mpdconf_suse.patch. +- Drop mpd-wavpack.patch and mpd-0.17.4-ffmpeg2.patch as now code + has been re-written. +- Drop configure options for soup, lastfm and mvp and respective + build requirements. +- Enable boost and libmpdclient option at configure time and add + respective build requirements. +- Add libicu-devel to build requirements. +- Disable libwrap configure option as build fails. +- Disable other unused plugins and encoders. +- Clean up spec file for systemd. + +------------------------------------------------------------------- +Fri Nov 8 00:00:00 UTC 2013 - obs@botter.cc + +- add Type=forking to mpd.service. + +------------------------------------------------------------------- +Fri Sep 20 00:00:00 UTC 2013 - obs@botter.cc + +- Update to 0.17.5: + * protocol: + - fix "playlistadd" with URI + - fix "move" relative to current when there is no current song + * decoder: + - ffmpeg: support "application/flv" + - mikmod: adapt to libmikmod 3.2 + * configure.ac: + - detect system "ar" +- use gentoo's patch for compiling with ffmpeg 2.x +- add own service file (PM-79) + +------------------------------------------------------------------- +Tue Jun 18 00:00:00 UTC 2013 - fisiu@opensuse.org + +- Update to 0.17.4: + * protocol: + - allow to omit END in ranges (START:END) + - don't emit IDLE_PLAYER before audio format is known + * decoder: + - ffmpeg: support float planar audio (ffmpeg 1.1) + - ffmpeg: fix AVFrame allocation + * player: + - implement missing "idle" events on output errors + * clock: fix build failure + +------------------------------------------------------------------- +Thu Mar 28 00:00:00 UTC 2013 - fisiu@opensuse.org + +- Update to 0.17.3: + * output: + - osx: fix pops during playback + - recorder: fix I/O error check + - shout: fix memory leak in error handler + - recorder, shout: support Ogg packets that span more than one page + * decoder: + - ffmpeg: ignore negative time stamps + - ffmpeg: support planar audio + * playlist: + - cue: fix memory leak + - cue: fix CUE files with only one track +- Drop mpd-systemd_require_network_first.patch: fixed upstream. + +------------------------------------------------------------------- +Thu Feb 14 00:00:00 UTC 2013 - zaitor@opensuse.org + +- Add explicit pkgconfig(bzip2) BuildRequires for 12.3 and newer. + +------------------------------------------------------------------- +Fri Oct 19 00:00:00 UTC 2012 - pascal.bleser@opensuse.org + +- fix systemd unit script to require network to be started prior to + mpd, thanks to Jean Delvare for the patch +- update to 0.17.2: + * protocol: + - fix crash in local file check + * decoder: + - fluidsynth: remove throttle (requires libfluidsynth 1.1) + - fluidsynth: stop playback at end of file + - fluidsynth: check MIDI file format while scanning + - fluidsynth: add sample rate setting + - wavpack: support all APEv2 tags + * output: + - httpd: use monotonic clock, avoid hiccups after system clock adjustment + - httpd: fix throttling bug after resuming playback + * playlist: + - cue: map "PERFORMER" to "artist" or "album artist" + * mapper: fix non-UTF8 music directory name + * mapper: fix potential crash in file permission check + * playlist: fix use-after-free bug + * playlist: fix memory leak + * state_file: save song priorities + * player: disable cross-fading in "single" mode + * update: fix unsafe readlink() usage +- changes from 0.17.1: + * protocol: + - require appropriate permissions for searchadd{,pl} + * tags: + - aiff: support the AIFC format + - ape: check for ID3 if no usable APE tag was found + * playlist: + - cue: support file types "MP3", "AIFF" + * output: + - fix noisy playback with conversion and software volume + +------------------------------------------------------------------- +Tue Jul 17 00:00:00 UTC 2012 - pascal.bleser@opensuse.org + +- update to 0.17: + * protocol: + - support client-to-client communication + - "update" and "rescan" need only "CONTROL" permission + - new command "seekcur" for simpler seeking within current song + - new command "config" dumps location of music directory + - add range parameter to command "load" + - print extra "playlist" object for embedded CUE sheets + - new commands "searchadd", "searchaddpl" + * input: + - cdio_paranoia: new input plugin to play audio CDs + - curl: enable CURLOPT_NETRC + - curl: non-blocking I/O + - soup: new input plugin based on libsoup + * tags: + - RVA2: support separate album/track replay gain + * decoder: + - mpg123: implement seeking + - ffmpeg: drop support for pre-0.5 ffmpeg + - ffmpeg: support WebM + - oggflac: delete this obsolete plugin + - dsdiff: new decoder plugin + * output: + - alsa: support DSD-over-USB (dCS suggested standard) + - httpd: support for streaming to a DLNA client + - openal: improve buffer cancellation + - shout: add possibility to set url + - roar: new output plugin for RoarAudio + * mixer: + - alsa: listen for external volume changes + * playlist: + - allow references to songs outside the music directory + - new CUE parser, without libcue + - soundcloud: new plugin for accessing soundcloud.com + * state_file: add option "restore_paused" + * cue: show CUE track numbers + * allow port specification in "bind_to_address" settings + * support floating point samples + * systemd socket activation + * improve --version output + +------------------------------------------------------------------- +Sun May 6 00:00:00 UTC 2012 - fisiu@opensuse.org + +- Update to 0.16:8: + * fix for libsamplerate assertion failure + * decoder: + - vorbis (and others): fix seeking at startup + - ffmpeg: read the "year" tag + * encoder: + - vorbis: generate end-of-stream packet before tag + - vorbis: generate end-of-stream packet when playback ends + * output: + - jack: check for connection failure before starting playback + - jack: workaround for libjack1 crash bug + - osx: fix stuttering due to buffering bug + * fix endless loop in text file reader + * update: skip symlinks in path that is to be updated +- spec-cleaner'ed spec file + +------------------------------------------------------------------- +Mon Feb 6 00:00:00 UTC 2012 - pascal.bleser@opensuse.org + +- update to 0.16.7: + * input: + - ffmpeg: support libavformat 0.7 + * decoder: + - ffmpeg: support libavformat 0.8, libavcodec 0.9 + - ffmpeg: support all MPD tags + * output: + - httpd: fix excessive buffering + - openal: force 16 bit playback, as 8 bit doesn't work + * fix moving after current song +- add mpd-user.conf to doc files, copy to ~/.mpd/mpd.conf for user centric + setup +- add tcpd and mkisofs support + +------------------------------------------------------------------- +Thu Dec 22 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.6> + +------------------------------------------------------------------- +Sun Oct 23 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.5> + +------------------------------------------------------------------- +Fri Oct 7 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.4> + +------------------------------------------------------------------- +Fri Aug 5 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.3> + +------------------------------------------------------------------- +Thu Mar 24 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.2> + +------------------------------------------------------------------- +Fri Jan 14 00:00:00 UTC 2011 - detlef@links2linux.de + +- new upstream version <0.16.1> + +------------------------------------------------------------------- +Sun Dec 12 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.16> + +------------------------------------------------------------------- +Sat Nov 13 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.15> + +------------------------------------------------------------------- +Wed Oct 13 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.13> + * output_thread: fix race condition after CANCEL command + * output: + - httpd: fix random data in stream title + - httpd: MIME type audio/ogg for Ogg Vorbis + * input: + - rewind: update MIME not only once + - rewind: enable for MMS + +------------------------------------------------------------------- +Wed Jul 21 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.12> + * input: + - curl: remove assertion after curl_multi_fdset() + * tags: + - rva2: set "gain", not "peak" + * decoders: + - wildmidi: support version 0.2.3 + +------------------------------------------------------------------- +Fri Jul 16 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.11> + * tags: + - ape: support album artist + * decoders: + - mp4ff: support tags "album artist", "albumartist", "band" + - mikmod: fix memory leak + - vorbis: handle uri==NULL + - ffmpeg: fix memory leak + - ffmpeg: free AVFormatContext on error + - ffmpeg: read more metadata + - ffmpeg: fix libavformat 0.6 by using av_open_input_stream() + * playlist: emit IDLE_OPTIONS when resetting single mode + * listen: make get_remote_uid() work on BSD + +------------------------------------------------------------------- +Mon May 31 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.10> + * input: + - mms: fix memory leak in error handler + - mms: initialize the "eof" attribute + * decoders: + - mad: properly calculate ID3 size without libid3tag + +------------------------------------------------------------------- +Tue Mar 23 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.9> + * decoders: + - mad: fix crash when seeking at end of song + - mpcdec: fix negative shift on fixed-point samples + - mpcdec: fix replay gain formula with v8 + * playlist: fix single+repeat in random mode + * player: postpone song tags during cross-fade + +------------------------------------------------------------------- +Wed Jan 27 00:00:00 UTC 2010 - detlef@links2linux.de + +- new upstream version <0.15.8> + * input: + - curl: allow rewinding with Icy-Metadata + * decoders: + - ffmpeg, flac, vorbis: added more flac/vorbis MIME types + - ffmpeg: enabled libavformat's file name extension detection + * dbUtils: return empty tag value only if no value was found + * decoder_thread: fix CUE track playback + * queue: don't repeat current song in consume mode + +------------------------------------------------------------------- +Tue Jan 12 00:00:00 UTC 2010 - detlef@links2linux.de + +- fix init script + +------------------------------------------------------------------- +Tue Dec 29 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.7> + * archive: + - close archive when stream is closed + - iso, zip: fixed memory leak in destructor + * input: + - file: don't fall back to parent directory + - archive: fixed memory leak in error handler + * tags: + - id3: fix ID3v1 charset conversion + * decoders: + - eliminate jitter after seek failure + - ffmpeg: don't try to force stereo + - wavpack: allow fine-grained seeking + * mixer: explicitly close all mixers on shutdown + * mapper: fix memory leak when playlist_directory is not set + * mapper: apply filesystem_charset to playlists + * command: verify playlist name in the "rm" command + * database: return multiple tag values per song + +------------------------------------------------------------------- +Fri Nov 20 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.6> + * input: + - lastfm: fixed variable name in GLib<2.16 code path + - input/mms: require libmms 0.4 + * archive: + - zzip: require libzzip 0.13 + * tags: + - id3: allow 4 MB RIFF/AIFF tags + * decoders: + - ffmpeg: convert metadata + - ffmpeg: align the output buffer + - oggflac: rewind stream after FLAC detection + - flac: fixed CUE seeking range check + - flac: fixed NULL pointer dereference in CUE code + * output_thread: check again if output is open on PAUSE + * update: delete ignored symlinks from database + * database: increased maximum line length to 32 kB + +------------------------------------------------------------------- +Wed Oct 21 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.5> + * input: + - curl: don't abort if a packet has only metadata + - curl: fixed endless loop during buffering + * tags: + - riff, aiff: fixed "limited range" gcc warning + * decoders: + - flac: fixed two memory leaks in the CUE tag loader + * decoder_thread: change the fallback decoder name to "mad" + * output_thread: check again if output is open on CANCEL + * update: fixed memory leak during container scan + +------------------------------------------------------------------- +Tue Sep 1 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.3> + * Document nextsong and nextsongid + * update: don't re-read unchanged container files + * output_init: initialize the "pause" flag + * decoder/vorbis: faster tag scanning with ov_test_callback() + +------------------------------------------------------------------- +Tue Aug 18 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.2> + * tags: + - ape: check the tag size (fixes integer underflow) + - ape: added protection against large memory allocations + * decoders: + - mad: skip ID3 frames when libid3tag is disabled + - flac: parse all replaygain tags + - flac: don't allocate cuesheet twice (memleak) + * output: + - shout: fixed stuck pause bug + - shout: minimize the unpause latency + * update: free empty path string (memleak) + * update: free temporary string in container scan (memleak) + * directory: free empty directories after removing them (memleak) + +------------------------------------------------------------------- +Sat Jul 18 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.15.1> + +------------------------------------------------------------------- +Sat Feb 14 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.14.2> + * Modify version string to post-release version 0.14.2~git + * mpd version 0.14.2 + * ffmeg: added support for the tags comment, genre, year + * mikmod: call MikMod_Exit() only in the finish() method + * jack: register ports before activating clients + * jack: allocate ring buffers before connecting + * jack: clear "shutdown" flag on reconnect + * jack: reduced sleep time to 1ms + * mapper: remove trailing slashes from music_directory + * mapper: ignore duplicate slashes in playlists + * wavpack: pass NULL if the .wvc file fails to open + * player_thread: set player error when output device fails + * shout_mp3: free the lame_data struct on exit + * shout_mp3: call lame_close() in clear_encoder() method + * ffmpeg: print codec name + * ffmpeg: don't warn of empty packet output + * ffmpeg: check if the time stamp is valid + * ffmpeg: fixed seek integer overflow + * shout: removed shout_data.shout_error + * shout: removed shout_data.tag_to_send + * shout: switch to blocking mode + * shout: use libshout's synchronization + * shout: don't postpone metadata + * shout: clear buffer before calling the encoder + * configure.ac: define HAVE_FFMPEG after all checks + * ffmpeg: added TTA support + * aac: fix stream metadata + * update: recursively purge deleted directories + * update: free deleted subdirectories + * ffmpeg: enable WAV streaming + +------------------------------------------------------------------- +Mon Jan 19 00:00:00 UTC 2009 - detlef@links2linux.de + +- new upstream version <0.14.1> + * decoders: + - mp4: support the writer/composer tag + - id3: strip leading and trailing whitespace from ID3 tags + - oggvorbis: fix tremor support + - oggvorbis: disable seeking on remote files + * audio outputs: + - jack: allocate default port names (fixes a crash) + * update: + - refresh stats after update + - save the database even if it is empty + * input_curl: + - use select() to eliminate busy loop during connect + - honour http_proxy_* config directives + - fix assertion failure on "connection refused" + - fix assertion failure with empty HTTP responses + * corrected the sample calculation in the fallback resampler + * log: automatically append newline + * fix setenv() conflict on Solaris + * configure.ac: check for pkg-config before using it + * fix minor memory leak in decoder_tag() + * fix cross-fading bug: it used to play some chunks of the new song twice + * playlist + - fix assertion failure during playlist load + - implement Fisher-Yates shuffle properly + - safely search the playlist for deleted song + * use custom PRNG for volume dithering (speedup) + * detect libid3tag without pkg-config + +------------------------------------------------------------------- +Sat Dec 27 00:00:00 UTC 2008 - detlef@links2linux.de + +- new upstream version <0.14> + +------------------------------------------------------------------- +Fri Jun 20 00:00:00 UTC 2008 - detlef@links2linux.de + +- new upstream version <0.13.2> + +------------------------------------------------------------------- +Wed Jan 30 00:00:00 UTC 2008 - detlef@links2linux.de + +- new upstream version <0.13.1> + +------------------------------------------------------------------- +Fri Jul 13 00:00:00 UTC 2007 - detlef@links2linux.de + +- add BuildRequires: libmikmod +- add BuildRequires: libmikmod-devel for > 1020 + +------------------------------------------------------------------- +Tue May 29 00:00:00 UTC 2007 - detlef@links2linux.de + +- new upstream version <0.13.0> + +------------------------------------------------------------------- +Mon Mar 26 00:00:00 UTC 2007 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Mon Nov 13 00:00:00 UTC 2006 - detlef@links2linux.de + +- no resmgr for 10.2, use group audio + +------------------------------------------------------------------- +Fri Oct 13 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Thu Sep 28 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Mon Sep 25 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Sat Sep 2 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Sun Aug 20 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Fri Aug 11 00:00:00 UTC 2006 - detlef@links2linux.de + +- new upstream version + +------------------------------------------------------------------- +Fri Jul 28 00:00:00 UTC 2006 - detlef@links2linux.de + +- new SVN-Snapshot + +------------------------------------------------------------------- +Mon Dec 5 00:00:00 UTC 2005 - malakhanov@gmx.de + +- finally force mpd to work with resmgr + +------------------------------------------------------------------- +Mon Jul 11 00:00:00 UTC 2005 - malakhanov@gmx.de + +- modified for x64 build + +------------------------------------------------------------------- +Mon Mar 22 00:00:00 UTC 2004 - malakhanov@gmx.de + +- modified for SUSE/Packman. Init script courtesy of Davide Lucchesi , 2003 + +------------------------------------------------------------------- +Wed Mar 10 00:00:00 UTC 2004 - gbpeck@sbcglobal.net + +- Rebuild for official release + +------------------------------------------------------------------- +Mon Mar 8 00:00:00 UTC 2004 - gbpeck@sbcglobal.net + +- Version 0.10.1 + +------------------------------------------------------------------- +Wed Mar 3 00:00:00 UTC 2004 - gbpeck@sbcglobal.net + +- Version 0.10.0 +- Add audiofile-devel builddep (for wav support) +- Add AUTHORS to docs + +------------------------------------------------------------------- +Fri Feb 6 00:00:00 UTC 2004 - gbpeck@sbcglobal.net + +- Rebuild with mach + +------------------------------------------------------------------- +Wed Jan 21 00:00:00 UTC 2004 - gbpeck@sbcglobal.net + +- Version 0.9.4 + +------------------------------------------------------------------- +Thu Oct 30 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Version 0.9.3 + +------------------------------------------------------------------- +Tue Oct 7 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Version 0.9.2 + +------------------------------------------------------------------- +Tue Sep 30 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Version 0.9.1 +- Add BuildRequires on alsa-lib-devel +- Add versioned Requires on libao and libao-devel (from the debian + control file) + +------------------------------------------------------------------- +Thu Sep 4 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Version 0.8.7 + +------------------------------------------------------------------- +Mon Aug 18 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Version 0.8.5 + +------------------------------------------------------------------- +Thu Aug 14 00:00:00 UTC 2003 - gbpeck@sbcglobal.net + +- Initial build + diff --git a/mpd.spec b/mpd.spec new file mode 100644 index 0000000..1eecd58 --- /dev/null +++ b/mpd.spec @@ -0,0 +1,314 @@ +# +# spec file for package mpd +# +# Copyright (c) 2012 Pascal Bleser +# Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%bcond_with faad +%bcond_with lame +%bcond_with mad +%bcond_with twolame + +%if !%{defined _userunitdir} +%define _userunitdir /usr/lib/systemd/user +%endif +Name: mpd +Version: 0.20.9 +Release: 0 +License: GPL-3.0+ +Summary: Music Player Daemon +Url: http://www.musicpd.org/ +Group: Productivity/Multimedia/Sound/Players +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: http://www.musicpd.org/download/mpd/0.20/mpd-%{version}.tar.xz +Source2: README.%{name} +Source3: mpd-user.conf +# PATCH-FEATURE-OPENSUSE mpd-mpdconf_suse.patch -- +Patch0: %{name}-mpdconf_suse.patch +Patch1: mpd-configh.patch +BuildRequires: automake +BuildRequires: autoconf +BuildRequires: pkg-config +%if 0%{?suse_version} > 1320 +BuildRequires: libboost_headers-devel +%else +BuildRequires: boost-devel +%endif +#uildRequires: cdrkit-cdrtools-compat +%if 0%{?suse_version} > 1320 +BuildRequires: gcc +BuildRequires: gcc-c++ +%else +# mpd requires C++14 support. +%if 0%{?sle_version} == 120100 +# Leap 42.1 +BuildRequires: gcc5 +BuildRequires: gcc5-c++ +%else +# Leap 42.2+ / SLE12SP2Backports +BuildRequires: gcc6 +BuildRequires: gcc6-c++ +%endif +%endif +BuildRequires: libcue-devel +BuildRequires: libmikmod-devel +# MPD_ENABLE_AUTO_LIB +BuildRequires: pkgconfig(bzip2) +%if %{with faad} +BuildRequires: faad2-devel +%endif +%if %{with lame} +BuildRequires: libmp3lame-devel +%endif +# MPD_ENABLE_AUTO_PKG +BuildRequires: pkgconfig(alsa) >= 0.9.0 +BuildRequires: pkgconfig(ao) +BuildRequires: pkgconfig(audiofile) >= 0.3 +BuildRequires: pkgconfig(avahi-client) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(flac) >= 1.2 +BuildRequires: pkgconfig(fluidsynth) >= 1.1 +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(id3tag) +BuildRequires: pkgconfig(jack) >= 0.100 +BuildRequires: pkgconfig(libavcodec) >= 53.25 +BuildRequires: pkgconfig(libavformat) >= 53.17 +BuildRequires: pkgconfig(libavutil) >= 51.17 +BuildRequires: pkgconfig(libcdio_paranoia) +BuildRequires: pkgconfig(libcurl) >= 7.18 +BuildRequires: pkgconfig(libgme) +BuildRequires: pkgconfig(libiso9660) +BuildRequires: pkgconfig(libnfs) +BuildRequires: pkgconfig(libmms) >= 0.4 +BuildRequires: pkgconfig(libmodplug) +BuildRequires: pkgconfig(libmpdclient) >= 2.2 +BuildRequires: pkgconfig(libmpg123) +BuildRequires: pkgconfig(libpulse) >= 0.9.16 +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libupnp) +%if %{with mad} +BuildRequires: pkgconfig(mad) +%endif +BuildRequires: pkgconfig(ogg) +BuildRequires: pkgconfig(openal) +BuildRequires: pkgconfig(opus) +BuildRequires: pkgconfig(samplerate) >= 0.1.3 +BuildRequires: pkgconfig(shine) >= 3.1 +BuildRequires: pkgconfig(shout) +BuildRequires: pkgconfig(smbclient) >= 0.2 +BuildRequires: pkgconfig(sndfile) +BuildRequires: pkgconfig(soxr) +BuildRequires: pkgconfig(sqlite3) >= 3.7.3 +%if %{with twolame} +BuildRequires: pkgconfig(twolame) +%endif +BuildRequires: pkgconfig(vorbis) +BuildRequires: pkgconfig(vorbisenc) +BuildRequires: pkgconfig(wavpack) +# soundcloud +#uildRequires: pkgconfig(yajl) >= 2.0 +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(zziplib) >= 0.13 +# +%if %{suse_version} > 1320 +BuildRequires: group(audio) +Requires(pre): group(audio) +%endif +Requires(pre): pwdutils +Requires(pre): shadow +Requires(pre): %fillup_prereq +%{?systemd_requires} + +%description +A daemon for playing music (mp3, ogg vorbis, flac, and wav). Music is +played through the server's audio device. The daemon stores info +about all available music, and this info can be easily searched and +retrieved. Player control, info retrieval, and playlist management +can all be managed remotely. There a bunch of clients to control mpd: +for Gnome, KDE, console and Apache (PHP). + +Please read README.mpd how to configure it. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 + +%build +%if 0%{?suse_version} > 1320 +export CC=gcc +export CXX=g++ +%else +# mpd requires C++14 support. +%if 0%{?sle_version} == 120100 +# Leap 42.1 +export CC=gcc-5 +export CXX=g++-5 +%else +# Leap 42.2+ / SLE12SP2Backports +export CC=gcc-6 +export CXX=g++-6 +%endif +%endif +#Need to run as makefile.in built with later version of automake. +[ -x autogen.sh ] && NOCONFIGURE=1 ./autogen.sh +%configure \ + --disable-sidplay \ + --disable-aac \ + --disable-mad \ + --disable-lame-encoder \ + --disable-twolame-encoder \ + \ + --enable-syslog \ + --enable-eventfd \ + --enable-signalfd \ + --enable-poll \ + --enable-epoll \ + --enable-database \ + --enable-daemon \ + --enable-debug \ + --disable-documentation \ + --enable-dsd \ + --enable-fifo \ + --enable-httpd-output \ + --enable-inotify \ + --enable-ipv6 \ + --enable-largefile \ + --disable-soundcloud \ + --disable-libwrap \ + --enable-mikmod \ + --enable-openal \ + --disable-oss \ + --disable-osx \ + --enable-pipe-output \ + --enable-recorder-output \ + --enable-shout \ + --enable-solaris-output \ + --enable-tcp \ + --disable-test \ + --enable-un \ + --enable-vorbis \ + --enable-wave-encoder \ + --disable-werror \ + --enable-icu \ + --enable-iconv \ + --enable-systemd-daemon \ + --enable-libmpdclient \ + --enable-expat \ + --enable-id3 \ + --enable-sqlite \ + --enable-lsr \ + --enable-soxr \ + --enable-curl \ + --enable-smbclient \ + --enable-nfs \ + --enable-cdio-paranoia \ + --enable-mms \ + --enable-webdav \ + --enable-cue \ + --enable-neighbor-plugins \ + --enable-iso9660 \ + --enable-zlib \ + --enable-bzip2 \ + --enable-upnp \ + --enable-zzip \ + --disable-adplug \ + --enable-audiofile \ +%if %{with faad} + --enable-aac \ +%endif + --enable-ffmpeg \ + --enable-flac \ + --enable-fluidsynth \ + --enable-gme \ +%if %{with mad} + --enable-mad \ +%endif + --enable-mpg123 \ + --enable-modplug \ + --enable-opus \ + --enable-sndfile \ + --disable-mpc \ + --enable-wavpack \ + --disable-wildmidi \ + --enable-shine-encoder \ + --enable-vorbis-encoder \ +%if %{with lame} + --enable-lame-encoder \ +%endif +%if %{with twolame} + --enable-twolame-encoder \ +%endif + --enable-alsa \ + --disable-roar \ + --disable-sndio \ + --disable-haiku \ + --enable-jack \ + --enable-ao \ + --enable-pulse \ + \ + --with-boost=yes \ + --enable-systemd-daemon \ + --with-systemdsystemunitdir=%_unitdir \ + --with-systemduserunitdir=%_userunitdir +make %{?_smp_mflags} + +%install +%make_install docdir=%{_docdir}/%{name} +find %{buildroot} -ls +# missing dirs +install -d \ + %{buildroot}%{_localstatedir}/lib/%{name}/playlists \ + %{buildroot}%{_sbindir} +# additional docs +install -m 0644 %{SOURCE2} README.mpd +# copy example mpd.conf +install -Dm0644 %{buildroot}%{_docdir}/%{name}/mpdconf.example %{buildroot}/etc/mpd.conf +cp -a "%{SOURCE3}" "%{buildroot}%{_docdir}/%{name}/" +ln -s service %{buildroot}%{_sbindir}/rcmpd + +%pre +# add mpd user only when installing first time +getent passwd mpd >/dev/null || useradd -r -g audio -d /var/lib/mpd -s /sbin/nologin -c "user for mpd" mpd +exit 0 +%service_add_pre mpd.service + +%post +%service_add_post mpd.service + +%preun +%service_del_preun mpd.service + +%postun +%service_del_postun mpd.service + +%files +%defattr(-,root,root) +%doc AUTHORS COPYING NEWS README.md README.mpd +%config(noreplace) /etc/%{name}.conf +%{_bindir}/%{name} +%{_sbindir}/rcmpd +%attr(0755,mpd,audio) %{_localstatedir}/lib/%{name} +%{_mandir}/man1/%{name}.1* +%{_mandir}/man5/%{name}.conf.5* +%dir %{_docdir}/%{name} +%doc %{_docdir}/%{name} +%{_unitdir}/mpd.service +%{_unitdir}/mpd.socket +%{_userunitdir}/mpd.service + +%changelog