diff --git a/mpd-0.21.26.tar.xz b/mpd-0.21.26.tar.xz deleted file mode 100644 index 5a3aa0b..0000000 --- a/mpd-0.21.26.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9e68221c7a6829ec02f281eb313b2f24182020f5eb65ab22b337e6169ea4eea -size 685396 diff --git a/mpd-0.22.tar.xz b/mpd-0.22.tar.xz new file mode 100644 index 0000000..9d05107 --- /dev/null +++ b/mpd-0.22.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7de742d925d01bf52685cc6cbb31fdeb671e4992a448720897ef706e57e39076 +size 722940 diff --git a/mpd-0.22.tar.xz.sig b/mpd-0.22.tar.xz.sig new file mode 100644 index 0000000..b49f476 Binary files /dev/null and b/mpd-0.22.tar.xz.sig differ diff --git a/mpd-conf.patch b/mpd-conf.patch new file mode 100644 index 0000000..72ecd79 --- /dev/null +++ b/mpd-conf.patch @@ -0,0 +1,263 @@ +diff -Pdpru mpd-0.22.orig/doc/mpdconf.example mpd-0.22/doc/mpdconf.example +--- mpd-0.22.orig/doc/mpdconf.example 2020-09-23 16:26:51.000000000 +0300 ++++ mpd-0.22/doc/mpdconf.example 2020-09-29 14:10:22.923270883 +0300 +@@ -5,7 +5,7 @@ + # 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 ++# 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. +@@ -13,20 +13,20 @@ + #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 ++# 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 "~/.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 ++# 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 "~/.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 + # settings. +@@ -34,25 +34,25 @@ + # The special value "syslog" makes MPD use the local syslog daemon. This + # setting defaults to logging to syslog. + # +-#log_file "~/.mpd/log" ++log_file "/var/log/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 "~/.mpd/pid" ++pid_file "/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 ++# 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. +@@ -82,17 +82,19 @@ + #bind_to_address "any" + # + # And for Unix Socket +-#bind_to_address "~/.mpd/socket" ++#bind_to_address "/run/mpd/socket" + # + # This setting is the TCP port that is desired for the daemon to get assigned + # to. + # + #port "6600" + # ++# This setting controls the type of information which is logged. Available ++# setting arguments are "error", "warning", "notice", "info" or "verbose". + # Suppress all messages below the given threshold. Use "verbose" for + # troubleshooting. + # +-#log_level "notice" ++log_level "warning" + # + # Setting "restore_paused" to "yes" puts MPD into pause mode instead + # of starting playback after startup. +@@ -113,10 +115,10 @@ + # the other supported tags: + #metadata_to_use "+comment" + # +-# This setting enables automatic update of MPD's database when files in ++# This setting enables automatic update of MPD's database when files in + # music_directory are changed. + # +-#auto_update "yes" ++auto_update "no" + # + # Limit the depth of the directories being watched, 0 means only watch + # the music directory itself. There is no limit by default. +@@ -128,7 +130,7 @@ + + # Symbolic link behavior ###################################################### + # +-# If this setting is set to "yes", MPD will discover audio files by following ++# If this setting is set to "yes", MPD will discover audio files by following + # symbolic links outside of the configured music_directory. + # + #follow_outside_symlinks "yes" +@@ -146,7 +148,7 @@ + # If this setting is set to "yes", service information will be published with + # Zeroconf / Avahi. + # +-#zeroconf_enabled "yes" ++zeroconf_enabled "no" + # + # The argument to this setting will be the Zeroconf / Avahi unique name for + # this MPD server on the network. %h will be replaced with the hostname. +@@ -163,7 +165,7 @@ + # + #password "password@read,add,control,admin" + # +-# This setting specifies the permissions a user has who has not yet logged in. ++# This setting specifies the permissions a user has who has not yet logged in. + # + #default_permissions "read,add,control,admin" + # +@@ -194,8 +196,8 @@ input { + + # 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 ++# 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. + # +@@ -203,8 +205,9 @@ input { + # + #audio_output { + # type "alsa" +-# name "My ALSA Device" +-## device "hw:0,0" # optional ++# name "ALSA Device" ++## device "plug:plugequal" # optional ++## mixer_control "Master" # optional + ## mixer_type "hardware" # optional + ## mixer_device "default" # optional + ## mixer_control "PCM" # optional +@@ -232,9 +235,9 @@ input { + # port "8000" + # mount "/mpd.ogg" + # password "hackme" +-# quality "5.0" +-# bitrate "128" +-# format "44100:16:1" ++# quality "6.0" ++# bitrate "192" ++# format "48000:16:2" + ## protocol "icecast2" # optional + ## user "source" # optional + ## description "My Stream Description" # optional +@@ -252,34 +255,34 @@ input { + # 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" ++# quality "6.0" # do not define if bitrate is defined ++## bitrate "192" # do not define if quality is defined ++## format "48000:16:2" #optional + #} + # + # An example of a httpd output (built-in HTTP streaming server): + # + #audio_output { + # type "httpd" +-# name "My HTTP Stream" +-# encoder "vorbis" # optional, vorbis or lame ++# name "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 ++# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 ++# quality "6.0" # do not define if bitrate is defined ++## bitrate "192" # do not define if quality is defined ++## format "48000:16:2" #optional ++## max_clients "0" # optional 0=no limit + #} + # + # An example of a pulseaudio output (streaming to a remote pulseaudio server) + # +-#audio_output { +-# type "pulse" +-# name "My Pulse Output" ++audio_output { ++ type "pulse" ++ name "Pulse Output" + ## server "remote_server" # optional + ## sink "remote_server_sink" # optional + ## media_role "media_role" #optional +-#} ++} + # + # An example of a winmm output (Windows multimedia API). + # +@@ -341,7 +344,7 @@ input { + # 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" ++## format "48000:16:2" # optional + #} + # + ## An example of a null output (for no audio output): +@@ -386,7 +389,7 @@ input { + #replaygain_limit "yes" + # + # 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 ++# result in the volume of all playing audio to be adjusted so the output has + # equal "loudness". This setting is disabled by default. + # + #volume_normalization "no" +@@ -395,9 +398,9 @@ input { + + # Character Encoding ########################################################## + # +-# If file or directory names do not display correctly for your locale then you ++# 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-docs.patch b/mpd-docs.patch deleted file mode 100644 index e821b5d..0000000 --- a/mpd-docs.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: mpd-0.21.1/meson.build -=================================================================== ---- mpd-0.21.1.orig/meson.build -+++ mpd-0.21.1/meson.build -@@ -458,8 +458,23 @@ install_data( - ) - - install_data( -- 'AUTHORS', 'COPYING', 'NEWS', 'README.md', -- install_dir: join_paths(get_option('datadir'), 'doc', meson.project_name()), -+ 'AUTHORS', 'NEWS', 'README.md', 'doc/mpdconf.example', -+ install_dir: join_paths(get_option('datadir'), 'doc', 'packages', meson.project_name()), -+) -+ -+install_data( -+ 'doc/mpdconf.example', rename : 'mpd.conf', -+ install_dir: get_option('sysconfdir'), -+) -+ -+install_data( -+ 'doc/mpd.1', -+ install_dir: join_paths(get_option('mandir'), 'man1'), -+) -+ -+install_data( -+ 'doc/mpd.conf.5', -+ install_dir: join_paths(get_option('mandir'), 'man5'), - ) - - if get_option('documentation') diff --git a/mpd-mpdconf_suse.patch b/mpd-mpdconf_suse.patch deleted file mode 100644 index 570c967..0000000 --- a/mpd-mpdconf_suse.patch +++ /dev/null @@ -1,94 +0,0 @@ -Index: mpd-0.21.9/doc/mpdconf.example -=================================================================== ---- mpd-0.21.9.orig/doc/mpdconf.example -+++ mpd-0.21.9/doc/mpdconf.example -@@ -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. - # --#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. -@@ -275,12 +275,12 @@ input { - # - # An example of a pulseaudio output (streaming to a remote pulseaudio server) - # --#audio_output { --# type "pulse" --# name "My Pulse Output" -+audio_output { -+ type "pulse" -+ name "Pulse Output" - ## server "remote_server" # optional - ## sink "remote_server_sink" # optional --#} -+} - # - # An example of a winmm output (Windows multimedia API). - # -@@ -385,6 +385,6 @@ input { - # 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 index 62e910f..425d318 100644 --- a/mpd-user.conf +++ b/mpd-user.conf @@ -25,13 +25,20 @@ input { } audio_output { -type "pulse" -name "PulseAudio" + type "pulse" + name "PulseAudio" } +#audio_output { +# type "alsa" +# name "ALSA" +## device "plug:plugequal" # optional +## mixer_control "Master" # optional +#} + #audio_output { -#type "jack" -#name "mpd" +# type "jack" +# name "mpd" #} audio_output_format "48000:16:2" @@ -49,5 +56,3 @@ samplerate_converter "Fastest Sinc Interpolator" #max_output_buffer_size "8192" filesystem_charset "UTF-8" -#id3v1_encoding "ISO-8859-1" - diff --git a/mpd.changes b/mpd.changes index 5b7ab55..b7593e6 100644 --- a/mpd.changes +++ b/mpd.changes @@ -1,23 +1,84 @@ +------------------------------------------------------------------- +Wed Sep 30 01:36:05 UTC 2020 - Илья Индиго + +- Refresh spec-file via spec-cleaner and manual optimizations + * Removed unnecessary constructions and comments. + * Add sig-file. + * Add mpd.firewalld file with 6600 and 8000 tcp ports for firewalld. + * Add mpd.tmpfiles.d for /run/mpd directory. + * Enable build documentation and add separate doc package. + * Remove patch mpd-docs.patch (needless). +- Change patch mpd-mpdconf_suse.patch and rename to mpd-conf.patch. + * Change and set log_file option to "/var/log/mpd.log". + * Change and set pid_file and bind_to_address to /run/mpd/* directory. + * Add additional description for log_level option and set to "warning". + * Set auto_update and zeroconf_enabled options to "no". + * Remove prefix "My " in name options alsa and httpd output devices. + * Change option device in alsa_output to "plug:plugequal" for alsaequal. + * Add optional option mixer_control in alsa_output with value "Master". + * Change quality, bitrate and format options in output devices. +- Change mpd-user.conf file: add alsa audio_output and drop id3v1_encoding. +- Update to 0.22 + * Add BuildRequires for cmake, python3-Sphinx and pkgconfig(liburing). + * Increased the minimum version for meson to 0.49.0. + * https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/v0.22/NEWS + * protocol + * "findadd"/"searchadd"/"searchaddpl" support the "sort" and + * "window" parameters + * add command "readpicture" to download embedded pictures + * command "moveoutput" moves an output between partitions + * command "delpartition" deletes a partition + * show partition name in "status" response + * tags: new tags "Grouping" (for ID3 "TIT1"), "Work" and "Conductor" + * input + * curl: support "charset" parameter in URI fragment + * ffmpeg: allow partial reads + * io_uring: new plugin for local files on Linux (using liburing) + * smbclient: close unused SMB/CIFS connections + * database: upnp: drop support for libupnp versions older than 1.8 + * playlist + * cue: integrate contents in database + * flac: support reading CUE sheets from remote FLAC files + * decoder + * ffmpeg: support RTSP + * mad: remove option "gapless", always do gapless + * sidplay: add option "default_genre" + * sidplay: map SID name field to "Album" tag + * sidplay: add support for new song length format with libsidplayfp 2.0 + * vorbis, opus: improve seeking accuracy + * filter + * ffmpeg: new plugin based on FFmpeg's libavfilter library + * hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback + * volume: convert S16 to S24 to preserve quality and reduce dithering noise + * dsd: add integer-only DSD to PCM converter + * output + * jack: add option "auto_destination_ports" + * jack: report error details + * pulse: add option "media_role" + * solaris: support S8 and S32 + * lower the real-time priority from 50 to 40 + * switch to C++17 GCC 8 or clang 5 (or newer) recommended + ------------------------------------------------------------------- Wed Sep 23 06:37:31 UTC 2020 - Dirk Mueller - update to 0.21.26: * database - - inotify: obey ".mpdignore" files + * inotify: obey ".mpdignore" files * output - - osx: fix crash bug - - sles: support floating point samples + * osx: fix crash bug + * sles: support floating point samples * archive - - bzip2: fix crash on corrupt bzip2 file - - bzip2: flush output at end of input file - - iso9660: fix unaligned reads - - iso9660: support seeking - - zzip: fix crash on corrupt ZIP file + * bzip2: fix crash on corrupt bzip2 file + * bzip2: flush output at end of input file + * iso9660: fix unaligned reads + * iso9660: support seeking + * zzip: fix crash on corrupt ZIP file * decoder - - ffmpeg: remove "rtsp://" from the list of supported protocols - - ffmpeg: add "hls+http://" to the list of supported protocols - - opus: support the gain value from the Opus header - - sndfile: fix lost samples at end of file + * ffmpeg: remove "rtsp://" from the list of supported protocols + * ffmpeg: add "hls+http://" to the list of supported protocols + * opus: support the gain value from the Opus header + * sndfile: fix lost samples at end of file * fix "single" mode bug after resuming playback * the default log_level is "default", not "info" @@ -38,21 +99,21 @@ Tue Jul 7 06:32:18 UTC 2020 - Paolo Stivanin * https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/v0.21.25/NEWS * protocol: fix crash when using "rangeid" while playing * database - - simple: automatically scan new mounts - - upnp: fix compatibility with Plex DLNA + * simple: automatically scan new mounts + * upnp: fix compatibility with Plex DLNA * storage - - fix disappearing mounts after mounting twice - - udisks: fix reading ".mpdignore" + * fix disappearing mounts after mounting twice + * udisks: fix reading ".mpdignore" * input - - file: detect premature end of file - - smbclient: don't send credentials to MPD clients + * file: detect premature end of file + * smbclient: don't send credentials to MPD clients * decoder - - opus: apply pre-skip and end trimming - - opus: fix memory leak - - opus: fix crash bug - - vorbis: fix crash bug + * opus: apply pre-skip and end trimming + * opus: fix memory leak + * opus: fix crash bug + * vorbis: fix crash bug * neighbor - - upnp: fix crash during shutdown + * upnp: fix crash during shutdown ------------------------------------------------------------------- Mon Jun 22 10:33:14 UTC 2020 - Илья Индиго diff --git a/mpd.firewalld b/mpd.firewalld new file mode 100644 index 0000000..3fdbaa5 --- /dev/null +++ b/mpd.firewalld @@ -0,0 +1,7 @@ + + + Music Player Daemon + Opens ports for Music Player Daemon + + + diff --git a/mpd.spec b/mpd.spec index 0b3f617..43eb1dd 100644 --- a/mpd.spec +++ b/mpd.spec @@ -16,28 +16,27 @@ # -%define mver 0.21 +%define mver 0.22 %bcond_with faad %bcond_without mpd_iso9660 Name: mpd -Version: 0.21.26 +Version: 0.22 Release: 0 Summary: Music Player Daemon License: GPL-2.0-or-later URL: https://www.musicpd.org -Source0: https://www.musicpd.org/download/mpd/%{mver}/mpd-%{version}.tar.xz -Source1: README.%{name} -Source2: mpd-user.conf -# PATCH-FEATURE-OPENSUSE mpd-mpdconf_suse.patch -- -Patch0: %{name}-mpdconf_suse.patch -# PATCH-FEATURE-OPENSUSE mpd-docs.patch -Patch1: mpd-docs.patch -# PATCH-FIX-OPENSUSE mpd-sndfile.patch -Patch2: mpd-sndfile.patch +Source0: https://www.musicpd.org/download/%{name}/%{mver}/%{name}-%{version}.tar.xz +Source1: https://www.musicpd.org/download/%{name}/%{mver}/%{name}-%{version}.tar.xz.sig +Source2: README.%{name} +Source3: %{name}-user.conf +Source4: %{name}.firewalld +Source5: %{name}.tmpfiles.d +Patch0: %{name}-conf.patch +Patch1: %{name}-sndfile.patch +BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: group(audio) -# BuildRequires: hicolor-icon-theme BuildRequires: libboost_headers-devel BuildRequires: libcue-devel @@ -45,8 +44,9 @@ BuildRequires: libcue-devel BuildRequires: libgcrypt-devel BuildRequires: libmikmod-devel BuildRequires: libmp3lame-devel -BuildRequires: meson >= 0.47.2 +BuildRequires: meson >= 0.49.0 BuildRequires: pkgconfig +BuildRequires: python3-Sphinx # MPD_ENABLE_AUTO_PKG BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(ao) @@ -76,6 +76,7 @@ BuildRequires: pkgconfig(libnfs) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libupnp) +BuildRequires: pkgconfig(liburing) BuildRequires: pkgconfig(mad) BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(openal) @@ -115,14 +116,17 @@ for Gnome, KDE, console and Apache (PHP). Please read README.mpd how to configure it. +%package doc +Summary: Additional Package Documentation +BuildArch: noarch + +%description doc +This package contains optional documentation provided in addition to this package's base documentation. + %prep %autosetup -p1 %build -export CC=gcc -export CXX=g++ -test -x "$(type -p gcc-7)" && export CC=gcc-7 -test -x "$(type -p g++-7)" && export CXX=g++-7 %meson \ -Dsidplay=disabled \ -Dfaad=disabled \ @@ -133,7 +137,8 @@ test -x "$(type -p g++-7)" && export CXX=g++-7 -Depoll=true \ -Ddatabase=true \ -Ddaemon=true \ - -Ddocumentation=false \ + -Ddocumentation=enabled \ + -Dmanpages=true \ -Ddsd=true \ -Dfifo=true \ -Dhttpd=true \ @@ -210,46 +215,56 @@ test -x "$(type -p g++-7)" && export CXX=g++-7 %install %meson_install -# missing dirs -install -d \ - %{buildroot}%{_localstatedir}/lib/%{name}/playlists \ - %{buildroot}%{_sbindir} -# additional docs -install -m 0644 %{SOURCE1} README.mpd -cp -a "%{SOURCE2}" "%{buildroot}%{_docdir}/%{name}/" -ln -s service %{buildroot}%{_sbindir}/rcmpd -rm %{buildroot}%{_userunitdir}/mpd.socket -ln -s ../system/mpd.socket %{buildroot}%{_userunitdir}/mpd.socket +mv %{buildroot}%{_datadir}/doc/%{name}/html . +rm -r %{buildroot}%{_datadir}/doc/%{name} +install -pm0644 %{SOURCE2} %{SOURCE3} . +install -Dpm0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/firewalld/services/%{name}.xml +install -Dpm0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{name}.conf +install -Dpm0644 doc/mpdconf.example %{buildroot}%{_sysconfdir}/%{name}.conf +install -pm0644 build/doc/%{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 +install -pm0644 build/doc/%{name}.conf.5 %{buildroot}%{_mandir}/man5/%{name}.conf.5 +# Remove duplicate for mpd.socket and replace it with a symlink. +rm %{buildroot}%{_userunitdir}/%{name}.socket +ln -s ../system/%{name}.socket %{buildroot}%{_userunitdir}/%{name}.socket +mkdir %{buildroot}%{_sbindir} +ln -s service %{buildroot}%{_sbindir}/rc%{name} +mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}/playlists %pre -# add mpd user only when installing first time -getent passwd mpd >/dev/null || useradd -r -g audio -d %{_localstatedir}/lib/mpd -s /sbin/nologin -c "user for mpd" mpd -%service_add_pre mpd.service mpd.socket +getent passwd %{name} >/dev/null || useradd -rc 'Music Player Daemon' -s /bin/false -d %{_localstatedir}/lib/%{name} -g audio %{name} +%service_add_pre %{name}.service %{name}.socket %post -%service_add_post mpd.service mpd.socket +%service_add_post %{name}.service %{name}.socket +%tmpfiles_create %{_tmpfilesdir}/%{name}.conf %preun -%service_del_preun mpd.service mpd.socket +%service_del_preun %{name}.service %{name}.socket %postun -%service_del_postun mpd.service mpd.socket +%service_del_postun %{name}.service %{name}.socket %files %license COPYING -%doc README.mpd +%doc AUTHORS NEWS README.md README.%{name} %{name}-user.conf doc/mpdconf.example %config(noreplace) %{_sysconfdir}/%{name}.conf %{_bindir}/%{name} -%{_sbindir}/rcmpd +%{_sbindir}/rc%{name} %attr(0755,mpd,audio) %{_localstatedir}/lib/%{name} %{_mandir}/man1/%{name}.1%{?ext_man} %{_mandir}/man5/%{name}.conf.5%{?ext_man} -%dir %{_docdir}/%{name} -%doc %{_docdir}/%{name} %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg -%{_unitdir}/mpd.service -%{_unitdir}/mpd.socket -%{_userunitdir}/mpd.socket -%{_userunitdir}/mpd.service +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}.socket +%{_userunitdir}/%{name}.socket +%{_userunitdir}/%{name}.service +%dir %{_prefix}/lib/firewalld +%dir %{_prefix}/lib/firewalld/services +%{_prefix}/lib/firewalld/services/%{name}.xml +%{_tmpfilesdir}/%{name}.conf +%ghost %dir /run/%{name} + +%files doc +%doc html/*.{html,js} html/_static %changelog diff --git a/mpd.tmpfiles.d b/mpd.tmpfiles.d new file mode 100644 index 0000000..3ea0a00 --- /dev/null +++ b/mpd.tmpfiles.d @@ -0,0 +1 @@ +d /run/mpd 0755 mpd audio -