public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Joonas Niilola" <juippis@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/mpd/files/, media-sound/mpd/
Date: Thu, 18 May 2023 10:42:34 +0000 (UTC)	[thread overview]
Message-ID: <1684406550.567cb7f85e0429776ec3b11cfe24ea80fa093f96.juippis@gentoo> (raw)

commit:     567cb7f85e0429776ec3b11cfe24ea80fa093f96
Author:     Adrian Schollmeyer <nex+b-g-o <AT> nexadn <DOT> de>
AuthorDate: Mon May 15 22:03:24 2023 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu May 18 10:42:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=567cb7f8

media-sound/mpd: backport dev-libs/libfmt-10 fix to 0.23.12

dev-libs/libfmt-10 introduced breaking API changes, requiring consumers
to update their code. Upstream has done that in a few commits, which are
backported here.

Closes: https://bugs.gentoo.org/906074
Signed-off-by: Adrian Schollmeyer <nex+b-g-o <AT> nexadn.de>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 .../mpd/files/mpd-0.23.12-libfmt10-906074.patch    | 102 +++++++
 media-sound/mpd/files/mpd-0.23.12-stringview.patch | 235 ++++++++++++++++
 media-sound/mpd/mpd-0.23.12-r1.ebuild              | 295 +++++++++++++++++++++
 3 files changed, 632 insertions(+)

diff --git a/media-sound/mpd/files/mpd-0.23.12-libfmt10-906074.patch b/media-sound/mpd/files/mpd-0.23.12-libfmt10-906074.patch
new file mode 100644
index 000000000000..7fc5187a54f3
--- /dev/null
+++ b/media-sound/mpd/files/mpd-0.23.12-libfmt10-906074.patch
@@ -0,0 +1,102 @@
+libfmt 10 changed the API, requiring a few adjustments to the codebase.
+This backports the upstream fixes for building against libfmt 10.
+
+Bug: https://bugs.gentoo.org/906074
+
+--- a/src/SongPrint.cxx
++++ b/src/SongPrint.cxx
+@@ -24,6 +24,7 @@
+ #include "TagPrint.hxx"
+ #include "client/Response.hxx"
+ #include "fs/Traits.hxx"
++#include "lib/fmt/AudioFormatFormatter.hxx"
+ #include "time/ChronoUtil.hxx"
+ #include "util/StringBuffer.hxx"
+ #include "util/UriUtil.hxx"
+@@ -93,7 +94,7 @@ song_print_info(Response &r, const LightSong &song, bool base) noexcept
+ 		time_print(r, "Last-Modified", song.mtime);
+ 
+ 	if (song.audio_format.IsDefined())
+-		r.Fmt(FMT_STRING("Format: {}\n"), ToString(song.audio_format));
++		r.Fmt(FMT_STRING("Format: {}\n"), song.audio_format);
+ 
+ 	tag_print_values(r, song.tag);
+ 
+@@ -116,7 +117,7 @@ song_print_info(Response &r, const DetachedSong &song, bool base) noexcept
+ 		time_print(r, "Last-Modified", song.GetLastModified());
+ 
+ 	if (const auto &f = song.GetAudioFormat(); f.IsDefined())
+-		r.Fmt(FMT_STRING("Format: {}\n"), ToString(f));
++		r.Fmt(FMT_STRING("Format: {}\n"), f);
+ 
+ 	tag_print_values(r, song.GetTag());
+ 
+--- a/src/TagPrint.cxx
++++ b/src/TagPrint.cxx
+@@ -21,7 +21,6 @@
+ #include "tag/Tag.hxx"
+ #include "tag/Settings.hxx"
+ #include "client/Response.hxx"
+-#include "util/StringView.hxx"
+ 
+ #include <fmt/format.h>
+ 
+@@ -35,7 +34,7 @@ tag_print_types(Response &r) noexcept
+ }
+ 
+ void
+-tag_print(Response &r, TagType type, StringView value) noexcept
++tag_print(Response &r, TagType type, std::string_view value) noexcept
+ {
+ 	r.Fmt(FMT_STRING("{}: {}\n"), tag_item_names[type], value);
+ }
+--- a/src/TagPrint.hxx
++++ b/src/TagPrint.hxx
+@@ -21,6 +21,7 @@
+ #define MPD_TAG_PRINT_HXX
+ 
+ #include <cstdint>
++#include <string_view>
+ 
+ enum TagType : uint8_t;
+ 
+@@ -32,7 +33,7 @@ void
+ tag_print_types(Response &response) noexcept;
+ 
+ void
+-tag_print(Response &response, TagType type, StringView value) noexcept;
++tag_print(Response &response, TagType type, std::string_view value) noexcept;
+ 
+ void
+ tag_print(Response &response, TagType type, const char *value) noexcept;
+--- a/src/TimePrint.cxx
++++ b/src/TimePrint.cxx
+@@ -36,5 +36,5 @@ time_print(Response &r, const char *name,
+ 		return;
+ 	}
+ 
+-	r.Fmt(FMT_STRING("{}: {}\n"), name, s);
++	r.Fmt(FMT_STRING("{}: {}\n"), name, s.c_str());
+ }
+--- a/src/command/PlayerCommands.cxx
++++ b/src/command/PlayerCommands.cxx
+@@ -28,6 +28,7 @@
+ #include "Partition.hxx"
+ #include "Instance.hxx"
+ #include "IdleFlags.hxx"
++#include "lib/fmt/AudioFormatFormatter.hxx"
+ #include "util/StringBuffer.hxx"
+ #include "util/ScopeExit.hxx"
+ #include "util/Exception.hxx"
+@@ -185,7 +186,7 @@ handle_status(Client &client, [[maybe_unused]] Request args, Response &r)
+ 
+ 		if (player_status.audio_format.IsDefined())
+ 			r.Fmt(FMT_STRING(COMMAND_STATUS_AUDIO ": {}\n"),
+-			      ToString(player_status.audio_format));
++			      player_status.audio_format);
+ 	}
+ 
+ #ifdef ENABLE_DATABASE
+-- 
+2.39.2
+

diff --git a/media-sound/mpd/files/mpd-0.23.12-stringview.patch b/media-sound/mpd/files/mpd-0.23.12-stringview.patch
new file mode 100644
index 000000000000..fa0f77f2a712
--- /dev/null
+++ b/media-sound/mpd/files/mpd-0.23.12-stringview.patch
@@ -0,0 +1,235 @@
+Backport of upstream commit ec66ee3bfb, which is a prerequisite to
+backport the fix for dev-libs/libfmt-10.
+
+--- a/src/command/FileCommands.cxx
++++ b/src/command/FileCommands.cxx
+@@ -106,7 +106,7 @@ handle_listfiles_local(Response &r, Path path_fs)
+ 
+ gcc_pure
+ static bool
+-IsValidName(const StringView s) noexcept
++IsValidName(const std::string_view s) noexcept
+ {
+ 	if (s.empty() || !IsAlphaASCII(s.front()))
+ 		return false;
+@@ -118,7 +118,7 @@ IsValidName(const StringView s) noexcept
+ 
+ gcc_pure
+ static bool
+-IsValidValue(const StringView s) noexcept
++IsValidValue(const std::string_view s) noexcept
+ {
+ 	return std::none_of(s.begin(), s.end(), [](const auto &ch) { return (unsigned char)ch < 0x20; });
+ }
+@@ -130,7 +130,7 @@ public:
+ 	explicit PrintCommentHandler(Response &_response) noexcept
+ 		:NullTagHandler(WANT_PAIR), response(_response) {}
+ 
+-	void OnPair(StringView key, StringView value) noexcept override {
++	void OnPair(std::string_view key, std::string_view value) noexcept override {
+ 		if (IsValidName(key) && IsValidValue(value))
+ 			response.Fmt(FMT_STRING("{}: {}\n"), key, value);
+ 	}
+--- a/src/command/OtherCommands.cxx
++++ b/src/command/OtherCommands.cxx
+@@ -147,7 +147,7 @@ public:
+ 	explicit PrintTagHandler(Response &_response) noexcept
+ 		:NullTagHandler(WANT_TAG), response(_response) {}
+ 
+-	void OnTag(TagType type, StringView value) noexcept override {
++	void OnTag(TagType type, std::string_view value) noexcept override {
+ 		if (response.GetClient().tag_mask.Test(type))
+ 			tag_print(response, type, value);
+ 	}
+--- a/src/decoder/plugins/AdPlugDecoderPlugin.cxx
++++ b/src/decoder/plugins/AdPlugDecoderPlugin.cxx
+@@ -81,11 +81,11 @@ adplug_file_decode(DecoderClient &client, Path path_fs)
+ }
+ 
+ static void
+-adplug_scan_tag(TagType type, const std::string &value,
++adplug_scan_tag(TagType type, const std::string_view value,
+ 		TagHandler &handler) noexcept
+ {
+ 	if (!value.empty())
+-		handler.OnTag(type, {value.data(), value.size()});
++		handler.OnTag(type, value);
+ }
+ 
+ static bool
+--- a/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx
++++ b/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx
+@@ -39,6 +39,8 @@
+ 
+ #include <string.h>
+ 
++using std::string_view_literals::operator""sv;
++
+ class EmbeddedCuePlaylist final : public SongEnumerator {
+ public:
+ 	/**
+@@ -69,14 +71,15 @@ public:
+ 
+ 	ExtractCuesheetTagHandler() noexcept:NullTagHandler(WANT_PAIR) {}
+ 
+-	void OnPair(StringView key, StringView value) noexcept override;
++	void OnPair(std::string_view key, std::string_view value) noexcept override;
+ };
+ 
+ void
+-ExtractCuesheetTagHandler::OnPair(StringView name, StringView value) noexcept
++ExtractCuesheetTagHandler::OnPair(std::string_view name, std::string_view value) noexcept
+ {
+-	if (cuesheet.empty() && name.EqualsIgnoreCase("cuesheet"))
+-		cuesheet = {value.data, value.size};
++	if (cuesheet.empty() &&
++	    StringView{name}.EqualsIgnoreCase("cuesheet"sv))
++		cuesheet = value;
+ }
+ 
+ static std::unique_ptr<SongEnumerator>
+--- a/src/tag/Handler.cxx
++++ b/src/tag/Handler.cxx
+@@ -25,13 +25,15 @@
+ 
+ #include <algorithm>
+ 
++using std::string_view_literals::operator""sv;
++
+ void
+-NullTagHandler::OnTag(TagType, StringView) noexcept
++NullTagHandler::OnTag(TagType, std::string_view) noexcept
+ {
+ }
+ 
+ void
+-NullTagHandler::OnPair(StringView, StringView) noexcept
++NullTagHandler::OnPair(std::string_view, std::string_view) noexcept
+ {
+ }
+ 
+@@ -54,18 +56,18 @@ AddTagHandler::OnDuration(SongTime duration) noexcept
+ /**
+  * Skip leading zeroes and a non-decimal suffix.
+  */
+-static StringView
+-NormalizeDecimal(StringView s)
++static std::string_view
++NormalizeDecimal(std::string_view s)
+ {
+ 	auto start = std::find_if(s.begin(), s.end(),
+ 				  [](char ch){ return ch != '0'; });
+ 	auto end = std::find_if(start, s.end(),
+ 				[](char ch){ return !IsDigitASCII(ch); });
+-	return {start, end};
++	return StringView{start, end};
+ }
+ 
+ void
+-AddTagHandler::OnTag(TagType type, StringView value) noexcept
++AddTagHandler::OnTag(TagType type, std::string_view value) noexcept
+ {
+ 	if (type == TAG_TRACK || type == TAG_DISC) {
+ 		/* filter out this extra data and leading zeroes */
+@@ -77,9 +79,9 @@ AddTagHandler::OnTag(TagType type, StringView value) noexcept
+ }
+ 
+ void
+-FullTagHandler::OnPair(StringView name, StringView) noexcept
++FullTagHandler::OnPair(std::string_view name, std::string_view) noexcept
+ {
+-	if (name.EqualsIgnoreCase("cuesheet"))
++	if (StringView{name}.EqualsIgnoreCase("cuesheet"sv))
+ 		tag.SetHasPlaylist(true);
+ }
+ 
+--- a/src/tag/Handler.hxx
++++ b/src/tag/Handler.hxx
+@@ -24,8 +24,11 @@
+ #include "Chrono.hxx"
+ #include "util/Compiler.h"
+ 
++#include <cstddef>
++#include <span>
++#include <string_view>
++
+ template<typename T> struct ConstBuffer;
+-struct StringView;
+ struct AudioFormat;
+ class TagBuilder;
+ 
+@@ -81,13 +84,14 @@ public:
+ 	 * @param the value of the tag; the pointer will become
+ 	 * invalid after returning
+ 	 */
+-	virtual void OnTag(TagType type, StringView value) noexcept = 0;
++	virtual void OnTag(TagType type, std::string_view value) noexcept = 0;
+ 
+ 	/**
+ 	 * A name-value pair has been read.  It is the codec specific
+ 	 * representation of tags.
+ 	 */
+-	virtual void OnPair(StringView key, StringView value) noexcept = 0;
++	virtual void OnPair(std::string_view key,
++			    std::string_view value) noexcept = 0;
+ 
+ 	/**
+ 	 * Declare the audio format of a song.
+@@ -125,8 +129,9 @@ public:
+ 		:TagHandler(_want_mask) {}
+ 
+ 	void OnDuration([[maybe_unused]] SongTime duration) noexcept override {}
+-	void OnTag(TagType type, StringView value) noexcept override;
+-	void OnPair(StringView key, StringView value) noexcept override;
++	void OnTag(TagType type, std::string_view value) noexcept override;
++	void OnPair(std::string_view key,
++		    std::string_view value) noexcept override;
+ 	void OnAudioFormat(AudioFormat af) noexcept override;
+ 	void OnPicture(const char *mime_type,
+ 		       ConstBuffer<void> buffer) noexcept override;
+@@ -149,7 +154,7 @@ public:
+ 		:AddTagHandler(0, _builder) {}
+ 
+ 	void OnDuration(SongTime duration) noexcept override;
+-	void OnTag(TagType type, StringView value) noexcept override;
++	void OnTag(TagType type, std::string_view value) noexcept override;
+ };
+ 
+ /**
+@@ -173,7 +178,8 @@ public:
+ 				AudioFormat *_audio_format=nullptr) noexcept
+ 		:FullTagHandler(0, _builder, _audio_format) {}
+ 
+-	void OnPair(StringView key, StringView value) noexcept override;
++	void OnPair(std::string_view key,
++		    std::string_view value) noexcept override;
+ 	void OnAudioFormat(AudioFormat af) noexcept override;
+ };
+ 
+--- a/test/read_tags.cxx
++++ b/test/read_tags.cxx
+@@ -60,16 +60,16 @@ public:
+ 		printf("duration=%f\n", duration.ToDoubleS());
+ 	}
+ 
+-	void OnTag(TagType type, StringView value) noexcept override {
++	void OnTag(TagType type, std::string_view value) noexcept override {
+ 		printf("[%s]=%.*s\n", tag_item_names[type],
+-		       int(value.size), value.data);
++		       int(value.size()), value.data());
+ 		empty = false;
+ 	}
+ 
+-	void OnPair(StringView key, StringView value) noexcept override {
++	void OnPair(std::string_view key, std::string_view value) noexcept override {
+ 		printf("\"%.*s\"=%.*s\n",
+-		       int(key.size), key.data,
+-		       int(value.size), value.data);
++		       int(key.size()), key.data(),
++		       int(value.size()), value.data());
+ 	}
+ 
+ 	void OnAudioFormat(AudioFormat af) noexcept override {
+-- 
+2.39.2
+

diff --git a/media-sound/mpd/mpd-0.23.12-r1.ebuild b/media-sound/mpd/mpd-0.23.12-r1.ebuild
new file mode 100644
index 000000000000..3b9aeb9c020a
--- /dev/null
+++ b/media-sound/mpd/mpd-0.23.12-r1.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2023 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-sound/pulseaudio )
+	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"
+
+PATCHES=(
+	# Backported fixes for dev-libs/libfmt-10. Remove after 0.23.12.
+	"${FILESDIR}/${P}-stringview.patch"
+	"${FILESDIR}/${P}-libfmt10-906074.patch"
+)
+
+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
+
+	elog "If you will be starting mpd via ${EROOT}/etc/init.d/mpd, please make sure that MPD's pid_file is _set_."
+}
+
+src_prepare() {
+	 sed -i \
+		-e 's:^#filesystem_charset.*$:filesystem_charset "UTF-8":' \
+		-e 's:^#user.*$:user "mpd":' \
+		-e 's:^#bind_to_address.*any.*$:bind_to_address "localhost":' \
+		-e 's:^#bind_to_address.*$:bind_to_address "/var/lib/mpd/socket":' \
+		-e 's:^#music_directory.*$:music_directory "/var/lib/mpd/music":' \
+		-e 's:^#playlist_directory.*$:playlist_directory "/var/lib/mpd/playlists":' \
+		-e 's:^#db_file.*$:db_file "/var/lib/mpd/database":' \
+		-e 's:^#log_file.*$:log_file "/var/lib/mpd/log":' \
+		-e 's:^#pid_file.*$:pid_file "/var/lib/mpd/pid":' \
+		-e 's:^#state_file.*$:state_file "/var/lib/mpd/state":' \
+		doc/mpdconf.example || die
+	default
+}
+
+src_configure() {
+	local emesonargs=(
+		$(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 icu)
+		$(meson_feature id3tag)
+		$(meson_use inotify)
+		-Dipv6=enabled
+		$(meson_feature cdio iso9660)
+		$(meson_feature libmpdclient)
+		$(meson_feature libsamplerate)
+		$(meson_feature mms)
+		$(meson_feature nfs)
+		$(meson_use signalfd)
+		$(meson_feature samba smbclient)
+		$(meson_feature libsoxr soxr)
+		$(meson_feature sqlite)
+		$(meson_feature systemd)
+		$(meson_use test)
+		$(meson_feature udisks)
+		-Dupnp=$(usex upnp pupnp disabled)
+		$(meson_feature webdav)
+		-Dzeroconf=$(usex zeroconf avahi disabled)
+		$(meson_feature zlib)
+		$(meson_feature zip zzip)
+	)
+
+	emesonargs+=(
+		$(meson_feature alsa)
+		$(meson_feature ao)
+		$(meson_use fifo)
+		$(meson_feature jack)
+		$(meson_feature openal)
+		$(meson_feature oss)
+		$(meson_use pipe)
+		$(meson_feature pipewire)
+		$(meson_feature pulseaudio pulse)
+		$(meson_use recorder)
+		$(meson_use snapcast)
+		$(meson_feature sndio)
+	)
+
+	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
+
+	emesonargs+=(
+		# media-libs/adplug is not packaged anymore
+		-Dadplug=disabled
+		$(meson_feature audiofile)
+		$(meson_feature faad)
+		$(meson_feature ffmpeg)
+		$(meson_feature flac)
+		$(meson_feature fluidsynth)
+		$(meson_feature gme)
+		$(meson_feature mad)
+		$(meson_feature mikmod)
+		$(meson_feature modplug)
+		$(meson_feature musepack mpcdec)
+		$(meson_feature mpg123)
+		$(meson_feature openmpt)
+		$(meson_feature opus)
+		$(meson_feature sid sidplay)
+		$(meson_feature sndfile)
+		$(meson_feature vorbis)
+		$(meson_feature wavpack)
+		$(meson_feature wildmidi)
+		$(meson_feature qobuz)
+		$(meson_feature soundcloud)
+
+		--libdir="/usr/$(get_libdir)"
+		$(meson_feature doc documentation)
+		-Dsolaris_output=disabled
+
+		-Ddatabase=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)
+	)
+
+	meson_src_configure
+}
+
+src_install() {
+	meson_src_install
+
+	insinto /etc
+	newins doc/mpdconf.example mpd.conf
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}"/${PN}-0.21.1.logrotate ${PN}
+
+	newinitd "${FILESDIR}"/${PN}-0.21.4.init ${PN}
+
+	sed -i -e 's:^#filesystem_charset.*$:filesystem_charset "UTF-8":' "${ED}"/etc/mpd.conf || die "sed failed"
+
+	keepdir /var/lib/mpd
+	keepdir /var/lib/mpd/music
+	keepdir /var/lib/mpd/playlists
+
+	rm -r "${ED}"/usr/share/doc/mpd || die
+
+	fowners mpd:audio -R /var/lib/mpd
+}


             reply	other threads:[~2023-05-18 10:42 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-18 10:42 Joonas Niilola [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-18 14:29 [gentoo-commits] repo/gentoo:master commit in: media-sound/mpd/files/, media-sound/mpd/ Sam James
2025-01-18 14:18 Sam James
2024-09-22 13:07 Sam James
2024-02-29  0:22 Sam James
2024-02-05 15:14 Joonas Niilola
2024-01-02  6:20 Sam James
2019-04-04 16:34 Mikle Kolyada
2019-01-22 17:30 Mikle Kolyada
2018-11-05 14:17 Mikle Kolyada
2018-10-21 18:35 Mikle Kolyada
2018-09-28 20:08 Mikle Kolyada
2018-08-15 13:20 Andreas Sturmlechner
2018-06-17 18:44 Andreas Sturmlechner
2018-06-02 13:25 David Seifert
2018-02-04 17:41 Andreas Sturmlechner
2017-02-17  0:50 Robin H. Johnson
2016-06-22  6:51 Patrice Clement

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1684406550.567cb7f85e0429776ec3b11cfe24ea80fa093f96.juippis@gentoo \
    --to=juippis@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox