summaryrefslogtreecommitdiff
path: root/media-sound/mpd
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/mpd')
-rw-r--r--media-sound/mpd/Manifest7
-rw-r--r--media-sound/mpd/files/mpd-0.24.2.init64
-rw-r--r--media-sound/mpd/files/mpd.1-0.24.2105
-rw-r--r--media-sound/mpd/files/mpd.conf.5-0.24.2249
-rw-r--r--media-sound/mpd/metadata.xml3
-rw-r--r--media-sound/mpd/mpd-0.24.3.ebuild325
6 files changed, 752 insertions, 1 deletions
diff --git a/media-sound/mpd/Manifest b/media-sound/mpd/Manifest
index 86a5d85678a5..a32b2bf4b086 100644
--- a/media-sound/mpd/Manifest
+++ b/media-sound/mpd/Manifest
@@ -1,9 +1,14 @@
AUX mpd-0.23.15.init 1400 BLAKE2B 6b9defd7f8a8cbfeaf6196d1ad4e928a9c0edf9b6d109a375a711aa81ab06128be8eace7bd278af8077cc841bb6ece5240a315902f55d42bb874ddddb0f73f09 SHA512 a19df8d17bc2b53200318bb2b1b4fb2a8e2f3a2968bf0769694b55e0cc5dc2db52bd261f933de2180c19f9c6125f01e62f67d4e09d5e3796abf0bdb71034fcce
AUX mpd-0.23.15.init-r1 1433 BLAKE2B 30de4d260374d01bca9c24419207320d2253f974134da10ca946af88b8c3804555459e9f4e86575f2421810d1c894d6215ba1404b3c70467c23586208ff6859d SHA512 266b7a53e76cfb987794eb1741b46bcb10a33708cf6704fd92899a4315c78d3ea03d3ab2880197bad23d79c8c60c67c19c122d634f1d5caf78da27abe1285295
AUX mpd-0.23.15.logrotate 124 BLAKE2B 4c2200d4a2fba4735037757f74a27cfbc71dcd9ec1d18e3f3d94efbeccbe99164adc7582fc1c153e50b019280b9d51bb92d08c5498d048cd7e6c2313e762b29a SHA512 2990b6facd1f8f99e85c67e16c248cb36444d933ff47a479612b0305296bb15d8eb570bea2e43a6752a687186d53728ba272869e84942b4d36f108b35fe475ac
+AUX mpd-0.24.2.init 1490 BLAKE2B 84e0aa4c2a9dd2894e71e9ec17038bef1eb03d4b2d6ea613aa71da01137deb72980276c6ace3917c5668ec33d52f0a1772edbc627da4ac0833a2afa77de4cd1c SHA512 a1631b295e15bcbdaa5e9ae9f82ad9bd07493f1dd4434979eab61ca9eb3633883c51001542c8117172a602172d28f043f173219e682ec04ad0da9f8a4ebae42c
+AUX mpd.1-0.24.2 2779 BLAKE2B 24c34def79d6a352ed663e195f211bda175681f8f6f73f97f3019a347febcf7f0ee16632629efeeed08e8a04dc6e43d7e7b9c3caa4d56e5719fc8263dc43c549 SHA512 05b4ed6282cc819b471c78408dddce1e2ac27a7ca959c48ff9b7c680fbf437619f86aca4ab2a3ba83340136b425f6277e3e4defa48e96cea80bf1abda022e2c7
+AUX mpd.conf.5-0.24.2 8339 BLAKE2B 3fdea10a8b35cd6ceaf166d1715006f209e58676cbc8528f9247d87733e0fe8a41a2a622229c55d5d814bbb8194cd36c9e7f0fc96353c43f106404229499d8ba SHA512 149b2e4a6644ce5bfe62ef099a3ab009a1100123a5aede7f24876332e9bfd8d01dea08dc81914e64ac199d06e75f90a1cb763be94b5c05cbcd82fd34a42a61e2
DIST mpd-0.23.15.16-fix-libfmt-11.1.0.patch.xz 7260 BLAKE2B 4321f48f8bf21011a1919517969ce7de6eaa5d6c051654ec96e57d01fe48f38341d7ecb206aec314bd33288b2a6a299d594328fa136b04547d6d0cb48de85f25 SHA512 a52443039a9f60c10d19e85ef1b4c8a762d6c6f135257d9a2c8f01c936f4007dd096e4bec354ffb756519794960f57d5b2a7882c8e9296d6e2f07f99e4267d20
DIST mpd-0.23.15.tar.xz 778384 BLAKE2B 78036078b850afab900b5d50e44ce83cbbf900369f5028d4177fdbfc4128dd3c35c59a773528a1fcfcc0179d0e579566b827fe87ef780a88082dc3b7f70cd5e7 SHA512 12329dbd0c1994c1bd95b88ce2a62a4c1d691b655e9e4fac7e9ef7066d0be3422b26fad3ea6ca144ba9b21add0a7c492c4f74fd2b68a1539bff2e0d2714db709
DIST mpd-0.23.16.tar.xz 778572 BLAKE2B 7e4e7dafdc60cac59b7b47898cdaf8332970dae9209f8dd408aee7f4ecf90909404ab12a263d06aae44124d795d0d1092425294034fc0728fc9b4ac973a75dd0 SHA512 1b7042cbe8543270b26c1a9e4f35d80d68e03682e4d1e039af8f52527753830972de2a763e5dfb7bde28f4c9d0308a397becd4a206d17e7a5b2fa97f48b69d20
+DIST mpd-0.24.3.tar.xz 1014788 BLAKE2B 4981f89341bc936da18b2052bf03e593fc6a72e4fdf644afd4125261798ef5698f4dce242cfe3959a83170efa328f5fa3cc65dbddbc4fdf90667fb3e9656a520 SHA512 b7d61388c93670c4bbc03760066121aa4f8bbcbb33417b755fed89e6dcd55906be3b30961eba53979e65e3402e245dd976f30898445c0964fc252e2377b3e34e
EBUILD mpd-0.23.15-r3.ebuild 7728 BLAKE2B 7ad0855d094a35c935f7d39a9477c9c2fa5169771363e6605ae1120c504f9ef06d075a02bbf61133b38a1179d63b3508c9a249889264505470cc9ebdcff786f5 SHA512 ffc34b9832ca38df5bf27aa8900b24007d6f218091896dd8c6eb70cfbd9892894d5398e47020391eb8d821bb0d6b8b79bc117b8ac35470b1727ab5866f740fa6
EBUILD mpd-0.23.16.ebuild 7909 BLAKE2B 2d9c6a412957ba7b09dd6872659eee120e008da930102980299643e15d6ca5fc4799e93fc7d51b978db76fab213852a57ff06e3fdb274b9747a238fe6c046dd3 SHA512 3154368e3bbdebd581258da01b33629caea9bca36405ae08f18bc9551f69b7e6939f39c91403882dfc916bf03d6ee2d453c59858d95a17b4bac036f63bc399f4
-MISC metadata.xml 2980 BLAKE2B 26a685df9b51366dcd49c25068222a5e87837fba5ff9d1854fca8452bc4b9a9d47163b10a985f56621b66c24d51259f1a690eaeba7c9926bbcda1f87c597c6e4 SHA512 2554bb4b643c222fa647fbf717687d58d55c0f8473265da0f0790c5200e93a98c69a58fcef6e8840e88a704ea2bd7d899af2324c50c8591ebbc7604fa14e97dd
+EBUILD mpd-0.24.3.ebuild 8234 BLAKE2B b2ee5d3b45772691a6a32b63c0f9044bcb42d06afe9a8885c8ab689381c5cb94569d7e7ab82bf7db7e86837653a5d9eca0de55d4b29a3fc7fdd90e44bbf5c99a SHA512 390d1ba9c27eb80f7b2b43523c7a85c470886f267065b210618b6a666880f0df8f6b5d9392362e14c90d8100846a4a0cf24c2b4d15deaef0bfcc019a4fea0f4b
+MISC metadata.xml 3267 BLAKE2B 45d835de95f728e2d38019f066961efd22cbfe91ea9977c405a96b02021656a103ed8526f0ccb6985c63f5f804ccf372e8967584a9fd5301eb9326391f31acc4 SHA512 703195e41836f09c63af133241651c42b0872d54bc8dd36bbfd5c2947d4f8ebc486b7b76cef265a55434747fd1e4653d07f579cf18e525db40f0cb82b0f7e9e4
diff --git a/media-sound/mpd/files/mpd-0.24.2.init b/media-sound/mpd/files/mpd-0.24.2.init
new file mode 100644
index 000000000000..a172c804525c
--- /dev/null
+++ b/media-sound/mpd/files/mpd-0.24.2.init
@@ -0,0 +1,64 @@
+#!/sbin/openrc-run
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: CFGFILE=${CFGFILE:=/etc/mpd.conf}
+
+depend() {
+ need localmount
+ use net netmount alsasound esound pulseaudio
+ config ${CFGFILE}
+}
+
+get_config() {
+ x=$1
+ test -e ${CFGFILE} || return 1
+ sed -n \
+ -e '/^[ \t]*'${x}'/{s:^[ \t]*'${x}'[ \t]\+"\?\([^#"]\+\)[^"]*"\?$:\1: ; {p;q} }' \
+ ${CFGFILE}
+}
+
+extra_started_commands='reload'
+# Required by io_uring
+rc_ulimit="-l 65535"
+command=/usr/bin/mpd
+command_args=${CFGFILE}
+mpd_user="$(get_config user)"
+mpd_group="$(get_config group)"
+required_files=${CFGFILE}
+pidfile=$(get_config pid_file)
+description="Music Player Daemon"
+
+check_config() {
+ if [ -z "$(get_config pid_file)" ]; then
+ eerror "pid_file must be set in ${CFGFILE}!"
+ return 1
+ fi
+ if [ -z "$(get_config user)" ]; then
+ eerror "user must be set in ${CFGFILE}!"
+ return 1
+ fi
+ if [ -z "$(get_config group)" ]; then
+ eerror "group must be set in ${CFGFILE}!"
+ return 1
+ fi
+}
+
+start_pre() {
+ check_config || return 1
+
+ local pid_dir="$(dirname "${pidfile}")"
+ checkpath -d -m 700 -o "${mpd_user}:${mpd_group}" "${pid_dir}"
+
+ local log_file="$(get_config log_file)"
+ if [ -n "${log_file}" ] && [ "${log_file}" != "syslog" ]; then
+ local log_dir="$(dirname "${log_file}")"
+ checkpath -d -m 755 -o "${mpd_user}:${mpd_group}" "${log_dir}"
+ fi
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --pidfile ${pidfile} --signal HUP
+ eend $?
+}
diff --git a/media-sound/mpd/files/mpd.1-0.24.2 b/media-sound/mpd/files/mpd.1-0.24.2
new file mode 100644
index 000000000000..cd2980caeecc
--- /dev/null
+++ b/media-sound/mpd/files/mpd.1-0.24.2
@@ -0,0 +1,105 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "MPD" "1" "Apr 08, 2025" "0.24.2" "Music Player Daemon"
+.SH NAME
+mpd \- MPD documentation
+.SH SYNOPSIS
+.sp
+\fBmpd\fP [options] [CONF_FILE]
+.SH DESCRIPTION
+.sp
+MPD is a daemon for playing music. Music is played through the configured audio output(s) (which are generally local, but can be remote). 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.
+.sp
+MPD searches for a config file in \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP
+then \fB~/.mpdconf\fP then \fB~/.mpd/mpd.conf\fP then \fB/etc/mpd.conf\fP or uses \fBCONF_FILE\fP\&.
+.sp
+Read more about MPD at \X'tty: link http://www.musicpd.org/'\fI\%http://www.musicpd.org/\fP\X'tty: link'
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \-\-help
+Output a brief help message.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-kill
+Kill the currently running mpd session. The pid_file parameter must be specified in the config file for this to work.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-no\-config
+Don\(aqt read from the configuration file.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-no\-daemon
+Don\(aqt detach from console.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-stderr
+Print messages to stderr.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-systemd
+Used on Linux only so MPD can reliably detect whether it was started as a systemd service. Users shouldn\(aqt use this switch on the command line.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-verbose
+Verbose logging.
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-version
+Print version information.
+.UNINDENT
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP
+User configuration file (usually \fB~/.config/mpd/mpd.conf\fP).
+.TP
+.B \fB/etc/mpd.conf\fP
+Global configuration file.
+.UNINDENT
+.SH SEE ALSO
+.sp
+\fBmpd.conf(5)\fP, \fBmpc(1)\fP
+.SH BUGS
+.sp
+If you find a bug, please report it at \X'tty: link https://github.com/MusicPlayerDaemon/MPD/issues/'\fI\%https://github.com/MusicPlayerDaemon/MPD/issues/\fP\X'tty: link'
+.SH AUTHOR
+Max Kellermann
+.SH COPYRIGHT
+2003-2025 The Music Player Daemon Project
+.\" Generated by docutils manpage writer.
+.
diff --git a/media-sound/mpd/files/mpd.conf.5-0.24.2 b/media-sound/mpd/files/mpd.conf.5-0.24.2
new file mode 100644
index 000000000000..ea379c6a2b54
--- /dev/null
+++ b/media-sound/mpd/files/mpd.conf.5-0.24.2
@@ -0,0 +1,249 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "MPD.CONF" "5" "Apr 08, 2025" "0.24.2" "Music Player Daemon"
+.SH NAME
+mpd.conf \- mpd.conf documentation
+.SH DESCRIPTION
+.sp
+\fBmpd.conf\fP is the configuration file for \fBmpd(1)\fP\&. If
+not specified on the command line, MPD first searches for it at
+\fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP then at \fB~/.mpdconf\fP then
+at \fB~/.mpd/mpd.conf\fP and then in \fB/etc/mpd.conf\fP\&.
+.sp
+Each line in the configuration file contains a setting name and its value, e.g.:
+.sp
+\fBconnection_timeout \(dq5\(dq\fP
+.sp
+Lines starting with \fB#\fP are treated as comments and ignored.
+.sp
+For settings that specify a file system path, the tilde (\(aq~\(aq) is expanded to $HOME.
+In addition, the following path expansions are supported:
+.INDENT 0.0
+.IP \(bu 2
+\fI$HOME\fP
+.IP \(bu 2
+\fI$XDG_CONFIG_HOME\fP
+.IP \(bu 2
+\fI$XDG_MUSIC_DIR\fP
+.IP \(bu 2
+\fI$XDG_CACHE_HOME\fP
+.IP \(bu 2
+\fI$XDG_RUNTIME_DIR\fP
+.UNINDENT
+.sp
+\fBmusic_directory \(dq~/Music\(dq\fP
+.sp
+\fBdb_file \(dq$XDG_CONFIG_HOME/mpd/database\(dq\fP
+.sp
+Some of the settings are grouped in blocks with curly braces, e.g. per\-plugin settings:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.EX
+audio_output {
+ type \(dqalsa\(dq
+ name \(dqMy ALSA output\(dq
+ device \(dqiec958:CARD=Intel,DEV=0\(dq
+ mixer_control \(dqPCM\(dq
+}
+.EE
+.UNINDENT
+.UNINDENT
+.sp
+The \fBinclude\fP directive can be used to include settings from
+another file; the given file name is relative to the current file:
+.sp
+\fBinclude \(dqother.conf\(dq\fP
+.sp
+You can use include_optional instead if you want the included file to be
+optional; the directive will be ignored if the file does not exist:
+.sp
+\fBinclude_optional \(dqmay_not_exist.conf\(dq\fP
+.sp
+See \fBdocs/mpdconf.example\fP in the source tarball for an example
+configuration file.
+.sp
+This manual is not complete, it lists only the most important options.
+Please read the MPD user manual for a complete configuration guide:
+\X'tty: link http://www.musicpd.org/doc/user/'\fI\%http://www.musicpd.org/doc/user/\fP\X'tty: link'
+.SH OPTIONAL PARAMETERS
+.INDENT 0.0
+.TP
+.B db_file <file>
+This specifies where the db file will be stored.
+.TP
+.B log_file <file>
+This specifies where the log file should be located. The special value \(dqsyslog\(dq makes MPD use the local syslog daemon.
+.TP
+.B sticker_file <file>
+The location of the sticker database. This is a database which manages
+dynamic information attached to songs.
+.TP
+.B pid_file <file>
+This specifies the file to save mpd\(aqs process ID in.
+.TP
+.B music_directory <directory>
+This specifies the directory where music is located. If you do not configure
+this, you can only play streams.
+.TP
+.B playlist_directory <directory>
+This specifies the directory where saved playlists are stored. If
+you do not configure this, you cannot save playlists.
+.TP
+.B state_file <file>
+This specifies if a state file is used and where it is located. The state of
+mpd will be saved to this file when mpd is terminated by a TERM signal or by
+the \fBkill\fP command. When mpd is restarted, it will read the state file and
+restore the state of mpd (including the playlist).
+.TP
+.B restore_paused <yes or no>
+Put MPD into pause mode instead of starting playback after startup.
+.TP
+.B user <username>
+This specifies the user that MPD will run as, if set. MPD should never run
+as root, and you may use this option to make MPD change its user id after
+initialization. Do not use this option if you start MPD as an unprivileged
+user.
+.TP
+.B port <port>
+This specifies the port that mpd listens on. The default is 6600.
+.TP
+.B log_level <level>
+Suppress all messages below the given threshold. The following
+log levels are available:
+.INDENT 7.0
+.IP \(bu 2
+\fBerror\fP: errors
+.IP \(bu 2
+\fBwarning\fP: warnings
+.IP \(bu 2
+\fBnotice\fP: interesting informational messages
+.IP \(bu 2
+\fBinfo\fP: unimportant informational messages
+.IP \(bu 2
+\fBverbose\fP: debug messages (for developers and for
+troubleshooting)
+.UNINDENT
+.sp
+The default is \fBnotice\fP\&.
+.TP
+.B follow_outside_symlinks <yes or no>
+Control if MPD will follow symbolic links pointing outside the music dir. You
+must recreate the database after changing this option. The default is \(dqyes\(dq.
+.TP
+.B follow_inside_symlinks <yes or no>
+Control if MPD will follow symbolic links pointing inside the music dir,
+potentially adding duplicates to the database. You must recreate the
+database after changing this option. The default is \(dqyes\(dq.
+.TP
+.B zeroconf_enabled <yes or no>
+If yes, and MPD has been compiled with support for Avahi or Bonjour, service
+information will be published with Zeroconf. The default is yes.
+.TP
+.B zeroconf_name <name>
+If Zeroconf is enabled, this is the service name to publish. This name should
+be unique to your local network, but name collisions will be properly dealt
+with. The default is \(dqMusic Player @ %h\(dq, where %h will be replaced with the
+hostname of the machine running MPD.
+.TP
+.B audio_output
+See DESCRIPTION and the various \fBAUDIO OUTPUT PARAMETERS\fP sections for the
+format of this parameter. Multiple audio_output sections may be specified. If
+no audio_output section is specified, then MPD will scan for a usable audio
+output.
+.TP
+.B filesystem_charset <charset>
+This specifies the character set used for the filesystem. A list of supported
+character sets can be obtained by running \(dqiconv \-l\(dq. The default is
+determined from the locale when the db was originally created.
+.TP
+.B save_absolute_paths_in_playlists <yes or no>
+This specifies whether relative or absolute paths for song filenames are used
+when saving playlists. The default is \(dqno\(dq.
+.TP
+.B auto_update <yes or no>
+This specifies the whether to support automatic update of music database
+when files are changed in music_directory. The default is to disable
+autoupdate of database.
+.TP
+.B auto_update_depth <N>
+Limit the depth of the directories being watched, 0 means only watch the
+music directory itself. There is no limit by default.
+.UNINDENT
+.SH REQUIRED AUDIO OUTPUT PARAMETERS
+.INDENT 0.0
+.TP
+.B type <type>
+This specifies the audio output type. See the list of supported outputs in
+\fBmpd \-\-version\fP for possible values.
+.TP
+.B name <name>
+This specifies a unique name for the audio output.
+.UNINDENT
+.SH OPTIONAL AUDIO OUTPUT PARAMETERS
+.INDENT 0.0
+.TP
+.B format <sample_rate:bits:channels>
+This specifies the sample rate, bits per sample, and number of channels of
+audio that is sent to the audio output device. See documentation for the
+\fBaudio_output_format\fP parameter for more details. The default is to use
+whatever audio format is passed to the audio output. Any of the three
+attributes may be an asterisk to specify that this attribute should not be
+enforced
+.TP
+.B replay_gain_handler <software, mixer or none>
+Specifies how replay gain is applied. The default is \(dqsoftware\(dq, which uses
+an internal software volume control. \(dqmixer\(dq uses the configured (hardware)
+mixer control. \(dqnone\(dq disables replay gain on this audio output.
+.TP
+.B mixer_type <hardware, software or none>
+Specifies which mixer should be used for this audio output: the hardware
+mixer (available for ALSA, OSS and PulseAudio), the software mixer or no
+mixer (\(dqnone\(dq). By default, the hardware mixer is used for devices which
+support it, and none for the others.
+.UNINDENT
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP
+User configuration file (usually \fB~/.config/mpd/mpd.conf\fP).
+.TP
+.B \fB/etc/mpd.conf\fP
+Global configuration file.
+.UNINDENT
+.SH SEE ALSO
+.sp
+\fBmpd(1)\fP, \fBmpc(1)\fP
+.SH AUTHOR
+Max Kellermann
+.SH COPYRIGHT
+2003-2025 The Music Player Daemon Project
+.\" Generated by docutils manpage writer.
+.
diff --git a/media-sound/mpd/metadata.xml b/media-sound/mpd/metadata.xml
index 8253dae1fb75..8d41cefe55dd 100644
--- a/media-sound/mpd/metadata.xml
+++ b/media-sound/mpd/metadata.xml
@@ -19,6 +19,7 @@
<flag name="fifo">Support writing audio to a FIFO</flag>
<flag name="fluidsynth">Enables Fluidsynth MIDI software synthesis (discouraged)</flag>
<flag name="gme">Enables support for <pkg>media-libs/game-music-emu</pkg> for playing various video game music formats.</flag>
+ <flag name="httpd">Enable built-in stream server</flag>
<flag name="id3tag">Support for ID3 tags</flag>
<flag name="inotify">Use the Linux kernel inotify subsystem to notice changes to mpd music library</flag>
<flag name="lame">Support for MP3 streaming via Icecast2</flag>
@@ -32,11 +33,13 @@
<flag name="pipewire">PipeWire support</flag>
<flag name="qobuz">Build plugin to access qobuz</flag>
<flag name="recorder">Enables output plugin for recording radio streams</flag>
+ <flag name="shout">Enable ShoutCast/IceCast plugin using <pkg>media-libs/libshout</pkg></flag>
<flag name="signalfd">Use the signalfd function in MPD's event loop</flag>
<flag name="snapcast">Snapcast audio plugin</flag>
<flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
<flag name="soundcloud">Build plugin to access soundcloud</flag>
<flag name="systemd">Enable support for systemd socket activation</flag>
+ <flag name="tremor">Enable support for <pkg>media-libs/tremor</pkg>, a fixed-point version of the Ogg Vorbis decoder</flag>
<flag name="twolame">Support twolame MPEG-2 encoding</flag>
<flag name="webdav">Enable using music from a WebDAV share</flag>
<flag name="wildmidi">Enable MIDI support via wildmidi</flag>
diff --git a/media-sound/mpd/mpd-0.24.3.ebuild b/media-sound/mpd/mpd-0.24.3.ebuild
new file mode 100644
index 000000000000..de94acff2fe3
--- /dev/null
+++ b/media-sound/mpd/mpd-0.24.3.ebuild
@@ -0,0 +1,325 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic linux-info meson systemd xdg
+
+DESCRIPTION="The Music Player Daemon (mpd)"
+HOMEPAGE="https://www.musicpd.org https://github.com/MusicPlayerDaemon/MPD"
+SRC_URI="https://www.musicpd.org/download/${PN}/$(ver_cut 1-2)/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="+alsa ao +audiofile bzip2 cdio chromaprint +curl doc +dbus
+ +eventfd expat faad +ffmpeg flac fluidsynth gme httpd +icu +id3tag +inotify
+ +io-uring jack lame libmpdclient libsamplerate libsoxr +mad mikmod mms
+ modplug +mpg123 musepack nfs openal openmpt opus oss pipewire pulseaudio qobuz
+ recorder samba selinux shout sid signalfd snapcast sndfile sndio sqlite
+ systemd test tremor twolame upnp vorbis wavpack webdav wildmidi
+ zeroconf zip zlib"
+
+OUTPUT_PLUGINS="alsa ao jack httpd openal oss pipewire pulseaudio shout snapcast sndio recorder"
+DECODER_PLUGINS="audiofile faad ffmpeg flac fluidsynth mad mikmod
+ modplug mpg123 musepack opus openmpt flac sid tremor vorbis wavpack wildmidi"
+ENCODER_PLUGINS="audiofile flac lame twolame vorbis"
+
+REQUIRED_USE="
+ || ( ${OUTPUT_PLUGINS} )
+ || ( ${DECODER_PLUGINS} )
+ ?? ( tremor vorbis )
+ httpd? ( || ( ${ENCODER_PLUGINS} ) )
+ recorder? ( || ( ${ENCODER_PLUGINS} ) )
+ shout? ( || ( ${ENCODER_PLUGINS} ) )
+ qobuz? ( curl )
+ upnp? ( curl expat )
+ webdav? ( curl expat )
+"
+
+RESTRICT="!test? ( test )"
+
+COMMON_ENCODERS="
+ lame? ( media-sound/lame )
+ twolame? ( media-sound/twolame )
+"
+RDEPEND="
+ acct-user/mpd
+ dev-libs/libfmt:=
+ dev-libs/libpcre2:=
+ alsa? (
+ media-libs/alsa-lib
+ media-sound/alsa-utils
+ )
+ ao? ( media-libs/libao[alsa?,pulseaudio?] )
+ audiofile? ( media-libs/audiofile:= )
+ bzip2? ( app-arch/bzip2 )
+ cdio? (
+ dev-libs/libcdio:=
+ dev-libs/libcdio-paranoia:=
+ )
+ chromaprint? ( media-libs/chromaprint:= )
+ curl? ( net-misc/curl )
+ dbus? ( sys-apps/dbus )
+ doc? (
+ dev-python/sphinx
+ dev-python/sphinx-rtd-theme
+ )
+ expat? ( dev-libs/expat )
+ faad? ( media-libs/faad2 )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flac? ( media-libs/flac:= )
+ fluidsynth? ( media-sound/fluidsynth:= )
+ gme? ( media-libs/game-music-emu )
+ httpd? ( ${COMMON_ENCODERS} )
+ icu? (
+ dev-libs/icu:=
+ virtual/libiconv
+ )
+ id3tag? ( media-libs/libid3tag:= )
+ io-uring? ( sys-libs/liburing:= )
+ jack? ( virtual/jack )
+ libmpdclient? ( media-libs/libmpdclient )
+ libsamplerate? ( media-libs/libsamplerate )
+ libsoxr? ( media-libs/soxr )
+ mad? ( media-libs/libmad )
+ mikmod? ( media-libs/libmikmod )
+ mms? ( media-libs/libmms )
+ modplug? ( media-libs/libmodplug )
+ mpg123? ( media-sound/mpg123-base )
+ musepack? ( media-sound/musepack-tools )
+ nfs? ( net-fs/libnfs:= )
+ openal? ( media-libs/openal )
+ openmpt? ( media-libs/libopenmpt )
+ opus? (
+ media-libs/libogg
+ media-libs/opus
+ )
+ pulseaudio? ( media-libs/libpulse )
+ pipewire? ( media-video/pipewire:= )
+ qobuz? (
+ !ffmpeg? ( dev-libs/libgcrypt:= )
+ ffmpeg? ( media-video/ffmpeg )
+ )
+ recorder? ( ${COMMON_ENCODERS} )
+ samba? ( net-fs/samba:= )
+ selinux? ( sec-policy/selinux-mpd )
+ shout? (
+ ${COMMON_ENCODERS}
+ media-libs/libshout
+ )
+ sid? ( media-libs/libsidplayfp:= )
+ sndfile? ( media-libs/libsndfile )
+ sndio? ( media-sound/sndio:= )
+ sqlite? ( dev-db/sqlite:3 )
+ systemd? ( sys-apps/systemd:= )
+ tremor? (
+ media-libs/libogg
+ media-libs/tremor
+ )
+ upnp? ( net-libs/libupnp:= )
+ vorbis? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ wavpack? ( media-sound/wavpack )
+ wildmidi? ( media-sound/wildmidi )
+ zeroconf? ( net-dns/avahi[dbus] )
+ zip? ( dev-libs/zziplib:= )
+ zlib? ( sys-libs/zlib:= )
+"
+DEPEND="
+ ${RDEPEND}
+ qobuz? ( >=dev-cpp/nlohmann_json-3.11.3 )
+ snapcast? ( >=dev-cpp/nlohmann_json-3.11.3 )
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="virtual/pkgconfig"
+
+pkg_setup() {
+ if use eventfd; then
+ CONFIG_CHECK+=" ~EVENTFD"
+ ERROR_EVENTFD="${P} requires eventfd in-kernel support."
+ fi
+
+ if use signalfd; then
+ CONFIG_CHECK+=" ~SIGNALFD"
+ ERROR_SIGNALFD="${P} requires signalfd in-kernel support."
+ fi
+
+ if use inotify; then
+ CONFIG_CHECK+=" ~INOTIFY_USER"
+ ERROR_INOTIFY_USER="${P} requires inotify in-kernel support."
+ fi
+
+ if use io-uring; then
+ CONFIG_CHECK+=" ~IO_URING"
+ ERROR_IO_URING="${P} requires io-uring in-kernel support."
+ fi
+
+ if use eventfd || use signalfd || use inotify || use io-uring; then
+ linux-info_pkg_setup
+ fi
+}
+
+src_configure() {
+ local emesonargs=(
+ # media-libs/adplug is not packaged anymore
+ -Dadplug=disabled
+ $(meson_feature alsa)
+ $(meson_feature ao)
+ $(meson_feature audiofile)
+ $(meson_feature bzip2)
+ $(meson_feature cdio cdio_paranoia)
+ $(meson_feature chromaprint)
+ -Dcue=true
+ $(meson_feature curl)
+ $(meson_feature dbus)
+ $(meson_use eventfd)
+ $(meson_feature expat)
+ $(meson_feature faad)
+ $(meson_feature ffmpeg)
+ -Dfifo=true
+ $(meson_feature flac)
+ $(meson_feature fluidsynth)
+ $(meson_feature gme)
+ $(meson_use httpd )
+ $(meson_feature icu)
+ $(meson_feature id3tag)
+ $(meson_use inotify)
+ -Dipv6=enabled
+ $(meson_feature cdio iso9660)
+ $(meson_feature io-uring io_uring)
+ $(meson_feature jack)
+ $(meson_feature libmpdclient)
+ $(meson_feature libsamplerate)
+ $(meson_feature mad)
+ $(meson_feature mikmod)
+ $(meson_feature mms)
+ $(meson_feature modplug)
+ $(meson_feature musepack mpcdec)
+ $(meson_feature mpg123)
+ $(meson_feature nfs)
+ $(meson_feature openal)
+ $(meson_feature openmpt)
+ $(meson_feature opus)
+ $(meson_feature oss)
+ -Dpipe=true
+ $(meson_feature pipewire)
+ $(meson_feature pulseaudio pulse)
+ $(meson_feature qobuz)
+ $(meson_use recorder)
+ $(meson_feature shout)
+ $(meson_use signalfd)
+ $(meson_feature samba smbclient)
+ $(meson_use snapcast)
+ $(meson_feature sid sidplay)
+ $(meson_feature sndfile)
+ $(meson_feature sndio)
+ $(meson_feature libsoxr soxr)
+ $(meson_feature sqlite)
+ $(meson_feature systemd)
+ $(meson_use test)
+ $(meson_feature dbus udisks)
+ -Dupnp=$(usex upnp pupnp disabled)
+ $(meson_feature tremor)
+ $(meson_feature vorbis)
+ $(meson_feature wavpack)
+ $(meson_feature wildmidi)
+ $(meson_feature webdav)
+ -Dzeroconf=$(usex zeroconf avahi disabled)
+ $(meson_feature zlib)
+ $(meson_feature zip zzip)
+
+ --libdir="/usr/$(get_libdir)"
+ $(meson_feature doc documentation)
+ -Dsolaris_output=disabled
+
+ -Ddatabase=true
+ -Ddaemon=true
+ -Ddsd=true
+ -Dtcp=true
+
+ -Dsystemd_system_unit_dir="$(systemd_get_systemunitdir)"
+ -Dsystemd_user_unit_dir="$(systemd_get_userunitdir)"
+
+ $(meson_feature icu iconv)
+ )
+
+ if use samba || use upnp; then
+ emesonargs+=( -Dneighbor=true )
+ fi
+
+ append-lfs-flags
+
+ # set useflag for encoders
+ if use httpd || use shout || use recorder; then
+ emesonargs+=(
+ # not in tree
+ -Dshine=disabled
+ $(meson_feature lame)
+ $(meson_feature twolame)
+ $(meson_feature vorbis vorbisenc)
+ $(meson_use audiofile wave_encoder)
+ )
+ else
+ # avoid links even w/o encoder
+ emesonargs+=(
+ -Dlame=disabled
+ -Dtwolame=disabled
+ )
+ fi
+
+ # nlohmann_json is only required with these plugins enabled
+ if use qobuz || use snapcast; then
+ emesonargs+=(
+ -Dnlohmann_json=enabled
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
+ else
+ newman "${FILESDIR}"/${PN}.1-0.24.2 ${PN}.1
+ newman "${FILESDIR}"/${PN}.conf.5-0.24.2 ${PN}.conf.5
+ fi
+
+ meson_src_install
+
+ insinto /etc
+ newins doc/mpdconf.example mpd.conf
+
+ # When running MPD as system service, better switch to the user we provide
+ sed -i \
+ -e 's:^#user.*$:user "mpd":' \
+ -e 's:^#group.*$:group "audio":' \
+ "${ED}/etc/mpd.conf" || die
+
+ if ! use systemd; then
+ # Extra options for running MPD under OpenRC
+ # (options that should not be set when using systemd)
+ sed -i \
+ -e '0,/^#log_file.*$/s::log_file "/var/log/mpd/mpd.log"\n&:' \
+ -e '0,/^#pid_file.*$/s::pid_file "/run/mpd/mpd.pid"\n&:' \
+ "${ED}/etc/mpd.conf" || die
+ fi
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}-0.23.15.logrotate" "${PN}"
+
+ newinitd "${FILESDIR}/${PN}-0.24.2.init" "${PN}"
+
+ keepdir /var/lib/mpd
+ keepdir /var/lib/mpd/music
+ keepdir /var/lib/mpd/playlists
+ keepdir /var/log/mpd
+
+ rm -r "${ED}"/usr/share/doc/mpd || die
+
+ fowners mpd:audio -R /var/lib/mpd
+ fowners mpd:audio -R /var/log/mpd
+}