commit:     40d2a7902e1a2053bbe06dbdc361fc63d970c677
Author:     callmetango <callmetango <AT> users <DOT> noreply <DOT> github 
<DOT> com>
AuthorDate: Wed Jan 25 19:35:37 2017 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jan 29 11:16:18 2017 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=40d2a790

media-sound/pulseaudio: added version 9.0 with patches from Alpine Linux

 media-sound/pulseaudio/Manifest                    |   8 +
 .../files/pulseaudio-9.0-musl-padsp.patch          |  67 ++++
 media-sound/pulseaudio/files/pulseaudio.conf.d     |   7 +
 media-sound/pulseaudio/files/pulseaudio.init.d-5   |  81 +++++
 media-sound/pulseaudio/files/pulseaudio.service    |  10 +
 media-sound/pulseaudio/files/pulseaudio.tmpfiles   |   1 +
 media-sound/pulseaudio/metadata.xml                |  84 +++++
 media-sound/pulseaudio/pulseaudio-9.0.ebuild       | 370 +++++++++++++++++++++
 8 files changed, 628 insertions(+)

diff --git a/media-sound/pulseaudio/Manifest b/media-sound/pulseaudio/Manifest
new file mode 100644
index 0000000..64a4743
--- /dev/null
+++ b/media-sound/pulseaudio/Manifest
@@ -0,0 +1,8 @@
+AUX pulseaudio-9.0-musl-padsp.patch 1681 SHA256 
bfa722e400ba820ee7013ceb050058b4e239b1ea8544be23767ceb70ee0bc332 SHA512 
25b648681d9397631138635c024b5c6e289e32f11bf222afe4d853f62501555b5d75cc9058023d24ab8f97e442bcb37a647667e01582539d146762912a8ce08e
 WHIRLPOOL 
543e2ff55f20aa653c7617894e1610f16193bc26b463662d44b6a7525e767b98782e8bee1bec402ce2c5ed02dae2c904da9e99b1d17b59b8823b87265c3988e7
+AUX pulseaudio.conf.d 158 SHA256 
06a4c3effeb3d30df6d384f7405a5c3297a04d7f1db17b511a77702007c95c95 SHA512 
05f1cea02d9fcbcca07202aa5c8664dceb6a71b72b306af7e361c1caeb8708c37760c62af8b27e34d3a00b817ecac73de9e4a9925479f0437c4a0345f0563b58
 WHIRLPOOL 
912ffc1d4da5c8bfdd664da9ac7143c0107084ce80fbd986082fad37c99d35d86cb254d5a81eafde9bfc1362467d4a338c817eadb8052f28eaab0702f2290506
+AUX pulseaudio.init.d-5 2234 SHA256 
77b53c1d70ad7439293c0fe42d72e73b0d56f2ef60d7c7a98d042a01a702300c SHA512 
b882ccf6d278dda70b3911d2fff4620908c1d87edac34fea6310f8db77f5e8514b473ed93b0fc4e7e3499dcae3d866d33fdaa476fea6419a219f9c178c48756b
 WHIRLPOOL 
9fa82547e98e8c632571aa40c6e9b54e06db65f727b497ccf64f248621e180c284b3db242917d4ca9eadcc26484f1d46541e75b1c0e9fc3fe76356c32f168e6e
+AUX pulseaudio.service 227 SHA256 
62cd3b7e83845a27f437790cf293970f85ff02816da599a53cd5f3bf13da3788 SHA512 
567663b231fe7c2682b08b1059cdad1fcb3c4cb01c1b24aed9afb6fb767b30f250b78bbbed48aadfb06c6d1a4963a6db24877d79a1d36c4be2a128b479c086d6
 WHIRLPOOL 
bb548efc14d88b372abaafae557fe23681ce93d1b010fe7761458c5f7793a96886aa368df4cbec5a4fde078f9e8d940020e3ad2a36248ff6c8ab3b70f412d634
+AUX pulseaudio.tmpfiles 36 SHA256 
d836951fb800308256288506b6bd82919d377399e1292dc10905a7aa12dac0e9 SHA512 
f040850d81030ef04e1aa368d333a1ae1b7238adef5772280fc344c3068262d5ab8c9f3edb92db9c443f9d7d21abb27583ea1efc51ed733bbfa43e2edc68dde1
 WHIRLPOOL 
b293b7372b7f63ddea63e6985d1f66a2010d8778ea3ae00501e58f15bfba3ed19b794111c073ee3bd5c8cf98d33f3c8db95220acf57f97477523f4cfa7121553
+DIST pulseaudio-9.0.tar.xz 1537568 SHA256 
c3d3d66b827f18fbe903fe3df647013f09fc1e2191c035be1ee2d82a9e404686 SHA512 
2177d4ab2ab7ded43d6eb5ece763504bdd614f9bdc27ab007894f8f7eed3fd0006a5b7550e5fd099d1877423524bc2baa22775372c8cefd9b772c28134d3e55a
 WHIRLPOOL 
46f7accbae648143f14a51673014d8f20d578b618f79e681062d612f8cc83a3269bbe1ade769fad8b876bddd53d7ed15b04c01c3a518aa9e5fbbf2aca6253d20
+EBUILD pulseaudio-9.0.ebuild 11100 SHA256 
def83816a9592bab1b1c4c1806e7370b3485c062bf480511efbb2a0246e2b83f SHA512 
f0f63b9b4b2328a4bb69275a8517ea285e8268d54fb1558f061055dca0b5f3bb38887df071f53ee83e0b8fe1ea6412a9e7683d9cc6d3a96770cca2e3cf77301f
 WHIRLPOOL 
501359f01234296df0957ef46fd4649d1f3bd69f6861eff1c490efe8907f9243229973dbc7225b1e2788252b5b61b3469274d60d875b5bdfaf522bb668434f81
+MISC metadata.xml 3519 SHA256 
1acbacb97aa01f4b5f0906b845191023418c7c450579756d7f012e17fb9ffef1 SHA512 
caf3dd068c5ec66b53dedc44642f333e091e8aa745cd2a3218b40cefb6713bfaaa8826a773697e6dc22441ee1238b6bb468168fd4a85ef5d504b45b3d6eacbf9
 WHIRLPOOL 
aa7fe6f702994b84b440b6a267f333ac6e7b814e3fb3404fcb378b63f8d97a6eed32f53fcf4c10d0fa8dbe250cb1f3988468a2e5cc8402b61339db87dc34fd49

diff --git a/media-sound/pulseaudio/files/pulseaudio-9.0-musl-padsp.patch 
b/media-sound/pulseaudio/files/pulseaudio-9.0-musl-padsp.patch
new file mode 100644
index 0000000..1593393
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio-9.0-musl-padsp.patch
@@ -0,0 +1,67 @@
+From f6ab3c3aa7a1841c8add04828029356d2a8c88e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Mon, 6 Apr 2015 21:56:31 -0700
+Subject: [PATCH] padsp: Make it compile on musl
+
+break assumptions on glibc and there is no stat64 on non
+glibc C libraries
+
+See pulseaudio bug
+
+https://bugs.freedesktop.org/show_bug.cgi?id=85319
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <[email protected]>
+---
+ src/utils/padsp.c | 15 +++++++++------
+  1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/src/utils/padsp.c b/src/utils/padsp.c
+index 943479b..d0530d7 100644
+--- a/src/utils/padsp.c
++++ b/src/utils/padsp.c
+@@ -2377,7 +2377,7 @@ fail:
+     return ret;
+ }
+ 
+-#ifdef sun
++#ifndef __GLIBC__
+ int ioctl(int fd, int request, ...) {
+ #else
+ int ioctl(int fd, unsigned long request, ...) {
+@@ -2517,10 +2517,13 @@ int stat(const char *pathname, struct stat *buf) {
+ 
+     return 0;
+ }
+-
+ #ifdef HAVE_OPEN64
+-
++#undef stat64
++#ifdef __GLIBC__
+ int stat64(const char *pathname, struct stat64 *buf) {
++#else
++int stat64(const char *pathname, struct stat *buf) {
++#endif
+     struct stat oldbuf;
+     int ret;
+ 
+@@ -2553,7 +2556,7 @@ int stat64(const char *pathname, struct stat64 *buf) {
+ 
+     return 0;
+ }
+-
++#undef open64
+ int open64(const char *filename, int flags, ...) {
+     va_list args;
+     mode_t mode = 0;
+@@ -2679,8 +2682,8 @@ FILE* fopen(const char *filename, const char *mode) {
+ }
+ 
+ #ifdef HAVE_OPEN64
+-
+-FILE *fopen64(const char *filename, const char *mode) {
++#undef fopen64
++FILE *fopen64(const char *__restrict filename, const char *__restrict mode) {
+ 
+     debug(DEBUG_LEVEL_VERBOSE, __FILE__": fopen64(%s)\n", 
filename?filename:"NULL");
+ 

diff --git a/media-sound/pulseaudio/files/pulseaudio.conf.d 
b/media-sound/pulseaudio/files/pulseaudio.conf.d
new file mode 100644
index 0000000..348540b
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio.conf.d
@@ -0,0 +1,7 @@
+# Config file for /etc/init.d/pulseaudio
+# $Id$
+
+# For more see "pulseaudio -h".
+
+# Startup options
+PA_OPTS="--log-target=syslog --disallow-module-loading=1"

diff --git a/media-sound/pulseaudio/files/pulseaudio.init.d-5 
b/media-sound/pulseaudio/files/pulseaudio.init.d-5
new file mode 100644
index 0000000..099edd3
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio.init.d-5
@@ -0,0 +1,81 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+       need localmount
+       use net
+
+       local script="/etc/pulse/system.pa"
+
+       for opt in ${PA_OPTS}; do
+               case "$opt" in
+                       --file=*)       script="${opt#*=}" ;;
+                       -F*)            script="${opt#-F}" ;;
+               esac
+       done
+
+       config "$script"
+
+       local needs="$(get_options need)"
+       if [ -n "${needs}" ]; then
+               need ${needs}
+               return
+       fi
+
+       if egrep -q '^[[:space:]]*load-module[[:space:]]+module-console-kit' 
"$script"; then
+           needs="${needs} consolekit"
+       fi
+
+#ifdef UDEV
+       if egrep -q '^[[:space:]]*load-module[[:space:]]+module-udev-detect' 
"$script"; then
+           needs="${needs} udev"
+       fi
+#endif
+
+#ifdef AVAHI
+       if egrep -q 
'^[[:space:]]*load-module[[:space:]]+module-zeroconf-publish' "$script"; then
+           needs="${needs} avahi-daemon"
+       fi
+#endif
+
+#ifdef BLUETOOTH
+       if egrep -q '^[[:space:]]*load-module[[:space:]]+module-bt-proximity' 
"$script"; then
+           needs="${needs} bluetooth"
+       fi
+#endif
+
+#ifdef ALSA
+       if egrep -q 
'^[[:space:]]*load-module[[:space:]]+module-alsa-(sink|source)' "$script" || 
+           egrep -q 
'^[[:space:]]*load-module[[:space:]]+module-(udev-)?detect' "$script" ||
+           egrep -q 
'^[[:space:]]*add-autoload-source[[:space:]]+(input|output)[[:space:]]+module-alsa-(sink|source)'
 "$script"; then
+           needs="${needs} alsasound"
+       fi
+#endif
+
+       need "${needs}"
+       save_options need "${needs}"
+}
+
+start() {
+       if [ -z "${PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE}" ]; then
+               eerror "Please don't use system wide PulseAudio unless you read 
the"
+               eerror "documentation available at 
http://www.pulseaudio.org/wiki/WhatIsWrongWithSystemMode";
+               eerror ""
+               eerror "When you're done, please set the variable 
PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE in"
+               eerror "/etc/conf.d/pulseaudio . Please remember that upstream 
does not support this mode"
+               eerror "when used for standard desktop configurations."
+               return 1
+       fi
+       ebegin "Starting pulseaudio"
+       PA_ALL_OPTS="${PA_OPTS} --fail=1 --daemonize=1 --system"
+       start-stop-daemon --start --exec /usr/bin/pulseaudio -- ${PA_ALL_OPTS}
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping pulseaudio"
+       start-stop-daemon --stop --quiet --exec /usr/bin/pulseaudio --pidfile 
/var/run/pulse/pid
+       eend $?
+}

diff --git a/media-sound/pulseaudio/files/pulseaudio.service 
b/media-sound/pulseaudio/files/pulseaudio.service
new file mode 100644
index 0000000..c5f0d57
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=System wide PulseAudio instance
+After=syslog.target network.target alsasound.service
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/pulseaudio --system --log-target=syslog
+
+[Install]
+WantedBy=multi-user.target

diff --git a/media-sound/pulseaudio/files/pulseaudio.tmpfiles 
b/media-sound/pulseaudio/files/pulseaudio.tmpfiles
new file mode 100644
index 0000000..88374e3
--- /dev/null
+++ b/media-sound/pulseaudio/files/pulseaudio.tmpfiles
@@ -0,0 +1 @@
+d /var/run/pulse 0755 pulse audio -

diff --git a/media-sound/pulseaudio/metadata.xml 
b/media-sound/pulseaudio/metadata.xml
new file mode 100644
index 0000000..1f547a3
--- /dev/null
+++ b/media-sound/pulseaudio/metadata.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="project">
+    <email>[email protected]</email>
+    <name>Gentoo GNOME Desktop</name>
+  </maintainer>
+  <maintainer type="project">
+    <email>[email protected]</email>
+    <name>Gentoo Sound project</name>
+  </maintainer>
+  <use>
+    <flag name="X">
+      Build the X11 publish module to export PulseAudio information
+      through X11 protocol for clients to make use. Don't enable this
+      flag if you want to use a system wide instance. If unsure, enable
+      this flag.
+    </flag>
+    <flag name="alsa-plugin">
+      Request installing <pkg>media-plugins/alsa-plugins</pkg> with
+      PulseAudio plugin enabled. This ensures that clients supporting
+      ALSA only will use PulseAudio.
+    </flag>
+    <flag name="gnome">
+      Use GConf to store user preferences on streams and so on. Don't
+      enable this flag if you want to use a system wide instance. If
+      unsure, enable this flag.
+    </flag>
+    <flag name="oss">
+      Enable OSS sink/source (output/input). Deprecated, upstream does
+      not support this on systems where other sink/source systems are
+      available (i.e.: Linux). The padsp wrapper is now always build
+      if the system supports OSS at all.
+    </flag>
+    <flag name="glib">
+      Add support to <pkg>dev-libs/glib</pkg>-based mainloop for the
+      libpulse client library, to allow using libpulse on glib-based
+      programs.
+    </flag>
+    <flag name="system-wide" restrict="&gt;=media-sound/pulseaudio-0.9.21.1">
+      Allow preparation and installation of the system-wide init
+      script for PulseAudio. Since this support is only supported for
+      embedded situations, do not enable without reading the upstream
+      instructions at
+         
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/
 .
+    </flag>
+    <flag name="asyncns">Use libasyncns for asynchronous name 
resolution.</flag>
+    <flag name="doc">Build the doxygen-described API documentation.</flag>
+    <flag name="realtime" restrict="&gt;=media-sound/pulseaudio-0.9.21.2-r1">
+      Makes PulseAudio use RealtimeKit (<pkg>sys-auth/rtkit</pkg>) to get
+      real-time priority while running.
+    </flag>
+    <flag name="equalizer">
+      Enable the equalizer module (requires <pkg>sci-libs/fftw</pkg>).
+    </flag>
+    <flag name="ssl">
+      Use <pkg>dev-libs/openssl</pkg> to provide support for RAOP
+      (AirPort) streaming.
+    </flag>
+    <flag name="gdbm">
+      Use <pkg>sys-libs/gdbm</pkg> to store PulseAudio
+      databases. Recommended for desktop usage. This flag causes the
+      whole package to be licensed under GPL-2 or later.
+    </flag>
+    <flag name="webrtc-aec">
+      Uses the webrtc.org AudioProcessing library for enhancing VoIP calls
+      greatly in applications that support it by performing acoustic echo
+      cancellation, analog gain control, noise suppression and other 
processing.
+    </flag>
+    <flag name="xen">
+      Builds a special paravirtualized module for running in a Xen guest.
+    </flag>
+    <flag name="systemd">
+      Build with <pkg>sys-apps/systemd</pkg> support to replace standalone
+      ConsoleKit.
+    </flag>
+    <flag name="native-headset">
+      Build with native HSP backend for bluez 5.
+    </flag>
+    <flag name="ofono-headset">
+      Build with oFono HFP backend for bluez 5, requires 
<pkg>net-misc/ofono</pkg>.
+    </flag>
+  </use>
+</pkgmetadata>

diff --git a/media-sound/pulseaudio/pulseaudio-9.0.ebuild 
b/media-sound/pulseaudio/pulseaudio-9.0.ebuild
new file mode 100644
index 0000000..f7f394b
--- /dev/null
+++ b/media-sound/pulseaudio/pulseaudio-9.0.ebuild
@@ -0,0 +1,370 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit autotools bash-completion-r1 eutils flag-o-matic gnome2-utils 
linux-info systemd user versionator udev multilib-minimal
+
+DESCRIPTION="A networked sound server with an advanced plugin system"
+HOMEPAGE="http://www.pulseaudio.org/";
+SRC_URI="https://freedesktop.org/software/pulseaudio/releases/${P}.tar.xz";
+
+# libpulse-simple and libpulse link to libpulse-core; this is daemon's
+# library and can link to gdbm and other GPL-only libraries. In this
+# cases, we have a fully GPL-2 package. Leaving the rest of the
+# GPL-forcing USE flags for those who use them.
+LICENSE="!gdbm? ( LGPL-2.1 ) gdbm? ( GPL-2 )"
+
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc x86 ~amd64-fbsd 
~amd64-linux ~x86-linux"
+
+# +alsa-plugin as discussed in bug #519530
+IUSE="+alsa +alsa-plugin +asyncns bluetooth +caps dbus doc equalizer +gdbm 
+glib
+gnome gtk ipv6 jack libsamplerate libressl lirc native-headset neon 
ofono-headset
++orc oss qt4 realtime selinux sox ssl systemd system-wide tcpd test +udev
++webrtc-aec +X xen zeroconf"
+
+# See "*** BLUEZ support not found (requires D-Bus)" in configure.ac
+REQUIRED_USE="
+       bluetooth? ( dbus )
+       ofono-headset? ( bluetooth )
+       native-headset? ( bluetooth )
+       udev? ( || ( alsa oss ) )
+"
+
+# libpcre needed in some cases, bug #472228
+RDEPEND="
+       || (
+               elibc_glibc? ( virtual/libc )
+               elibc_uclibc? ( virtual/libc )
+               dev-libs/libpcre
+       )
+       >=media-libs/libsndfile-1.0.20[${MULTILIB_USEDEP}]
+       X? (
+               >=x11-libs/libX11-1.4.0[${MULTILIB_USEDEP}]
+               >=x11-libs/libxcb-1.6[${MULTILIB_USEDEP}]
+               x11-libs/libSM[${MULTILIB_USEDEP}]
+               x11-libs/libICE[${MULTILIB_USEDEP}]
+               x11-libs/libXtst[${MULTILIB_USEDEP}]
+       )
+       caps? ( >=sys-libs/libcap-2.22-r2[${MULTILIB_USEDEP}] )
+       libsamplerate? ( >=media-libs/libsamplerate-0.1.1-r1 )
+       alsa? ( >=media-libs/alsa-lib-1.0.19 )
+       glib? ( >=dev-libs/glib-2.4.0:2[${MULTILIB_USEDEP}] )
+       zeroconf? ( >=net-dns/avahi-0.6.12[dbus] )
+       jack? ( virtual/jack )
+       tcpd? ( sys-apps/tcp-wrappers[${MULTILIB_USEDEP}] )
+       lirc? ( app-misc/lirc )
+       dbus? ( >=sys-apps/dbus-1.0.0[${MULTILIB_USEDEP}] )
+       gtk? ( x11-libs/gtk+:3 )
+       gnome? ( >=gnome-base/gconf-2.4.0 )
+       bluetooth? (
+               >=net-wireless/bluez-5
+               >=sys-apps/dbus-1.0.0
+               media-libs/sbc
+       )
+       asyncns? ( net-libs/libasyncns[${MULTILIB_USEDEP}] )
+       udev? ( >=virtual/udev-143[hwdb(+)] )
+       realtime? ( sys-auth/rtkit )
+       equalizer? ( sci-libs/fftw:3.0 )
+       ofono-headset? ( >=net-misc/ofono-1.13 )
+       orc? ( >=dev-lang/orc-0.4.15 )
+       sox? ( >=media-libs/soxr-0.1.1 )
+       ssl? (
+               !libressl? ( dev-libs/openssl:0= )
+               libressl? ( dev-libs/libressl:= )
+       )
+       >=media-libs/speex-1.2_rc1
+       gdbm? ( sys-libs/gdbm )
+       webrtc-aec? ( >=media-libs/webrtc-audio-processing-0.2 )
+       xen? ( app-emulation/xen-tools )
+       systemd? ( sys-apps/systemd:0=[${MULTILIB_USEDEP}] )
+       >=dev-libs/json-c-0.11[${MULTILIB_USEDEP}]
+       dev-libs/libltdl:0
+       selinux? ( sec-policy/selinux-pulseaudio )
+"
+# it's a valid RDEPEND, libltdl.so is used for native abi
+
+DEPEND="${RDEPEND}
+       sys-devel/m4
+       doc? ( app-doc/doxygen )
+       test? ( dev-libs/check )
+       X? (
+               x11-proto/xproto[${MULTILIB_USEDEP}]
+               >=x11-libs/libXtst-1.0.99.2[${MULTILIB_USEDEP}]
+       )
+       dev-libs/libatomic_ops
+       virtual/pkgconfig
+       system-wide? ( || ( dev-util/unifdef sys-freebsd/freebsd-ubin ) )
+       dev-util/intltool
+       >=sys-devel/gettext-0.18.1
+"
+# This is a PDEPEND to avoid a circular dep
+PDEPEND="
+       alsa? ( alsa-plugin? ( 
>=media-plugins/alsa-plugins-1.0.27-r1[pulseaudio,${MULTILIB_USEDEP}] ) )
+"
+
+# alsa-utils dep is for the alsasound init.d script (see bug #155707)
+# bluez dep is for the bluetooth init.d script
+# PyQt4 dep is for the qpaeq script
+RDEPEND="${RDEPEND}
+       equalizer? ( qt4? ( dev-python/PyQt4[dbus] ) )
+       system-wide? (
+               alsa? ( media-sound/alsa-utils )
+               bluetooth? ( >=net-wireless/bluez-5 )
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-9.0-musl-padsp.patch"
+)
+
+pkg_pretend() {
+       CONFIG_CHECK="~HIGH_RES_TIMERS"
+       WARNING_HIGH_RES_TIMERS="CONFIG_HIGH_RES_TIMERS:\tis not set (required 
for enabling timer-based scheduling in pulseaudio)\n"
+       check_extra_config
+
+       if linux_config_exists; then
+               local snd_hda_prealloc_size=$(linux_chkconfig_string 
SND_HDA_PREALLOC_SIZE)
+               if [ -n "${snd_hda_prealloc_size}" ] && [ 
"${snd_hda_prealloc_size}" -lt 2048 ]; then
+                       ewarn "A preallocated buffer-size of 2048 (kB) or 
higher is recommended for the HD-audio driver!"
+                       ewarn 
"CONFIG_SND_HDA_PREALLOC_SIZE=${snd_hda_prealloc_size}"
+               fi
+       fi
+}
+
+pkg_setup() {
+       linux-info_pkg_setup
+       gnome2_environment_reset #543364
+
+       enewgroup audio 18 # Just make sure it exists
+
+       if use system-wide; then
+               enewgroup pulse-access
+               enewgroup pulse
+               enewuser pulse -1 -1 /var/run/pulse pulse,audio
+       fi
+}
+
+src_prepare() {
+       default
+
+       # Skip test that cannot work with sandbox, bug #501846
+       sed -i -e '/lock-autospawn-test/d' src/Makefile.am || die
+
+       eautoreconf
+}
+
+multilib_src_configure() {
+       local myconf=()
+
+       if use gdbm; then
+               myconf+=( --with-database=gdbm )
+       else
+               myconf+=( --with-database=simple )
+       fi
+
+       if use bluetooth; then
+               if multilib_is_native_abi; then
+                       myconf+=( --enable-bluez5 --disable-bluez4
+                               $(use_enable native-headset 
bluez5-native-headset)
+                               $(use_enable ofono-headset 
bluez5-ofono-headset) )
+               fi
+       else
+               myconf+=( --disable-bluez5 --disable-bluez4 )
+       fi
+
+       myconf+=(
+               --enable-largefile
+               $(use_enable glib glib2)
+               --disable-solaris
+               $(use_enable asyncns)
+               $(use_enable oss oss-output)
+               $(use_enable alsa)
+               $(use_enable lirc)
+               $(use_enable neon neon-opt)
+               $(use_enable tcpd tcpwrap)
+               $(use_enable jack)
+               $(use_enable zeroconf avahi)
+               $(use_enable dbus)
+               $(use_enable gnome gconf)
+               $(use_enable gtk gtk3)
+               $(use_enable libsamplerate samplerate)
+               $(use_enable orc)
+               $(use_enable X x11)
+               $(use_enable test default-build-tests)
+               $(use_enable udev)
+               $(use_with sox soxr)
+               $(use_enable systemd systemd-daemon)
+               $(use_enable systemd systemd-login)
+               $(use_enable systemd systemd-journal)
+               $(use_enable ipv6)
+               $(use_enable ssl openssl)
+               $(use_enable webrtc-aec)
+               $(use_enable xen)
+               $(use_with caps)
+               $(use_with equalizer fftw)
+               --disable-adrian-aec
+               --disable-esound
+               --localstatedir="${EPREFIX}"/var
+               --with-udev-rules-dir="${EPREFIX}/$(get_udevdir)"/rules.d
+               --with-systemduserunitdir=$(systemd_get_userunitdir)
+       )
+
+       if ! multilib_is_native_abi; then
+               # disable all the modules and stuff
+               myconf+=(
+                       --disable-oss-output
+                       --disable-alsa
+                       --disable-lirc
+                       --disable-jack
+                       --disable-avahi
+                       --disable-gconf
+                       --disable-gtk3
+                       --disable-samplerate
+                       --disable-bluez4
+                       --disable-bluez5
+                       --disable-udev
+                       --disable-openssl
+                       --disable-orc
+                       --disable-webrtc-aec
+                       --disable-xen
+                       --without-fftw
+                       --without-soxr
+
+                       # tests involve random modules, so just do them for the 
native
+                       --disable-default-build-tests
+
+                       # hack around unnecessary checks
+                       # (results don't matter, we're not building anything 
using it)
+                       ac_cv_lib_ltdl_lt_dladvise_init=yes
+                       --with-database=simple
+                       LIBSPEEX_CFLAGS=' '
+                       LIBSPEEX_LIBS=' '
+               )
+       fi
+
+       ECONF_SOURCE=${S} \
+       econf "${myconf[@]}"
+}
+
+multilib_src_compile() {
+       if multilib_is_native_abi; then
+               emake
+               use doc && emake doxygen
+       else
+               local targets=( libpulse.la libpulse-simple.la )
+               use glib && targets+=( libpulse-mainloop-glib.la )
+               emake -C src libpulse{,dsp,-simple,-mainloop-glib}.la
+       fi
+}
+
+multilib_src_test() {
+       # We avoid running the toplevel check target because that will run
+       # po/'s tests too, and they are broken. Officially, it should work
+       # with intltool 0.41, but that doesn't look like a stable release.
+       if multilib_is_native_abi; then
+               emake -C src check
+       fi
+}
+
+multilib_src_install() {
+       if multilib_is_native_abi; then
+               emake -j1 DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)" 
install
+               use doc && dohtml -r doxygen/html/
+       else
+               local targets=( libpulse.la libpulse-simple.la )
+               use glib && targets+=( libpulse-mainloop-glib.la )
+               emake DESTDIR="${D}" install-pkgconfigDATA
+               emake DESTDIR="${D}" -C src \
+                       install-libLTLIBRARIES \
+                       install-padsplibLTLIBRARIES \
+                       lib_LTLIBRARIES="${targets[*]}" \
+                       install-pulseincludeHEADERS
+       fi
+}
+
+multilib_src_install_all() {
+       # Drop the script entirely if X is disabled
+       use X || rm "${ED}"/usr/bin/start-pulseaudio-x11
+
+       if use system-wide; then
+               newconfd "${FILESDIR}/pulseaudio.conf.d" pulseaudio
+
+               use_define() {
+                       local define=${2:-$(echo $1 | tr '[:lower:]' 
'[:upper:]')}
+
+                       use "$1" && echo "-D$define" || echo "-U$define"
+               }
+
+               unifdef $(use_define zeroconf AVAHI) \
+                       $(use_define alsa) \
+                       $(use_define bluetooth) \
+                       $(use_define udev) \
+                       "${FILESDIR}/pulseaudio.init.d-5" \
+                       > "${T}/pulseaudio"
+
+               doinitd "${T}/pulseaudio"
+
+               systemd_dounit "${FILESDIR}/${PN}.service"
+       fi
+
+       use zeroconf && sed -i -e '/module-zeroconf-publish/s:^#::' 
"${ED}/etc/pulse/default.pa"
+
+       dodoc NEWS README todo
+
+       # Create the state directory
+       use prefix || diropts -o pulse -g pulse -m0755
+
+       # We need /var/run/pulse, bug #442852
+       use system-wide && systemd_newtmpfilesd "${FILESDIR}/${PN}.tmpfiles" 
"${PN}.conf"
+
+       # Prevent warnings when system-wide is not used, bug #447694
+       use system-wide || rm "${ED}"/etc/dbus-1/system.d/pulseaudio-system.conf
+
+       prune_libtool_files --all
+}
+
+pkg_postinst() {
+       if use system-wide; then
+               elog "You have enabled the 'system-wide' USE flag for 
pulseaudio."
+               elog "This mode should only be used on headless servers, 
embedded systems,"
+               elog "or thin clients. It will usually require manual 
configuration, and is"
+               elog "incompatible with many expected pulseaudio features."
+               elog "On normal desktop systems, system-wide mode is STRONGLY 
DISCOURAGED."
+               elog "For more information, see"
+               elog "    
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/";
+               elog "    
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/";
+               elog "    
https://wiki.gentoo.org/wiki/PulseAudio#Headless_server";
+               if use gnome ; then
+                       elog
+                       elog "By enabling gnome USE flag, you enabled gconf 
support. Please note"
+                       elog "that you might need to remove the gnome USE flag 
or disable the"
+                       elog "gconf module on /etc/pulse/system.pa to be able 
to use PulseAudio"
+                       elog "with a system-wide instance."
+               fi
+       fi
+
+       if use equalizer && ! use qt4; then
+               elog "You've enabled the 'equalizer' USE-flag but not the 'qt4' 
USE-flag."
+               elog "This will build the equalizer module, but the 'qpaeq' 
tool"
+               elog "which is required to set equalizer levels will not work."
+       fi
+
+       if use native-headset && use ofono-headset; then
+               elog "You have enabled both native and ofono headset profiles. 
The runtime decision"
+               elog "which to use is done via the 'headset' argument of 
module-bluetooth-discover."
+       fi
+
+       if use libsamplerate; then
+               elog "The libsamplerate based resamplers are now deprecated, 
because they offer no"
+               elog "particular advantage over speex. Upstream suggests 
disabling them."
+       fi
+
+       # Needed for pulseaudio-6.0 update from older versions
+       if use udev; then
+               if ! version_is_at_least 6.0 ${REPLACING_VERSIONS}; then
+                       udevadm control --reload && udevadm trigger
+               fi
+       fi
+}

Reply via email to