From 4351e719a2ed675d7e6bab1e9cc4fd4b934332b5 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Sun, 12 Dec 2010 23:25:40 +0000 Subject: [PATCH] - up to 0.16 - update sample conf file - error_file was removed - move mpdstate to /var/lib/mpd as it should never be in /var/run anyway - BR: OpenAL-devel, twolame-devel - enable some more features - rel 0.1 (tests needed) Changed files: mpd.conf -> 1.3 mpd.spec -> 1.56 --- mpd.conf | 496 ++++++++++++++++++++++++++++++++++--------------------- mpd.spec | 31 ++-- 2 files changed, 330 insertions(+), 197 deletions(-) diff --git a/mpd.conf b/mpd.conf index f556580..5ac9a0c 100644 --- a/mpd.conf +++ b/mpd.conf @@ -1,282 +1,408 @@ -# # Base configuration file for MPD on PLD-linux # # Based on the example configuration file for MPD # See the mpd.conf man page for a more detailed description of each parameter. - -######################## REQUIRED PATHS ######################## -# XXX Is there a better solution to music_directory? IMHO this is computer-specific. (uzsolt) -music_directory "/music" -playlist_directory "/var/lib/mpd/playlists" -db_file "/var/lib/mpd/mpd.db" -log_file "/var/log/mpd/mpd.log" -error_file "/var/log/mpd/mpd.error" -################################################################ - - -######################## OPTIONAL PATHS ######################## # -# If you wish to use mpd --kill to stop MPD, then you must -# specify a file here in which to store MPD's process ID. +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. # -pid_file "/var/run/mpd/mpd.pid" +music_directory "/music" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# 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 "/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 +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +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 +# settings. # -# If specified, MPD will save its current state (playlist, -# current song, playing/paused, etc.) at exit. This will be -# used to restore the session the next time it is run. +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog, otherwise logging is disabled. # -state_file "/var/run/mpd/mpdstate" +log_file "/var/log/mpd/mpd.log" # -################################################################ +# 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 "/var/run/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 "/var/lib/mpd/mpdstate" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +sticker_file "/var/lib/mpd/sticker.sql" +# +############################################################################### -######################## DAEMON OPTIONS ######################## +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +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. # -# If started as root, MPD will drop root privileges and run as -# this user instead. Otherwise, MPD will run as the user it was -# started by. If left unspecified, MPD will not drop root -# privileges at all (not recommended). +#group "nogroup" # -user "mpd" +# 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. +# This setting can deny access to control of the daemon. # -# The address and port to listen on. +# For network +#bind_to_address "any" # -#bind_to_address "any" -#port "6600" +# And for Unix Socket +#bind_to_address "~/.mpd/socket" # -# Controls the amount of information that is logged. Can be -# "default", "secure", or "verbose". +# This setting is the TCP port that is desired for the daemon to get assigned +# to. # -#log_level "default" +#port "6600" # -################################################################ +# This setting controls the type of information which is logged. Available +# setting arguments are "default", "secure" or "verbose". The "verbose" setting +# argument is recommended for troubleshooting, though can quickly stretch +# available resources on limited hardware storage. +# +#log_level "default" +# +# If you have a problem with your MP3s ending abruptly it is recommended that +# you set this argument to "no" to attempt to fix the problem. If this solves +# the problem, it is highly recommended to fix the MP3 files with vbrfix +# (available from ), at which +# point gapless MP3 playback can be enabled. +# +#gapless_mp3_playback "yes" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. Optionally, 'comment' can be added to this +# list. +# +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### -########################### ZEROCONF ########################### +# Symbolic link behavior ###################################################### # -# If yes, service information will be published with Zeroconf. +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. # -#zeroconf_enabled "yes" +#follow_outside_symlinks "yes" # -# The service name to publish. This name should be unique on -# your local network. +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. # -#zeroconf_name "Music Player" +#follow_inside_symlinks "yes" # -################################################################ +############################################################################### -########################## PERMISSIONS ######################### +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" # -# MPD can require that users specify a password before using it. -# You may specify one ore more here, along with what users who -# log in with that password are allowed to do. +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. +# +#zeroconf_name "Music Player" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# can setting can be specified multiple times for different password profiles. # #password "password@read,add,control,admin" # -# Specifies what permissions a user who has not logged in with a -# password has. By default, all users have full access to MPD -# if no password is specified above, or no access if one or -# more passwords are specified. +# This setting specifies the permissions a user has who has not yet logged in. # #default_permissions "read,add,control,admin" # -################################################################ +############################################################################### -########################## AUDIO OUTPUT ######################## +# Input ####################################################################### # -# MPD supports many audio output types, as well as playing -# through multiple audio outputs at the same time. You can -# specify one or more here. If you don't specify any, MPD will -# automatically scan for a usable audio output. + +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + # -# See -# for examples of other audio outputs. +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# See for examples of +# other audio outputs. # # An example of an ALSA output: # audio_output { - type "alsa" - name "My ALSA Device" -# device "hw:0,0" # optional -# format "44100:16:2" # optional + type "alsa" + name "My ALSA Device" +## device "hw:0,0" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional } # # An example of an OSS output: # #audio_output { -# type "oss" -# name "My OSS Device" -# device "/dev/dsp" # optional -# format "44100:16:2" # optional +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { -# type "shout" -# name "My Shout Stream" -# host "localhost" -# port "8000" -# mount "/mpd.ogg" -# password "hackme" -# quality "5.0" -# bitrate "128" -# format "44100:16:1" -# user "source" # optional -# description "My Stream Description" # optional -# genre "jazz" # optional -# public "no" # optional +# type "shout" +# encoding "ogg" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional #} # -# Force all decoded audio to be converted to this format before -# being passed to the audio outputs. -# -#audio_output_format "44100:16:2" -# -# If MPD has been compiled with libsamplerate support, this -# specifies the sample rate converter to use. Possible -# values can be found in the mpd.conf man page or the -# libsamplerate documentation. +# An example of a recorder output: # -#samplerate_converter "Fastest Sinc Interpolator" -# -################################################################ - - -############################# MIXER ############################ -# -# MPD needs to know what mixer settings to change when you -# adjust the volume. If you don't specify one here, MPD will -# pick one based on which ones it was compiled with support for. -# -# An example for controlling an ALSA mixer: +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} # -# XXX I hope that this is good - maybe system-specific? (uzsolt) -mixer_type "alsa" -mixer_device "default" -mixer_control "PCM" +# An example of a httpd output (built-in HTTP streaming server): # -# An example for controlling an OSS mixer: +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # optional, vorbis or lame +# port "8000" +# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +# max_clients "0" # optional 0=no limit +#} # -#mixer_type "oss" -#mixer_device "/dev/mixer" -#mixer_control "PCM" +# An example of a pulseaudio output (streaming to a remote pulseaudio server) # -# If you want MPD to adjust the volume of audio sent to the -# audio outputs, you can tell it to use the software mixer: +#audio_output { +# type "pulse" +# name "My Pulse Output" +## server "remote_server" # optional +## sink "remote_server_sink" # optional +#} # -#mixer_type "software" +## Example "pipe" output: # -################################################################ - - -######################### NORMALIZATION ######################## +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} # -# Specifies the type of ReplayGain to use. Can be "album" or -# "track". ReplayGain will not be used if not specified. See -# for more details. +## An example of a null output (for no audio output): # -#replaygain "album" +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} # -# Sets the pre-amp used for files that have ReplayGain tags. +# This setting will change all decoded audio to be converted to the specified +# format before being passed to the audio outputs. By default, this setting is +# disabled. # -#replaygain_preamp "0" +#audio_output_format "44100:16:2" # -# Enable on the fly volume normalization. This will cause the -# volume of all songs played to be adjusted so that they sound -# as though they are of equal loudness. +# If MPD has been compiled with libsamplerate support, this setting specifies +# the sample rate converter to use. Possible values can be found in the +# mpd.conf man page or the libsamplerate documentation. By default, this is +# setting is disabled. # -#volume_normalization "no" +#samplerate_converter "Fastest Sinc Interpolator" # -################################################################ +############################################################################### -########################### BUFFERING ########################## +# Normalization automatic volume adjustments ################################## # -# The size of the buffer containing decoded audio. You probably -# shouldn't change this. +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album" or "track". See +# for more details. This setting is off by default. # -#audio_buffer_size "2048" +#replaygain "album" # -# How much of the buffer to fill before beginning to play. -# Increase this if you hear skipping when changing songs. +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. # -#buffer_before_play "10%" +#replaygain_preamp "0" # -# Similar options for the HTTP stream buffer. If you hear -# skipping while playing HTTP streams, you may wish to increase -# these. +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. # -#http_buffer_size "128" -#http_prebuffer_size "25%" +#volume_normalization "no" # -################################################################ +############################################################################### -########################### HTTP PROXY ######################### -# -# Specifies the HTTP proxy to use for playing HTTP streams. +# MPD Internal Buffering ###################################################### # -#http_proxy_host "proxy.isp.com" -#http_proxy_port "8080" -#http_proxy_user "user" -#http_proxy_password "password" +# This setting adjusts the size of internal decoded audio buffering. Changing +# this may have undesired effects. Don't change this if you don't know what you +# are doing. # -################################################################ - - -############################# LIMITS ########################### +#audio_buffer_size "2048" # -# These are various limits to prevent MPD from using too many -# resources. You should only change them if they start -# restricting your usage of MPD. +# This setting controls the percentage of the buffer which is filled before +# beginning to play. Increasing this reduces the chance of audio file skipping, +# at the cost of increased time prior to audio playback. # -#connection_timeout "60" -#max_connections "5" -#max_playlist_length "16384" -#max_command_list_size "2048" -#max_output_buffer_size "8192" +#buffer_before_play "10%" # -################################################################ +############################################################################### -###################### CHARACTER ENCODINGS ##################### -# -# If file or directory names do not display correctly, then you -# may need to change this. In most cases it should be either -# "ISO-8859-1" or "UTF-8". You must recreate your database -# after changing this (use mpd --create-db). +# Resource Limitations ######################################################## # -# XXX is this evident in 2008 and PLD? (uzsolt) -filesystem_charset "UTF-8" +# These settings are various limitations to prevent MPD from using too many +# resources. Generally, these settings should be minimized to prevent security +# risks, depending on the operating resources. # -# The encoding that ID3v1 tags should be converted from. +#connection_timeout "60" +#max_connections "10" +#max_playlist_length "16384" +#max_command_list_size "2048" +#max_output_buffer_size "8192" # -#id3v1_encoding "ISO-8859-1" -# -################################################################ +############################################################################### -######################### OTHER OPTIONS ######################## -# -# Try disabling this if you have MP3s which appear to end -# abruptly. If this solves the problem, it is highly -# recommended that you fix your MP3s with vbrfix (available from -# ), at which -# point you can re-enable support for gapless MP3 playback. +# Character Encoding ########################################################## # -#gapless_mp3_playback "yes" +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. # -# Enable this if you wish to use your MPD created playlists in -# other music players. +filesystem_charset "UTF-8" # -#save_absolute_paths_in_playlists "no" +# This setting controls the encoding that ID3v1 tags should be converted from. # -# A list of tag types that MPD will scan for and make available -# to clients. +#id3v1_encoding "ISO-8859-1" # -#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +############################################################################### + + +# SIDPlay decoder ############################################################# +# +# songlength_database: +# Location of your songlengths file, as distributed with the HVSC. +# The sidplay plugin checks this for matching MD5 fingerprints. +# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq +# +# default_songlength: +# This is the default playing time in seconds for songs not in the +# songlength database, or in case you're not using a database. +# A value of 0 means play indefinitely. +# +# filter: +# Turns the SID filter emulation on or off. +# +#decoder { +# plugin "sidplay" +# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" +# default_songlength "120" +# filter "true" +#} # -################################################################ +############################################################################### + diff --git a/mpd.spec b/mpd.spec index 6486178..9210688 100644 --- a/mpd.spec +++ b/mpd.spec @@ -1,4 +1,3 @@ -# TODO: # - add logrotate # # Conditional build: @@ -9,15 +8,16 @@ Summary: Music Player Daemon Summary(hu.UTF-8): Music Player Daemon Summary(pl.UTF-8): Music Player Daemon - demon odtwarzający muzykę Name: mpd -Version: 0.15.15 -Release: 1 +Version: 0.16 +Release: 0.1 License: GPL v2+ Group: Applications/Multimedia Source0: http://downloads.sourceforge.net/musicpd/%{name}-%{version}.tar.bz2 -# Source0-md5: af0972af6237771acc420d2452fa627a +# Source0-md5: 3fc8ccc4488cbaadc1a10f415eada35f Source1: %{name}.conf Source2: %{name}.init URL: http://www.musicpd.org/ +BuildRequires: OpenAL-devel BuildRequires: alsa-lib-devel >= 0.9.0 BuildRequires: audiofile-devel >= 0.1.7 BuildRequires: avahi-glib-devel @@ -28,7 +28,7 @@ BuildRequires: faad2-devel >= 2.6.1-5 BuildRequires: ffmpeg-devel BuildRequires: flac-devel >= 1.1.0 BuildRequires: fluidsynth-devel -BuildRequires: glib2-devel +BuildRequires: glib2-devel >= 2.12 BuildRequires: jack-audio-connection-kit-devel >= 0.4 BuildRequires: lame-libs-devel BuildRequires: libao-devel >= 0.8.3 @@ -47,6 +47,7 @@ BuildRequires: libvorbis-devel BuildRequires: pkgconfig >= 1:0.9.0 %{?with_pulseaudio:BuildRequires: pulseaudio-devel} BuildRequires: sqlite3-devel +BuildRequires: twolame-devel BuildRequires: wavpack-devel BuildRequires: wildmidi-devel BuildRequires: xmlto @@ -94,6 +95,7 @@ frontendów albo często restartujących X. --disable-sidplay \ --enable-alsa \ --enable-ao \ + --enable-audiofile \ --enable-bzip2 \ --enable-cue \ --enable-curl \ @@ -110,12 +112,17 @@ frontendów albo często restartujących X. --enable-mms \ --enable-modplug \ --enable-mvp \ + --enable-openal \ + --enable-pipe-output \ + --enable-recorder-output \ --enable-shout \ --enable-sqlite \ + --enable-twolame-encoder \ --enable-vorbis-encoder \ + --enable-wave-encoder \ --enable-wavpack \ --enable-wildmidi \ - --enable-zip \ + --enable-zzip \ --with-zeroconf=avahi \ --without-tremor %{__make} @@ -132,9 +139,9 @@ install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir} install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/mpd touch $RPM_BUILD_ROOT/var/lib/mpd/mpd.db -touch $RPM_BUILD_ROOT/var/log/mpd/mpd.error +touch $RPM_BUILD_ROOT/var/lib/mpd/mpdstate +touch $RPM_BUILD_ROOT/var/lib/mpd/sticker.sql touch $RPM_BUILD_ROOT/var/log/mpd/mpd.log -touch $RPM_BUILD_ROOT/var/run/mpd/mpdstate rm -rf $RPM_BUILD_ROOT%{_docdir}/mpd @@ -146,7 +153,7 @@ rm -rf $RPM_BUILD_ROOT %useradd -u 204 -r -d /home/services/mpd -s /bin/false -c "Music Player Daemon (MPD) user" -g audio -G mpd mpd %post -for f in mpd.log mpd.error; do +for f in mpd.log; do if [ ! -f /var/log/%{name}/$f ]; then touch /var/log/%{name}/$f chown mpd:mpd /var/log/%{name}/$f @@ -169,7 +176,7 @@ fi %files %defattr(644,root,root,755) -%doc AUTHORS NEWS README doc/mpdconf.example UPGRADING doc/api doc/developer doc/protocol doc/sticker doc/user +%doc AUTHORS NEWS README doc/mpdconf.example UPGRADING doc/api doc/developer doc/protocol doc/user %attr(755,root,root) %{_bindir}/* %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mpd.conf %attr(754,root,root) /etc/rc.d/init.d/mpd @@ -178,8 +185,8 @@ fi %dir %attr(751,root,root) /var/log/%{name} %dir %attr(770,root,mpd) /var/run/%{name} %attr(644,mpd,mpd) %ghost /var/lib/%{name}/mpd.db -%attr(644,mpd,mpd) %ghost /var/log/%{name}/mpd.error +%attr(644,mpd,mpd) %ghost /var/lib/%{name}/mpdstate +%attr(644,mpd,mpd) %ghost /var/lib/%{name}/sticker.sql %attr(644,mpd,mpd) %ghost /var/log/%{name}/mpd.log -%attr(644,mpd,mpd) %ghost /var/run/%{name}/mpdstate %{_mandir}/man1/mpd.1* %{_mandir}/man5/mpd.conf.5* -- 2.44.0