From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 0712F139694 for ; Wed, 29 Mar 2017 16:53:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B0F79234060; Wed, 29 Mar 2017 16:53:21 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 7CA6A234060 for ; Wed, 29 Mar 2017 16:53:21 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E03C734164C for ; Wed, 29 Mar 2017 16:53:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5126972DC for ; Wed, 29 Mar 2017 16:53:18 +0000 (UTC) From: "Aric Belsito" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Aric Belsito" Message-ID: <1490806375.775dd5b1a1f7ebee22d1f0fb935f2c50cc1a7b6b.lluixhi@gentoo> Subject: [gentoo-commits] proj/musl:master commit in: media-sound/mpd/, media-sound/mpd/files/ X-VCS-Repository: proj/musl X-VCS-Files: media-sound/mpd/Manifest media-sound/mpd/files/fix-mpd-stacksize.patch media-sound/mpd/files/mpd-0.18.conf.patch media-sound/mpd/files/mpd-0.9.15-systemd.patch media-sound/mpd/files/mpd.logrotate media-sound/mpd/files/mpd2.init media-sound/mpd/metadata.xml media-sound/mpd/mpd-0.19.19.ebuild X-VCS-Directories: media-sound/mpd/files/ media-sound/mpd/ X-VCS-Committer: lluixhi X-VCS-Committer-Name: Aric Belsito X-VCS-Revision: 775dd5b1a1f7ebee22d1f0fb935f2c50cc1a7b6b X-VCS-Branch: master Date: Wed, 29 Mar 2017 16:53:18 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 8b44d380-2835-4006-96ce-926d672ac716 X-Archives-Hash: b67ff327c30c3ff1a719a58a2a8ae015 commit: 775dd5b1a1f7ebee22d1f0fb935f2c50cc1a7b6b Author: Rasmus Thomsen live de> AuthorDate: Wed Mar 29 16:46:39 2017 +0000 Commit: Aric Belsito gmail com> CommitDate: Wed Mar 29 16:52:55 2017 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=775dd5b1 media-sound/mpd: add ebuild with musl fixes media-sound/mpd/Manifest | 8 + media-sound/mpd/files/fix-mpd-stacksize.patch | 19 ++ media-sound/mpd/files/mpd-0.18.conf.patch | 78 ++++++++ media-sound/mpd/files/mpd-0.9.15-systemd.patch | 106 ++++++++++ media-sound/mpd/files/mpd.logrotate | 7 + media-sound/mpd/files/mpd2.init | 36 ++++ media-sound/mpd/metadata.xml | 41 ++++ media-sound/mpd/mpd-0.19.19.ebuild | 257 +++++++++++++++++++++++++ 8 files changed, 552 insertions(+) diff --git a/media-sound/mpd/Manifest b/media-sound/mpd/Manifest new file mode 100644 index 0000000..be5136d --- /dev/null +++ b/media-sound/mpd/Manifest @@ -0,0 +1,8 @@ +AUX fix-mpd-stacksize.patch 598 SHA256 7ae663ecc08498e1d822349cf580eb738f43218308ae0b75efe128276f8ab98a SHA512 f425c20e18207a406f84a6a664f02625fca9d42977b1289f4ba8595406b26f6aa73b4f1cb5a1115858cb75fa7844f42d7174adba3f6af1af216c44901a1ccaa0 WHIRLPOOL 5858b739aee09b6d63a40edb0873c318cd1ad68327936147aafb419b50efd5a971b58aeea5396cbd40d4991842411e35cb594e048a6da7c409816929455341f0 +AUX mpd-0.18.conf.patch 2969 SHA256 a8eb3e339513d6284f6be0a63f9676e44d768fc77d40ebe9f3073dd3171f0fae SHA512 4b646bc5d8fe4c76421f4cb0dbc7894cf9118492662ea1127f90c48f84760a1167988692c2b63f49182afcd46c578de7203356bbf9dd47787f9129f7c3dbf4a5 WHIRLPOOL 58f4a56426f66cd3337aafbfd6612bfc850fa022d13a150ff7f923e48f5d225c376ff751dab0ac5c6753320c060f04fc53a88e64b5ae3238499d3ce563df7654 +AUX mpd-0.9.15-systemd.patch 3056 SHA256 6acef4297941a7d146897465f2dcc9b88e4b3a632e50167177e8105249522c4a SHA512 c9f8b909121f6f3b08ca4bf37ae744aa1468a306e8671681babac228aa5d4b528d094214e2596a862d0b685d01a448b6fd6b8170d6990e10f387f1e498c9dd3b WHIRLPOOL dd1290608de22ad342cc879a7ea316932c4233875d434aa49ee82c7b4e602c3a3bfc5a3c63b71b30338fa9109f4a8d8cb2a276b0b0797b8ef0f4f646bcae0d9a +AUX mpd.logrotate 199 SHA256 e1cbf1c8c77e32789c4dc55bb7761d17c5708a5cb9b9753a7517c15de98696cb SHA512 c55ef8f0e691ef0b358e5dc81a206328de4ccef449959fd7e6f9e95e07cbbee7446639278ebe6f4517063c9a6169e07bca0109958dc722a2caea1503693410ae WHIRLPOOL 85737af75673b8bb7492373bcc02d21205400b2db67340128dffe9fc7a41e98150562730bb8d2b7d94c9dc91dd11dc15c554db75af782b57634dd056a36339ce +AUX mpd2.init 727 SHA256 6ca354f8b8c4b0e8595f7dbda1058fd471a6b538469ea10e7caf8e7f263f621a SHA512 be2b52b3b69dcfb34e7753dce908c4f3c5b2d2e768c9177dbf06d72be487ccb2f2b58c292c0e19c5c6faf83bcabd1acb8fc6f1214b2de030b005b7759566892a WHIRLPOOL c1cb941224c1e7c23fdc722b898f416a4625bf05e9c1cf4d38e8f06ca3b9c45babb37a8cc516bab5185b5206e2839cf67e0334f37a820367d8178d638770621f +DIST mpd-0.19.19.tar.xz 707356 SHA256 bc856cda4136403446d53d11576f86990b61d1fe4668f6008e9eae47450d4e1d SHA512 949bfab2aa5dffb4089ce2023accc934648091d36768f8e4c75f62b4038e21db1e2ef3bb07a0f1cf6a91d0532cac8e7146be948d84dc4d7cdc5b252b7d815b64 WHIRLPOOL 1b2c68d998a26de41bca25cbeab0c6478406c831ac4322162d2c258622224137a1a2dcd88b690ee1869c7f2652201fd534ee773a6e51f6e61bdb5926783f4d75 +EBUILD mpd-0.19.19.ebuild 7686 SHA256 c0228c78aa6d20a9dbd23fce8a0e7e7c23d2cb4cee49042ff396ea0ca5db3b37 SHA512 fb3273f53bf83312070adec629009f4f41b85239edf184c68b174f5091f494de9a030f3438c69bb0fda3bc9c116f5956426b1d758415323744cfb3a2d916708b WHIRLPOOL 9d7af469fc41720db991a0ad28ecf78156f66d422364be03579b8485a9855c166494934cf9d7e022b1be112d47aa09a6a8a5b549c72ba4f01fb7ad7df15ca4de +MISC metadata.xml 2249 SHA256 1b97f04a2698651751529dae3dd5ea97adf287745210844efc755538862524dd SHA512 f17f2e7c9be709ef89cfa429738ebe50962a9f16ce54fe30561be7dc43e02b6f927c4fec83fa4358450fff269970487d5796f59c99d6166a2961e54419f0daa0 WHIRLPOOL b54d4533213f5cb1d7f1fd03143a50f8c15c02e6aa0deeddc1f139a5898a0a7530bca910d404ea17e7b7ad66859d0bfeb5f939f004e2e9c58bdd8f4495138ebb diff --git a/media-sound/mpd/files/fix-mpd-stacksize.patch b/media-sound/mpd/files/fix-mpd-stacksize.patch new file mode 100644 index 0000000..26d6f78 --- /dev/null +++ b/media-sound/mpd/files/fix-mpd-stacksize.patch @@ -0,0 +1,19 @@ +diff --git a/src/thread/Thread.cxx b/src/thread/Thread.cxx +index 2932d47..fd1f3ce 100644 +--- a/src/thread/Thread.cxx ++++ b/src/thread/Thread.cxx +@@ -43,8 +43,12 @@ Thread::Start(void (*_f)(void *ctx), void *_ctx, Error &error) + #ifndef NDEBUG + creating = true; + #endif +- +- int e = pthread_create(&handle, nullptr, ThreadProc, this); ++ pthread_attr_t attr, *attrptr = nullptr; ++ if ((pthread_attr_init(&attr) == 0) ++ && (pthread_attr_setstacksize(&attr, 1024*1024) == 0)) { ++ attrptr = &attr; ++ } ++ int e = pthread_create(&handle, attrptr, ThreadProc, this); + + if (e != 0) { + #ifndef NDEBUG diff --git a/media-sound/mpd/files/mpd-0.18.conf.patch b/media-sound/mpd/files/mpd-0.18.conf.patch new file mode 100644 index 0000000..d71056f --- /dev/null +++ b/media-sound/mpd/files/mpd-0.18.conf.patch @@ -0,0 +1,78 @@ +diff --git a/doc/mpdconf.dist b/doc/mpdconf.dist +index 470a5c9..9f595a6 100644 +--- a/doc/mpdconf.dist ++++ b/doc/mpdconf.dist +@@ -10,14 +10,14 @@ + # be disabled and audio files will only be accepted over ipc socket (using + # file:// protocol) or streaming files over an accepted protocol. + # +-#music_directory "~/music" ++music_directory "/var/lib/mpd/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 + # 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/database" + # + # 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,20 +34,20 @@ + # The special value "syslog" makes MPD use the local syslog daemon. This + # setting defaults to logging to syslog, otherwise logging is disabled. + # +-#log_file "~/.mpd/log" ++log_file "/var/lib/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. ++# for use of mpd --kill and some init scripts. This setting is required when ++# using the Gentoo init script. + # +-#pid_file "~/.mpd/pid" ++pid_file "/var/lib/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/state" + # + # The location of the sticker database. This is a database which + # manages dynamic information attached to songs. +@@ -64,7 +64,7 @@ + # 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). +@@ -78,10 +78,10 @@ + # This setting can deny access to control of the daemon. + # + # For network +-#bind_to_address "any" ++bind_to_address "localhost" + # + # And for Unix Socket +-#bind_to_address "~/.mpd/socket" ++bind_to_address "/var/lib/mpd/socket" + # + # This setting is the TCP port that is desired for the daemon to get assigned + # to. diff --git a/media-sound/mpd/files/mpd-0.9.15-systemd.patch b/media-sound/mpd/files/mpd-0.9.15-systemd.patch new file mode 100644 index 0000000..cd03ebe --- /dev/null +++ b/media-sound/mpd/files/mpd-0.9.15-systemd.patch @@ -0,0 +1,106 @@ +Description: transition to libsystemd from deprecated libsystemd-daemon + systemd 209 merged the various libsystemd-* libraries into a single + libsystemd.so, so we check for that instead and rename the configure + option, define, etc accordingly. +Author: Florian Schlichting +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779762 +Forwarded: not-needed (solved in a less invasive and backward-compatible way upstream) + +--- a/configure.ac ++++ b/configure.ac +@@ -572,10 +572,10 @@ + MPD_DEPENDS([enable_sqlite], [enable_glib], + [Cannot use --enable-sqlite with --disable-glib]) + +-AC_ARG_ENABLE(systemd-daemon, +- AS_HELP_STRING([--enable-systemd-daemon], +- [use the systemd daemon library (default=auto)]),, +- [enable_systemd_daemon=$linux_auto]) ++AC_ARG_ENABLE(systemd, ++ AS_HELP_STRING([--enable-systemd], ++ [use the systemd library (default=auto)]),, ++ [enable_systemd=$linux_auto]) + + AC_ARG_ENABLE(tcp, + AS_HELP_STRING([--disable-tcp], +@@ -762,11 +762,11 @@ + AC_MSG_ERROR([No client interfaces configured!]) + fi + +-MPD_AUTO_PKG(systemd_daemon, SYSTEMD_DAEMON, libsystemd-daemon, +- [systemd activation], [libsystemd-daemon not found]) +-AM_CONDITIONAL(ENABLE_SYSTEMD_DAEMON, test x$enable_systemd_daemon = xyes) +-if test x$enable_systemd_daemon = xyes; then +- AC_DEFINE([ENABLE_SYSTEMD_DAEMON], 1, [Define to use the systemd daemon library]) ++MPD_AUTO_PKG(systemd, SYSTEMD, libsystemd, ++ [systemd activation], [libsystemd not found]) ++AM_CONDITIONAL(ENABLE_SYSTEMD, test x$enable_systemd = xyes) ++if test x$enable_systemd = xyes; then ++ AC_DEFINE([ENABLE_SYSTEMD], 1, [Define to use the systemd library]) + fi + + dnl --------------------------------------------------------------------------- +--- a/Makefile.am ++++ b/Makefile.am +@@ -58,7 +58,7 @@ + $(ICU_LDADD) \ + libutil.a \ + $(FS_LIBS) \ +- $(SYSTEMD_DAEMON_LIBS) \ ++ $(SYSTEMD_LIBS) \ + $(GLIB_LIBS) + + src_mpd_SOURCES = \ +--- a/config.h.in ++++ b/config.h.in +@@ -75,8 +75,8 @@ + /* Define to enable sqlite database support */ + #undef ENABLE_SQLITE + +-/* Define to use the systemd daemon library */ +-#undef ENABLE_SYSTEMD_DAEMON ++/* Define to use the systemd library */ ++#undef ENABLE_SYSTEMD + + /* Define to enable the TwoLAME encoder plugin */ + #undef ENABLE_TWOLAME_ENCODER +--- a/src/Listen.cxx ++++ b/src/Listen.cxx +@@ -32,7 +32,7 @@ + #include + #include + +-#ifdef ENABLE_SYSTEMD_DAEMON ++#ifdef ENABLE_SYSTEMD + #include + #endif + +@@ -77,7 +77,7 @@ + } + } + +-#ifdef ENABLE_SYSTEMD_DAEMON ++#ifdef ENABLE_SYSTEMD + + static bool + listen_systemd_activation(Error &error_r) +@@ -109,7 +109,7 @@ + + listen_socket = new ClientListener(loop, partition); + +-#ifdef ENABLE_SYSTEMD_DAEMON ++#ifdef ENABLE_SYSTEMD + if (listen_systemd_activation(error)) + return true; + +--- a/doc/user.xml ++++ b/doc/user.xml +@@ -110,7 +110,7 @@ + libupnp-dev \ + libavahi-client-dev \ + libsqlite3-dev \ +- libsystemd-daemon-dev libwrap0-dev \ ++ libsystemd-dev libwrap0-dev \ + libcppunit-dev xmlto \ + libboost-dev \ + libglib2.0-dev libicu-dev diff --git a/media-sound/mpd/files/mpd.logrotate b/media-sound/mpd/files/mpd.logrotate new file mode 100644 index 0000000..c913c1f --- /dev/null +++ b/media-sound/mpd/files/mpd.logrotate @@ -0,0 +1,7 @@ +/var/lib/mpd/log { + missingok + postrotate + [ -f /var/run/mpd.pid ] && cat /var/run/mpd.pid | xargs /bin/kill -HUP + [ -f /var/lib/mpd/pid ] && cat /var/lib/mpd/pid | xargs /bin/kill -HUP + endscript +} diff --git a/media-sound/mpd/files/mpd2.init b/media-sound/mpd/files/mpd2.init new file mode 100644 index 0000000..ae5a2cc --- /dev/null +++ b/media-sound/mpd/files/mpd2.init @@ -0,0 +1,36 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount + use net netmount nfsmount alsasound esound pulseaudio +} + +checkconfig() { + if ! [ -f /etc/mpd.conf ]; then + eerror "Configuration file /etc/mpd.conf does not exist." + return 1 + fi + + if ! grep -q '^\s*pid_file' /etc/mpd.conf; then + eerror "Invalid configuration: pid_file needs to be set." + return 1 + fi + + return 0 +} + +start() { + checkconfig || return 1 + + ebegin "Starting Music Player Daemon" + start-stop-daemon --start --quiet --exec /usr/bin/mpd -- /etc/mpd.conf 2>/dev/null + eend $? +} + +stop() { + ebegin "Stopping Music Player Daemon" + /usr/bin/mpd --kill + eend $? +} diff --git a/media-sound/mpd/metadata.xml b/media-sound/mpd/metadata.xml new file mode 100644 index 0000000..dc07436 --- /dev/null +++ b/media-sound/mpd/metadata.xml @@ -0,0 +1,41 @@ + + + + + hwoarang@gentoo.org + Markos Chandras + + + sound@gentoo.org + Gentoo Sound project + + + Enable the AdPlug decoder plugin + Use libcdio for ISO9660 parsing support + Support for web stream listening + Use the eventfd function in MPD's event loop + Use external faad library for AAC decoding + Support writing audio to a FIFO + Enables Fluidsynth MIDI software synthesis (discouraged) + Enable GLib usage + Enables support for media-libs/game-music-emu for playing various video game music formats. + Support for ID3 tags + Use the Linux kernel inotify subsystem to notice changes to mpd music library + Support for MP3 streaming via Icecast2 + Enable support for remote mpd databases + Enable the libsoxr resampler + Enable support for mp3 decoding over media-sound/mpg123 + Enables network streaming support + Enable support for the Network File System + Enable Opus codec support + Support writing audio to a pipe + Enables output plugin for recording radio streams + Build with SID (Commodore 64 Audio) support + Use the signalfd function in MPD's event loop + Build plugin to access soundcloud + Enable support for systemd socket activation + Support twolame MPEG-2 encoding + Enable MIDI support via wildmidi + Support for ZIP files + + diff --git a/media-sound/mpd/mpd-0.19.19.ebuild b/media-sound/mpd/mpd-0.19.19.ebuild new file mode 100644 index 0000000..d582e37 --- /dev/null +++ b/media-sound/mpd/mpd-0.19.19.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools eutils flag-o-matic linux-info multilib systemd user + +DESCRIPTION="The Music Player Daemon (mpd)" +HOMEPAGE="https://www.musicpd.org" +SRC_URI="https://www.musicpd.org/download/${PN}/${PV%.*}/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ppc ppc64 ~sh x86 ~x86-fbsd ~x64-macos" +IUSE="adplug +alsa ao audiofile bzip2 cdio +curl debug +eventfd expat faad + +fifo +ffmpeg flac fluidsynth +glib gme +icu +id3tag +inotify +ipv6 jack + lame mms libav libmpdclient libsamplerate libsoxr +mad mikmod modplug + mpg123 musepack +network nfs ogg openal opus oss pipe pulseaudio recorder + samba selinux sid +signalfd sndfile soundcloud sqlite systemd tcpd twolame + unicode upnp vorbis wavpack wildmidi zeroconf zip zlib" + +OUTPUT_PLUGINS="alsa ao fifo jack network openal oss pipe pulseaudio recorder" +DECODER_PLUGINS="adplug audiofile faad ffmpeg flac fluidsynth mad mikmod + modplug mpg123 musepack ogg flac sid vorbis wavpack wildmidi" +ENCODER_PLUGINS="audiofile flac lame twolame vorbis" + +REQUIRED_USE="|| ( ${OUTPUT_PLUGINS} ) + || ( ${DECODER_PLUGINS} ) + ao? ( glib ) + gme? ( glib ) + jack? ( glib ) + network? ( || ( ${ENCODER_PLUGINS} ) + glib ) + recorder? ( || ( ${ENCODER_PLUGINS} ) ) + sid? ( glib ) + soundcloud? ( glib ) + sqlite? ( glib ) + opus? ( ogg ) + upnp? ( expat ) + vorbis? ( glib ) + wavpack? ( glib )" + +CDEPEND="!=media-libs/game-music-emu-0.6.0_pre20120802 ) + icu? ( dev-libs/icu:= ) + id3tag? ( media-libs/libid3tag ) + jack? ( media-sound/jack-audio-connection-kit ) + lame? ( network? ( media-sound/lame ) ) + libmpdclient? ( media-libs/libmpdclient ) + libsamplerate? ( media-libs/libsamplerate ) + mad? ( media-libs/libmad ) + mikmod? ( media-libs/libmikmod:0 ) + mms? ( media-libs/libmms ) + modplug? ( media-libs/libmodplug ) + mpg123? ( >=media-sound/mpg123-1.12.2 ) + musepack? ( media-sound/musepack-tools ) + network? ( >=media-libs/libshout-2 + !lame? ( !vorbis? ( media-libs/libvorbis ) ) ) + nfs? ( net-fs/libnfs ) + ogg? ( media-libs/libogg ) + openal? ( media-libs/openal ) + opus? ( media-libs/opus ) + pulseaudio? ( media-sound/pulseaudio ) + samba? ( || ( =net-fs/samba-4.0.25 ) ) + sid? ( || ( media-libs/libsidplay:2 media-libs/libsidplayfp ) ) + sndfile? ( media-libs/libsndfile ) + soundcloud? ( >=dev-libs/yajl-2 ) + libsoxr? ( media-libs/soxr ) + sqlite? ( dev-db/sqlite:3 ) + systemd? ( sys-apps/systemd ) + tcpd? ( sys-apps/tcp-wrappers ) + twolame? ( media-sound/twolame ) + upnp? ( net-libs/libupnp ) + 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="${CDEPEND} + dev-libs/boost + virtual/pkgconfig" +RDEPEND="${CDEPEND} + selinux? ( sec-policy/selinux-mpd ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.18.conf.patch + "${FILESDIR}"/${PN}-0.9.15-systemd.patch # bug 584742 + "${FILESDIR}"/fix-mpd-stacksize.patch +) + +pkg_setup() { + use network || ewarn "Icecast and Shoutcast streaming needs networking." + use fluidsynth && ewarn "Using fluidsynth is discouraged by upstream." + + enewuser mpd "" "" "/var/lib/mpd" audio + + 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 /etc/init.d/mpd, please make + sure that MPD's pid_file is _set_." +} + +src_prepare() { + cp -f doc/mpdconf.example doc/mpdconf.dist || die "cp failed" + default + eautoreconf +} + +src_configure() { + local mpdconf="--enable-database --disable-roar --disable-documentation + --enable-dsd --enable-largefile --disable-osx --disable-shine-encoder + --disable-solaris-output --enable-tcp --enable-un --disable-werror + --docdir=${EPREFIX}/usr/share/doc/${PF}" + + if use network; then + mpdconf+=" --enable-shout $(use_enable vorbis vorbis-encoder) + --enable-httpd-output $(use_enable lame lame-encoder) + $(use_enable twolame twolame-encoder) + $(use_enable audiofile wave-encoder)" + else + mpdconf+=" --disable-shout --disable-vorbis-encoder + --disable-httpd-output --disable-lame-encoder + --disable-twolame-encoder --disable-wave-encoder" + fi + + if use samba || use upnp; then + mpdconf+=" --enable-neighbor-plugins" + fi + + append-lfs-flags + append-ldflags "-L/usr/$(get_libdir)/sidplay/builders" + + econf \ + $(use_enable eventfd) \ + $(use_enable signalfd) \ + $(use_enable libmpdclient) \ + $(use_enable expat) \ + $(use_enable upnp) \ + $(use_enable adplug) \ + $(use_enable alsa) \ + $(use_enable ao) \ + $(use_enable audiofile) \ + $(use_enable zlib) \ + $(use_enable bzip2) \ + $(use_enable cdio cdio-paranoia) \ + $(use_enable curl) \ + $(use_enable samba smbclient) \ + $(use_enable nfs) \ + $(use_enable debug) \ + $(use_enable ffmpeg) \ + $(use_enable fifo) \ + $(use_enable flac) \ + $(use_enable fluidsynth) \ + $(use_enable gme) \ + $(use_enable id3tag id3) \ + $(use_enable inotify) \ + $(use_enable ipv6) \ + $(use_enable cdio iso9660) \ + $(use_enable jack) \ + $(use_enable soundcloud) \ + $(use_enable tcpd libwrap) \ + $(use_enable libsamplerate lsr) \ + $(use_enable libsoxr soxr) \ + $(use_enable mad) \ + $(use_enable mikmod) \ + $(use_enable mms) \ + $(use_enable modplug) \ + $(use_enable musepack mpc) \ + $(use_enable mpg123) \ + $(use_enable openal) \ + $(use_enable opus) \ + $(use_enable oss) \ + $(use_enable pipe pipe-output) \ + $(use_enable pulseaudio pulse) \ + $(use_enable recorder recorder-output) \ + $(use_enable sid sidplay) \ + $(use_enable sndfile sndfile) \ + $(use_enable sqlite) \ + $(use_enable systemd) \ + $(use_enable vorbis) \ + $(use_enable wavpack) \ + $(use_enable wildmidi) \ + $(use_enable zip zzip) \ + $(use_enable icu) \ + $(use_enable glib) \ + $(use_enable faad aac) \ + $(use_with zeroconf zeroconf avahi) \ + --with-systemdsystemunitdir=$(systemd_get_systemunitdir) \ + ${mpdconf} +} + +src_install() { + emake DESTDIR="${D}" install + + insinto /etc + newins doc/mpdconf.dist mpd.conf + + newinitd "${FILESDIR}"/${PN}2.init ${PN} + + systemd_newuserunit systemd/${PN}.service ${PN}.service + sed -i '/WantedBy=/c WantedBy=default.target' \ + "${ED}"/usr/lib/systemd/user/mpd.service || die "sed failed" + + if use unicode; then + sed -i -e 's:^#filesystem_charset.*$:filesystem_charset "UTF-8":' \ + "${ED}"/etc/mpd.conf || die "sed failed" + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}"/${PN}.logrotate ${PN} + + use prefix || diropts -m0755 -o mpd -g audio + dodir /var/lib/mpd + keepdir /var/lib/mpd + dodir /var/lib/mpd/music + keepdir /var/lib/mpd/music + dodir /var/lib/mpd/playlists + keepdir /var/lib/mpd/playlists +} + +pkg_postinst() { + # also change the homedir if the user has existed before + usermod -d "/var/lib/mpd" mpd +}