commit:     e052555c5ead5ea46c5b8d5ebc61f9e89a4d5fa8
Author:     Adrian Schollmeyer <nex+b-g-o <AT> nexadn <DOT> de>
AuthorDate: Sun Nov 12 21:11:27 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Feb  5 15:13:55 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e052555c

media-sound/mpd: add 0.23.15

The new version removes unnecessary modifications to the default
configuration and adds default values for creating the PID file and log
file in FHS directories.

Co-Authored-By: Jeroen Roovers <jer <AT> xs4all.nl>
Closes: https://bugs.gentoo.org/872668
Closes: https://bugs.gentoo.org/918421
Closes: https://bugs.gentoo.org/919577
Signed-off-by: Adrian Schollmeyer <nex+b-g-o <AT> nexadn.de>
Closes: https://github.com/gentoo/gentoo/pull/34469
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 media-sound/mpd/Manifest                    |   1 +
 media-sound/mpd/files/mpd-0.23.15.init      |  61 ++++++
 media-sound/mpd/files/mpd-0.23.15.logrotate |   9 +
 media-sound/mpd/mpd-0.23.15.ebuild          | 284 ++++++++++++++++++++++++++++
 4 files changed, 355 insertions(+)

diff --git a/media-sound/mpd/Manifest b/media-sound/mpd/Manifest
index 4be7c6716a1f..800fb21c8859 100644
--- a/media-sound/mpd/Manifest
+++ b/media-sound/mpd/Manifest
@@ -1,2 +1,3 @@
 DIST mpd-0.23.12.tar.xz 774708 BLAKE2B 
b218d9f477e92842638e3fba44c84957a3f656adaaf1ece998847db8d64883b8c997703206f74b37043888757f5f628799a3a35b25ea991f9ad00df1c4ad5e71
 SHA512 
54495b839d86b47ae6e2f6cf4e1baebd0e8eb924742e9db42cc7462ffc4b6f650b83f3eaea291fe905ff5f1975cf875537ffd23a111724013ce58e6df26ce36e
 DIST mpd-0.23.13.tar.xz 776668 BLAKE2B 
02907f08cc504d0fbf703179b333b301c7ad8fc8535d85305faa7962dd7faa164f4492286902cb48eaf3db2a1445b541b1261c18a89ca8a73e80016af9581e26
 SHA512 
1ef2b3a2089aa6078a455e43a2fb9097dc0d5b27b170e6d64e416d5e82349a794eb0acf8db72a975ad024083e872e4a1bd0e0fd51302d327d373b61f01bb819d
+DIST mpd-0.23.15.tar.xz 778384 BLAKE2B 
78036078b850afab900b5d50e44ce83cbbf900369f5028d4177fdbfc4128dd3c35c59a773528a1fcfcc0179d0e579566b827fe87ef780a88082dc3b7f70cd5e7
 SHA512 
12329dbd0c1994c1bd95b88ce2a62a4c1d691b655e9e4fac7e9ef7066d0be3422b26fad3ea6ca144ba9b21add0a7c492c4f74fd2b68a1539bff2e0d2714db709

diff --git a/media-sound/mpd/files/mpd-0.23.15.init 
b/media-sound/mpd/files/mpd-0.23.15.init
new file mode 100644
index 000000000000..2cd176302e1f
--- /dev/null
+++ b/media-sound/mpd/files/mpd-0.23.15.init
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: CFGFILE=${CFGFILE:=/etc/mpd.conf}
+
+depend() {
+       need localmount
+       use net netmount nfsmount 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 }' \
+               ${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
+               die "pid_file must be set in ${CFGFILE}!"
+       fi
+       if [ -z "$(get_config user)" ]; then
+               die "user must be set in ${CFGFILE}!"
+       fi
+       if [ -z "$(get_config group)" ]; then
+               die "group must be set in ${CFGFILE}!"
+       fi
+}
+
+start_pre() {
+       check_config
+       
+       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}" ]; 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-0.23.15.logrotate 
b/media-sound/mpd/files/mpd-0.23.15.logrotate
new file mode 100644
index 000000000000..e1e57aef724f
--- /dev/null
+++ b/media-sound/mpd/files/mpd-0.23.15.logrotate
@@ -0,0 +1,9 @@
+/var/log/mpd/mpd.log {
+       missingok
+       weekly
+       delaycompress
+       compress
+       postrotate
+       /etc/init.d/mpd --quiet reload
+       endscript
+}

diff --git a/media-sound/mpd/mpd-0.23.15.ebuild 
b/media-sound/mpd/mpd-0.23.15.ebuild
new file mode 100644
index 000000000000..70c1356216a0
--- /dev/null
+++ b/media-sound/mpd/mpd-0.23.15.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2024 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}/${PV%.*}/${P}.tar.xz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="+alsa ao +audiofile bzip2 cdio chromaprint +cue +curl doc +dbus
+       +eventfd expat faad +ffmpeg +fifo flac fluidsynth gme +icu +id3tag 
+inotify
+       jack lame libmpdclient libsamplerate libsoxr +mad mikmod mms
+       modplug mpg123 musepack +network nfs openal openmpt opus oss pipe 
pipewire pulseaudio qobuz
+       recorder samba selinux sid signalfd snapcast sndfile sndio soundcloud 
sqlite systemd
+       test twolame udisks vorbis wavpack webdav wildmidi upnp
+       zeroconf zip zlib"
+
+OUTPUT_PLUGINS="alsa ao fifo jack network openal oss pipe pipewire pulseaudio 
snapcast sndio recorder"
+DECODER_PLUGINS="audiofile faad ffmpeg flac fluidsynth mad mikmod
+       modplug mpg123 musepack opus openmpt flac sid vorbis wavpack wildmidi"
+ENCODER_PLUGINS="audiofile flac lame twolame vorbis"
+
+REQUIRED_USE="
+       || ( ${OUTPUT_PLUGINS} )
+       || ( ${DECODER_PLUGINS} )
+       network? ( || ( ${ENCODER_PLUGINS} ) )
+       recorder? ( || ( ${ENCODER_PLUGINS} ) )
+       qobuz? ( curl soundcloud )
+       soundcloud? ( curl qobuz )
+       udisks? ( dbus )
+       upnp? ( curl expat )
+       webdav? ( curl expat )
+"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       acct-user/mpd
+       dev-libs/libfmt:=
+       dev-libs/libpcre2
+       media-libs/libogg
+       sys-libs/liburing:=
+       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 )
+       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-0.6.0_pre20120802 )
+       icu? (
+               dev-libs/icu:=
+               virtual/libiconv
+       )
+       id3tag? ( media-libs/libid3tag:= )
+       jack? ( virtual/jack )
+       lame? ( network? ( media-sound/lame ) )
+       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 )
+       musepack? ( media-sound/musepack-tools )
+       network? ( >=media-libs/libshout-2.4.0 )
+       nfs? ( net-fs/libnfs )
+       openal? ( media-libs/openal )
+       openmpt? ( media-libs/libopenmpt )
+       opus? ( media-libs/opus )
+       pulseaudio? ( media-libs/libpulse )
+       pipewire? ( media-video/pipewire:= )
+       qobuz? ( dev-libs/libgcrypt:0 )
+       samba? ( net-fs/samba )
+       selinux? ( sec-policy/selinux-mpd )
+       sid? ( || (
+               media-libs/libsidplay:2
+               media-libs/libsidplayfp
+       ) )
+       snapcast? ( media-sound/snapcast )
+       sndfile? ( media-libs/libsndfile )
+       sndio? ( media-sound/sndio )
+       soundcloud? ( >=dev-libs/yajl-2:= )
+       sqlite? ( dev-db/sqlite:3 )
+       systemd? ( sys-apps/systemd:= )
+       twolame? ( media-sound/twolame )
+       udisks? ( sys-fs/udisks:2 )
+       upnp? ( net-libs/libupnp:0 )
+       vorbis? ( 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}
+       dev-libs/boost:=
+       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 eventfd || use signalfd || use inotify; 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)
+               $(meson_use cue)
+               $(meson_feature curl)
+               $(meson_feature dbus)
+               $(meson_use eventfd)
+               $(meson_feature expat)
+               $(meson_feature faad)
+               $(meson_feature ffmpeg)
+               $(meson_use fifo)
+               $(meson_feature flac)
+               $(meson_feature fluidsynth)
+               $(meson_feature gme)
+               $(meson_feature icu)
+               $(meson_feature id3tag)
+               $(meson_use inotify)
+               -Dipv6=enabled
+               $(meson_feature cdio iso9660)
+               $(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)
+               $(meson_use pipe)
+               $(meson_feature pipewire)
+               $(meson_feature pulseaudio pulse)
+               $(meson_feature qobuz)
+               $(meson_use recorder)
+               $(meson_use signalfd)
+               $(meson_feature samba smbclient)
+               $(meson_use snapcast)
+               $(meson_feature sid sidplay)
+               $(meson_feature sndfile)
+               $(meson_feature sndio)
+               $(meson_feature soundcloud)
+               $(meson_feature libsoxr soxr)
+               $(meson_feature sqlite)
+               $(meson_feature systemd)
+               $(meson_use test)
+               $(meson_feature udisks)
+               -Dupnp=$(usex upnp pupnp disabled)
+               $(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
+               -Dio_uring=enabled
+               -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
+       append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/sidplay/builders"
+
+       if use network; then
+               emesonargs+=(
+                       -Dshine=disabled
+                       -Dshout=enabled
+                       $(meson_feature vorbis vorbisenc)
+                       -Dhttpd=true
+                       $(meson_feature lame)
+                       $(meson_feature twolame)
+                       $(meson_use audiofile wave_encoder)
+               )
+       fi
+
+       meson_src_configure
+}
+
+src_install() {
+       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 's:^#log_file.*$:log_file "/var/log/mpd/mpd.log":' \
+                       -e 's:^#pid_file.*$:pid_file "/run/mpd/mpd.pid":' \
+                       "${ED}/etc/mpd.conf" || die
+       fi
+
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/${P}.logrotate" "${PN}"
+
+       newinitd "${FILESDIR}/${P}.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
+}

Reply via email to