aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcallmetango <callmetango@users.noreply.github.com>2017-01-25 20:35:37 +0100
committerAnthony G. Basile <blueness@gentoo.org>2017-01-29 06:16:18 -0500
commit40d2a7902e1a2053bbe06dbdc361fc63d970c677 (patch)
treed675fe404b6ff2bf1e0d76f6edb8ab6d344977e8 /media-sound
parentapp-admin/rsyslog: added version 8.24.0 with patches from Alpine Linux (diff)
downloadmusl-40d2a7902e1a2053bbe06dbdc361fc63d970c677.tar.gz
musl-40d2a7902e1a2053bbe06dbdc361fc63d970c677.tar.bz2
musl-40d2a7902e1a2053bbe06dbdc361fc63d970c677.zip
media-sound/pulseaudio: added version 9.0 with patches from Alpine Linux
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/pulseaudio/Manifest8
-rw-r--r--media-sound/pulseaudio/files/pulseaudio-9.0-musl-padsp.patch67
-rw-r--r--media-sound/pulseaudio/files/pulseaudio.conf.d7
-rw-r--r--media-sound/pulseaudio/files/pulseaudio.init.d-581
-rw-r--r--media-sound/pulseaudio/files/pulseaudio.service10
-rw-r--r--media-sound/pulseaudio/files/pulseaudio.tmpfiles1
-rw-r--r--media-sound/pulseaudio/metadata.xml84
-rw-r--r--media-sound/pulseaudio/pulseaudio-9.0.ebuild370
8 files changed, 628 insertions, 0 deletions
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 <raj.khem@gmail.com>
+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 <raj.khem@gmail.com>
+---
+ 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>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sound@gentoo.org</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
+}