Linux HOWTOs

About | Home | Search


HOWTO: pulseaudio
Description: Sound server
Click here for ChangeLog
NOTE: I use GNU tar >= 1.13.25 so it's -j for .tar.bz2 files,
it's safe to assume that make, gcc, binutils, fileutils/coreutils, gawk, sed, and grep are prerequisites for almost everything


# PulseAudio
# ==========
# PulseAudio used to be known as Polypaudio:
# http://0pointer.de/blog/projects/pulse.html

# Prerequisites:
# m4
# iconv
# XFree86 or X.org (optional)
# pkg-config
# libsndfile >= 1.0.10
# libsamplerate >= 0.1.0
# ALSA's alsa-lib >= 1.0 (optional)
# GLib 2.0 (optional)
# GConf-2.0 >= 2.4.0  (optional)
# Avahi >= 0.6.0 (optional)
# liboil-0.3 >= 0.3.0
# JACK (optional)
# libasyncns (optional; below)
# tcp wrappers (optional)
# lirc (optional) 
# HAL >= 0.57
# BlueZ >= 3.0 (optional; for Bluetooth)
# D-Bus >= 1.0.0
# PolicyKit (the link is to the HAL howto)


# libasyncns 0.3
# ==============
cd
test -f installed/libasyncns-0.3.tar.gz &&
 mv installed/libasyncns-0.3.tar.gz .
test ! -f libasyncns-0.3.tar.gz &&
 wget http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.3.tar.gz
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "libasyncns-*" -exec rm -r {} \;
tar xzvf ~/libasyncns-0.3.tar.gz
cd libasyncns-0.3
test $UID = 0 && chown -R root:root .
./configure
make

# Become root to install it
su

# Remove old library files, install it
rm -f /usr/local/lib/libasyncns.*
make install
ldconfig

# Make sure your non-root user can remove the source later
chown -R $USER .
chmod -R u+w .

# Become yourself again
exit

cd
mkdir -p -m 0700 installed
rm -f installed/libasyncns-*.tar.*
mv libasyncns-0.3.tar.gz installed/


# PulseAudio 0.9.10
# =================
cd
test -f installed/pulseaudio-0.9.10.tar.gz &&
 mv installed/pulseaudio-0.9.10.tar.gz .
test ! -f pulseaudio-0.9.10.tar.gz &&
 wget http://0pointer.de/lennart/projects/pulseaudio/\
pulseaudio-0.9.10.tar.gz
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "pulseaudio-*" -exec rm -r {} \;
tar xzvf ~/pulseaudio-0.9.10.tar.gz
cd pulseaudio-0.9.10
test $UID = 0 && chown -R root:root .

# Apply this patch from Gentoo:
# https://bugs.gentoo.org/attachment.cgi?id=147967
wget -O pulseaudio-0.9.10-signature.patch \
 'http://bugs.gentoo.org/attachment.cgi?id=147967' &&
 patch -p1 < pulseaudio-0.9.10-signature.patch

# The default user for running the PulseAudio daemon system-wide is 'pulse',
# the default group is 'pulse'.  The group for users that are allowed to
# start it with realtime scheduling is 'pulse-rt'.  The group that is
# allowed access to a system-wide daemon is 'pulse-access'.  You'll need to
# create the user and groups.  If you want to change the user or groups, see
# the configure options.

./configure
make

# Become root to install it
su

( cd /usr/local/lib ; rm -f libpulse.* libpulse-mainloop-glib.* \
 libpulse-simple.* libpulsedsp.* libpulsecore.* )
make install
ldconfig

# Read this for some info about using the PulseAudio daemon:
# http://pulseaudio.org/wiki/FirstSteps

# Make sure your non-root user can remove the source later
chown -R $USER .
chmod -R u+w .

# Become yourself again
exit

cd
mkdir -p -m 0700 installed
rm -f installed/pulseaudio-*.tar.*
mv pulseaudio-0.9.10.tar.gz installed/


# If you ever want to uninstall libasyncns and PulseAudio, this should do
# it ('make uninstall' in each should do it if you have the configure'd
# source):
cd
su
test -d src/libasyncns-* && ( cd src/libasyncns-* ; make uninstall )
test -d src/pulseaudio-* && ( cd src/pulseaudio-* ; make uninstall )
( cd /usr/local/bin ; rm -f esdcompat pacat pacmd pactl padsp paplay \
 pax11publish pulseaudio )
test -d /usr/local/etc/pulse && rm -r /usr/local/etc/pulse
rm -f /usr/local/include/asyncns.h
test -d /usr/local/include/pulse && rm -r /usr/local/include/pulse
test -d /usr/local/include/pulsecore && rm -r /usr/local/include/pulsecore
( cd /usr/local/lib ; rm -f libasyncns.* libpulse.* \
 libpulse-mainloop-glib.* libpulse-simple.* libpulsedsp.* libpulsecore.* )
( cd /usr/local/lib/pkgconfig ; rm -f libasyncns.pc libpulse.pc \
 libpulse-mainloop-glib.pc libpulse-simple.pc )
find /usr/local/lib -maxdepth 1 -type d -name "pulse-*" -exec rm -r {} \;
test -d /usr/local/libexec/pulse && rm -r /usr/local/libexec/pulse
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "libasyncns-*" -exec rm -r {} \;
find ~/src -maxdepth 1 -type d -name "pulseaudio-*" -exec rm -r {} \;
rm -f ~/installed/libasyncns-*.tar.* ~/installed/pulseaudio-*.tar.*

Back to the list


Last updated: Tue, 07 Aug 2018 12:06:17 -0400
Jason Englander <jason at englanders dot us>