summaryrefslogtreecommitdiff
path: root/packages/media-sound/pulseaudio/pulseaudio.exlib
diff options
context:
space:
mode:
Diffstat (limited to 'packages/media-sound/pulseaudio/pulseaudio.exlib')
-rw-r--r--packages/media-sound/pulseaudio/pulseaudio.exlib211
1 files changed, 211 insertions, 0 deletions
diff --git a/packages/media-sound/pulseaudio/pulseaudio.exlib b/packages/media-sound/pulseaudio/pulseaudio.exlib
new file mode 100644
index 0000000..694b984
--- /dev/null
+++ b/packages/media-sound/pulseaudio/pulseaudio.exlib
@@ -0,0 +1,211 @@
+# Copyright 2009 Saleem Abdulrasool <compnerd@compnerd.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require bash-completion \
+ option-renames [ renames=[ 'gtk3 gtk' 'systemd providers:systemd' ] ] \
+ systemd-service \
+ udev-rules \
+ zsh-completion \
+ autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.16 1.15 ] ]
+
+export_exlib_phases src_prepare src_install
+
+SUMMARY="A sound server for POSIX and Win32 systems"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/PulseAudio"
+
+if ever is_scm; then
+ DOWNLOADS=""
+ SCM_REPOSITORY="https://anongit.freedesktop.org/git/${PN}/${PN}.git"
+ require scm-git
+else
+ DOWNLOADS="https://freedesktop.org/software/${PN}/releases/${PNV}.tar.xz"
+fi
+
+REMOTE_IDS="freecode:${PN}"
+
+UPSTREAM_CHANGELOG="${HOMEPAGE}/Notes/${PV} [[ lang = en ]]"
+
+LICENCES="
+ AGPL-3 [[ note = [ src/utils/qpaeq ] ]]
+ LGPL-2.1
+ MIT [[ note = [ src/modules/reserve{-monitor,}.{c,h} src/modules/rtkit.{c,h} ] ]]
+ g711 [[ note = [ src/pulsecore/g711.c ] ]]
+ adrian-license [[ note = [ src/modules/echo-cancel/* ] ]]
+ as-is [[ note = [ src/pulsecore/g711.h ] ]]
+
+ bluetooth? (
+ GPL-2 [[ note = [ src/modules/bluetooth/{a2dp-codecs.h,proximity-helper.c}, everything using
+ the bluetooth module (libpulsecore and everything linking against it), see LICENSE ] ]]
+ LGPL-2.1 [[ note = [ the pulseaudio client lib (libpulse), see LICENSE ] ]]
+ )
+"
+SLOT="0"
+MYOPTIONS="
+ X [[ description = [ Enable X session integration ] ]]
+ async-dns [[ description = [ Support for asynchronous name service queries ] ]]
+ avahi
+ bluetooth
+ caps
+ equalizer [[ description = [ Modules which need equalizer functions ] ]]
+ gtk
+ jack
+ journald
+ oss
+ tcpd
+ webrtc-aec [[ description = [ Alternative to speex for echo cancellation, has higher quality ] ]]
+ arm_cpu_features: neon
+ ( linguas: as be bn_IN ca cs de de_CH el es fi fr gl gu he hi hr hu id it ja kn ko lt ml mr nl
+ nn oc or pa pl pt pt_BR ru sk sr sr@latin sv ta te tr uk zh_CN zh_TW )
+ ( providers: libressl openssl ) [[ number-selected = exactly-one ]]
+ ( providers: eudev systemd ) [[ number-selected = exactly-one ]]
+ ( providers: consolekit elogind systemd ) [[
+ *description = [ Session tracking provider ]
+ number-selected = at-most-one
+ ]]
+"
+
+DEPENDENCIES="
+ build:
+ dev-util/intltool[>=0.35.0]
+ sys-devel/gettext[>=0.18.1]
+ virtual/pkg-config[>=0.20]
+ build+run:
+ group/audio
+ group/pulse
+ group/pulse-access
+ group/pulse-rt
+ user/pulse
+ dev-libs/glib:2[>=2.4.0]
+ dev-libs/orc:0.4[>=0.4.16] [[
+ note = [ dev-libs/orc-0.4.15 is known to cause freezes, see https://bugs.freedesktop.org/show_bug.cgi?id=41589 ]
+ ]]
+ media-libs/libsndfile[>=1.0.20]
+ media-libs/soxr[>=0.1.1]
+ media-libs/speexdsp
+ sys-apps/dbus[>=1.4.12][providers:consolekit?][providers:elogind?][providers:systemd?]
+ sys-devel/libtool[>=2.4]
+ sys-libs/gdbm
+ sys-sound/alsa-lib[>=1.0.19]
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11[xcb(+)]
+ x11-libs/libxcb[>=1.6]
+ x11-libs/libXtst
+ x11-utils/xcb-util
+ )
+ async-dns? ( net-libs/libasyncns[>=0.1] )
+ avahi? ( net-dns/avahi[>=0.6.0][dbus] )
+ bluetooth? (
+ media-libs/sbc[>=1.0]
+ net-wireless/bluez[>=5.0]
+ )
+ caps? ( sys-libs/libcap )
+ equalizer? ( sci-libs/fftw )
+ gtk? ( x11-libs/gtk+:3[>=3.0] )
+ jack? ( media-sound/jack-audio-connection-kit[>=0.117] )
+ journald? ( sys-apps/systemd[>=165] )
+ providers:elogind? ( sys-auth/elogind[>=165] )
+ providers:eudev? ( sys-apps/eudev )
+ providers:libressl? ( dev-libs/libressl:= )
+ providers:openssl? ( dev-libs/openssl )
+ providers:systemd? ( sys-apps/systemd[>=165] )
+ tcpd? ( sys-apps/tcp-wrappers )
+ webrtc-aec? ( media-libs/webrtc-audio-processing[>=0.2] )
+ run:
+ providers:consolekit? ( sys-auth/ConsoleKit2 )
+ test:
+ dev-libs/check[>=0.9.10]
+ suggestion:
+ media-sound/pavucontrol [[ description = [ Provides a simple GTK based volume mixer tool ] ]]
+ media-sound/pulseaudio-dlna [[ description = [ Stream to DLNA/UPNP and Chromecast devices via PulseAudio ] ]]
+ sys-sound/oss [[ description = [ Provides an alternative sound architecture instead of ALSA ] ]]
+ sound-themes/sound-theme-freedesktop [[ description = [ Sample PulseAudio event sounds mentioned in default.pa ] ]]
+"
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/pulseaudio-support-elogind.patch
+)
+
+DEFAULT_SRC_CONFIGURE_PARAMS=(
+ --localstatedir=/var
+ --enable-alsa # udev needs alsa or oss support
+ --enable-dbus # recommended by upstream
+ --enable-glib2
+ --enable-ipv6
+ --enable-manpages
+ --enable-memfd
+ --enable-openssl
+ --enable-udev
+ --disable-adrian-aec # alternative to speex
+ --disable-bluez4
+ --disable-bluez5-ofono-headset
+ --disable-esound
+ --disable-gconf
+ --disable-lirc
+ --disable-per-user-esound-socket
+ --disable-samplerate
+ --disable-solaris
+ --with-database=gdbm # alternative tdb or simple
+ --with-speex # recommended and default resampler
+ --with-soxr # will eventually replace speex as the default resampler
+ --with-systemduserunitdir="${SYSTEMDUSERUNITDIR}"
+ --with-udev-rules-dir="${UDEVRULESDIR}"
+ CFLAGS="${CFLAGS} -D_GNU_SOURCE"
+)
+
+DEFAULT_SRC_CONFIGURE_OPTION_ENABLES=(
+ 'X x11'
+ 'arm_cpu_features:neon neon-opt'
+ 'async-dns asyncns'
+ avahi
+ 'bluetooth bluez5'
+ 'bluetooth bluez5-native-headset'
+ 'gtk gtk3'
+ jack
+ 'journald systemd-journal'
+ 'oss oss-output'
+ 'oss oss-wrapper'
+ 'providers:elogind elogind-login'
+ 'providers:systemd systemd-daemon'
+ 'providers:systemd systemd-login'
+ 'tcpd tcpwrap'
+ webrtc-aec
+)
+DEFAULT_SRC_CONFIGURE_OPTION_WITHS=(
+ "bash-completion bash-completion-dir /usr/share/bash-completion/completions"
+ caps
+ "equalizer fftw"
+ "zsh-completion zsh-completion-dir /usr/share/zsh/site-functions"
+)
+DEFAULT_SRC_CONFIGURE_TESTS=( '--enable-tests --disable-tests' )
+
+AT_M4DIR=( m4 )
+
+pulseaudio_src_prepare() {
+ # Pulseaudio i18n is weird
+ edo mkdir -p build-aux
+ edo touch build-aux/config.rpath
+
+ edo intltoolize --automake --copy --force
+ autotools_src_prepare
+}
+
+pulseaudio_src_install() {
+ default
+
+ # keep the administrator's override directives directories
+ keepdir /etc/pulse/{client,deamon}.conf.d
+
+ insinto /etc/security/limits.d/
+ doins "${FILES}"/pulse-rt.conf
+
+ keepdir /usr/$(exhost --target)/libexec/pulse
+
+ option providers:systemd || option providers:elogind && edo sed \
+ -e '/module-console-kit/,/.endif/{ /^#/!{ s/^/#/ } }' \
+ -i "${IMAGE}"/etc/pulse/default.pa
+
+ ! option zsh-completion && edo rm -r "${IMAGE}"/no
+}
+