diff options
Diffstat (limited to 'packages/media-sound/pulseaudio/pulseaudio.exlib')
-rw-r--r-- | packages/media-sound/pulseaudio/pulseaudio.exlib | 211 |
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 +} + |