# $Id$ PNAME="pulseaudio" PVER="10.0" PBUILD="r3" SPLIT_PACKAGES="libpulse libpulse-dev pulseaudio pulseaudio-dev pulseaudio-alsa pulseaudio-esound pulseaudio-utils pulseaudio-x11" PCAT="media-sound" HOMEPAGE="http://www.pulseaudio.org/" LIBPULSE_DEPEND=">= virtual/glibc >= dev-libs/glib2-2.52 >= dev-libs/json-c-0.11 >= x11-libs/libSM-1 >= x11-libs/libICE-1 >= x11-libs/libXtst-1.2 >= x11-libs/libX11-1.6 >= x11-libs/libxcb-1.11 >= sys-libs/libcap-2.24 >= sys-libs/dbus-libs-1.10 >= sys-libs/libsystemd-230 >= media-libs/libsndfile-1.0.26" COMMON_DEPEND=">= dev-db/tdb-1.3 >= sys-fs/libudev-230 >= media-libs/libsamplerate-0.1.8 >= sci-libs/fftw3-3.3 >= dev-libs/liborc-0.4.24 >= sys-libs/libltdl-2.4" # todo rtkit deamon for realtime support ? ALSA_DEPEND=">= media-libs/alsa-lib-1.1" ALX_DEV_DEPEND=">= dev-libs/glib2-dev-2.52 >= dev-libs/json-c-dev-0.11 >= x11-libs/libSM-dev-1 >= x11-libs/libICE-dev-1 >= x11-libs/libXtst-dev-1.2 >= x11-libs/libX11-dev-1.6 >= x11-libs/libxcb-dev-1.11 >= sys-libs/libcap-dev-2.24 >= sys-apps/dbus-dev-1.10 >= sys-apps/systemd-dev-230 >= media-libs/libsndfile-dev-1.0.26 >= dev-db/tdb-dev-1.3 >= sys-fs/udev-dev-230 >= media-libs/libsamplerate-dev-0.1.8 >= sci-libs/fftw3-dev-3.3 >= media-libs/alsa-lib-dev-1.1" SDEPEND="${LIBPULSE_DEPEND} ${COMMON_DEPEND} ${ALSA_DEPEND} >= dev-lang/orc-0.4.24 >= dev-util/pkgconfig-0.25 >= dev-util/intltool-0.50 >= sys-dev/libtool-2.4 ${ALX_DEV_DEPEND}" SRCFILE="${PNAME}-${PVER}.tar.xz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mtools multilib cleanutils udev msetfeature "!check" SRC_URI=( http://freedesktop.org/software/${PNAME}/releases/${SRCFILE} mirror://${PNAME}/${SRCFILE} ) UP2DATE="updatecmd http://freedesktop.org/software/pulseaudio/releases/ | highesttarball xz" split_info_libpulse() { DESCRIPTION="Libraries for PulseAudio clients." DEPEND="${LIBPULSE_DEPEND}" } split_info_libpulse-dev() { DESCRIPTION="Development files for libpulse." DEPEND="== media-sound/libpulse-${PVER}" } split_info_pulseaudio() { DESCRIPTION="A networked sound server with an advanced plugin system." DEPEND="== media-sound/libpulse-${PVER} ${COMMON_DEPEND}" } split_info_pulseaudio-dev() { DESCRIPTION="Development files for pulseaudio." DEPEND="== media-sound/pulseaudio-${PVER}" } split_info_pulseaudio-alsa() { DESCRIPTION="ALSA support for the PulseAudio sound server." DEPEND="== media-sound/libpulse-${PVER} == media-sound/pulseaudio-${PVER} ${ALSA_DEPEND}" } split_info_pulseaudio-esound() { DESCRIPTION="PulseAudio EsounD daemon compatibility script." DEPEND="== media-sound/libpulse-${PVER} == media-sound/pulseaudio-${PVER}" } split_info_pulseaudio-x11() { DESCRIPTION="X11 support for the PulseAudio sound server." DEPEND="== media-sound/libpulse-${PVER} == media-sound/pulseaudio-${PVER} == media-sound/pulseaudio-utils-${PVER}" } split_info_pulseaudio-utils() { DESCRIPTION="PulseAudio sound server utilities." DEPEND="== media-sound/libpulse-${PVER} == media-sound/pulseaudio-${PVER}" } pkg_setup() { preinstall_pulseaudio } src_prepare() { munpack ${SRCFILE} || die # fix /var/run -> /run all-abis "sed -i 's:^\(PA_SYSTEM_RUNTIME_PATH=\).*:\1\"/run/pulse\":' configure.ac || die" # configure rebuild taken from bootstrap.sh all-abis "autopoint --force" AUTOPOINT='intltoolize --automake --copy' mautoreconf || die } src_compile() { mconfigure \ --libexecdir=/usr/'$(mlibdir)'/pulse-${PVER} \ --localstatedir=/var \ --with-udev-rules-dir=$(mget-udev-rules-dir) \ --with-database=tdb \ --with-caps \ --disable-per-user-esound-socket \ --disable-solaris \ --disable-hal \ --disable-rpath \ --enable-largefile \ --enable-glib2 \ --enable-udev \ --enable-dbus \ --enable-alsa \ --enable-samplerate \ --enable-ipv6 \ --disable-avahi \ --disable-tcpwrap \ --enable-x11 \ --disable-openssl \ --disable-bluez5 \ --disable-bluez4 \ --enable-systemd \ --disable-asyncns \ --disable-oss-output \ --disable-lirc \ --disable-jack \ --disable-gconf \ --disable-default-build-tests \ || die mmake || die } src_install_libpulse() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ etc/pulse/client.conf \ usr/$(mlibdir)/*.so.* usr/$(mlibdir)/pulseaudio \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/*.so.* usr/lib/pulseaudio") \ || die } src_install_libpulse-dev() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/include \ usr/$(mlibdir)/*.so usr/$(mlibdir)/*.la usr/$(mlibdir)/cmake usr/$(mlibdir)/pkgconfig \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/*.so usr/lib/*.la usr/lib/cmake usr/lib/pkgconfig") \ usr/share/vala \ usr/share/man/man5/pulse-client.conf.5 \ || die } src_install_pulseaudio() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die # make avahi support optional sed -i '/load-module\ module-zeroconf-publish/s:^#::' ${BINDIR}/etc/pulse/default.pa || die sed -i $'/load-module\ module-zeroconf-publish/{i.ifexists\ module-zeroconf-publish.so\n;a.endif\n;}' ${BINDIR}/etc/pulse/default.pa || die # disable consolekit, use systemd sed -i '/load-module\ module-console-kit/s:^:#:' ${BINDIR}/etc/pulse/default.pa || die zapmost ${BINDIR} \ etc/pulse/daemon.conf \ etc/pulse/*.pa \ etc/dbus-1 \ usr/bin/pulseaudio \ usr/$(mlibdir)/pulse-${major_pver}/modules \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/pulse-${major_pver}/modules") \ $(mget-udev-rules-dir) \ || die # remove modules which are in other packages mdelete /usr/$(mlibdir)/pulse-${major_pver}/modules/\*alsa\* || die mdelete /usr/$(mlibdir)/pulse-${major_pver}/modules/\*esound\* || die mdelete /usr/$(mlibdir)/pulse-${major_pver}/modules/\*x11\* || die if [[ $(mlibdir) != lib ]] then mdelete /usr/lib/pulse-${major_pver}/modules/\*alsa\* || die mdelete /usr/lib/pulse-${major_pver}/modules/\*esound\* || die mdelete /usr/lib/pulse-${major_pver}/modules/\*x11\* || die fi # state dir mkeepdir /run/pulse || die mchown pulse.pulse /run/pulse || die } src_install_pulseaudio-dev() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/share/locale \ usr/share/man/man1/pulseaudio.1 \ usr/share/man/man5/default.pa.5 \ usr/share/man/man5/pulse-daemon.conf.5 \ || die } src_install_pulseaudio-alsa() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/$(mlibdir)/pulse-${major_pver}/modules/*alsa* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/pulse-${major_pver}/modules/*alsa*") \ usr/share/pulseaudio/alsa-mixer \ || die } src_install_pulseaudio-esound() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/bin/esdcompat \ usr/$(mlibdir)/pulse-${major_pver}/modules/*esound* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/pulse-${major_pver}/modules/*esound*") \ usr/share/man/man1/esdcompat.1 \ || die } src_install_pulseaudio-x11() { local major_pver="$(echo ${PVER} | cut -d. -f1-2)" mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ etc/xdg \ usr/bin/start-pulseaudio* \ usr/$(mlibdir)/pulse-${major_pver}/modules/*x11* \ $([[ $(mlibdir) != lib ]] && echo "usr/lib/pulse-${major_pver}/modules/*x11*") \ usr/share/man/man1/start-pulseaudio* \ || die } src_install_pulseaudio-utils() { mmake -j1 DESTDIR=${BINDIR} install || die zapmost ${BINDIR} \ usr/bin/pa* \ usr/share/man/man1/pa* \ || die } preinstall_pulseaudio() { # adding pulse user mgroupadd -o "-g 11" audio mgroupadd pulse-access mgroupadd pulse museradd -o "-g pulse -G audio -d /run/pulse -s /bin/false" pulse } postinstall_pulseaudio() { if [[ -z $(magequery -n alsa-plugins) ]] then echo "You have alsa support enabled so you probably want to install" echo "'media-sound/alsa-plugins' with pulseaudio support to have" echo "alsa using applications route their sound through pulseaudio." fi }