Accepting request 838624 from multimedia:apps

OBS-URL: https://build.opensuse.org/request/show/838624
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mpd?expand=0&rev=25
This commit is contained in:
Dominique Leuenberger 2020-09-30 17:54:55 +00:00 committed by Git OBS Bridge
commit 42da43bd00
11 changed files with 426 additions and 198 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9e68221c7a6829ec02f281eb313b2f24182020f5eb65ab22b337e6169ea4eea
size 685396

3
mpd-0.22.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7de742d925d01bf52685cc6cbb31fdeb671e4992a448720897ef706e57e39076
size 722940

BIN
mpd-0.22.tar.xz.sig Normal file

Binary file not shown.

263
mpd-conf.patch Normal file
View File

@ -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"
#
###############################################################################

View File

@ -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')

View File

@ -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"
#
###############################################################################

View File

@ -25,13 +25,20 @@ input {
}
audio_output {
type "pulse"
name "PulseAudio"
type "pulse"
name "PulseAudio"
}
#audio_output {
#type "jack"
#name "mpd"
# type "alsa"
# name "ALSA"
## device "plug:plugequal" # optional
## mixer_control "Master" # optional
#}
#audio_output {
# 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"

View File

@ -1,23 +1,84 @@
-------------------------------------------------------------------
Wed Sep 30 01:36:05 UTC 2020 - Илья Индиго <ilya@ilya.pp.ua>
- 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 <dmueller@suse.com>
- 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 <info@paolostivanin.com>
* 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 - Илья Индиго <ilya@ilya.pp.ua>

7
mpd.firewalld Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Music Player Daemon</short>
<description>Opens ports for Music Player Daemon</description>
<port port="6600" protocol="tcp"/>
<port port="8000" protocol="tcp"/>
</service>

View File

@ -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

1
mpd.tmpfiles.d Normal file
View File

@ -0,0 +1 @@
d /run/mpd 0755 mpd audio -