List of Compilation Dependencies (Distro-Specific)
Most distributions' package managers provide PulseAudio these days. Thanks to dependency graphs, a simple command such as yum install pulseaudio or aptitude install pulseaudio will automatically determine which support libraries are required to get a working PulseAudio instance.
However, since PulseAudio is released so often, many people like to compile PulseAudio from source, even when their distribution does not support the latest version. In the best case, your distribution might already ship the development packages for all of PulseAudio's dependencies, which makes the compilation process much simpler. But for those inexperienced with compiling, it may be difficult to interpret configure errors to understand what packages are needed.
The lists below should be maintained by the community to list package names for each distribution (or for each distribution version, if the names differ between versions) which are required to compile PulseAudio. Remember, this is a wiki; if you want to see your distribution here, and you have successfully compiled PulseAudio, then list your packages here!
The master list of dependencies may well be more current than the lists on this page, and you can't go wrong by grabbing all the latest official sources from the package's website. However, it will take you a lot longer to compile PulseAudio in this case, because you have to figure out how to build these dependencies. So you might want to try the below first. Please see the Wiki page DownloadPulseAudio#Requirements for the master list.
NOTE: This page should not become a step by step how-to for compiling the latest PulseAudio on XYZ distribution. If you want a page like that, create one and link to it from this page or from one of the documentation pages. This page assumes the user knows how to set up their basic build environment (autoconf, automake, gcc, etc) and how to install packages on their system.
Ubuntu 8.04 (The Hardy Heron) and 8.10 (The Intrepid Ibex)
General Notes for Ubuntu
Most of these are algorithmic mappings of lib<library>-dev, but several have an outdated package that will not work if you adhere strictly to that formula. So you want libcap2-dev and libglib2.0-dev, for example, or else you'll get GLib 1.x and libcap 1.0, neither of which are compatible with PulseAudio.
- autoconf 2.62 or later, and automake 1.10 or later, are required for pulseaudio 0.9.13. Download these from gnu.org mirrors and run bootstrap.sh in the source tree.
- liboil0.3-dev corresponds to liboil
- libsamplerate-dev corresponds to libsamplerate
- libsndfile-dev corresponds to libsndfile
- libatomic-ops-dev corresponds to libatomic_ops 1.2
- libspeexdsp-dev corresponds to libspeexdsp Required as of 0.9.11
- libgdbm-dev corresponds to libgdbm Required as of 0.9.11
- libltdl7-dev is required to build; brings in libtool and support library
- libx11-dev corresponds to X11 (optional)
- libcap2-dev corresponds to libcap (optional)
- libasound2-dev corresponds to alsa-lib (optional. Ubuntu 8.10 ships ALSA 1.0.17a, which technically satisfies the dependency, however for massive PA-specific bugfixes, 1.0.18 or later is recommended.)
- libglib2.0-dev corresponds to glib 2.0 (optional)
- libavahi-core-dev corresponds to Avahi (optional)
- libjack-dev corresponds to jack (optional)
- libasyncns-dev corresponds to libasyncns (optional)
- libwrap0-dev corresponds to tcpwrap (optional)
- liblircclient-dev corresponds to lirc (optional)
- libhal-dev corresponds to libhal (optional)
- libpolkit-dev corresponds to policykit (optional)
- libpolkit-dbus-dev, libpolkit-gnome-dev, and libpolkit-grant-dev are also required to satisfy configure-time dependencies for PolicyKit? support (as of PulseAudio 0.9.13)
- libbluetooth-dev corresponds to BlueZ-libs (optional)
- libgconf2-dev corresponds to GConf 2.0 (optional as of 0.9.12)
- libdbus-glib-1-dev corresponds to DBus-GLib 0.7.x (optional)
- intltool provides intltoolize, which is needed by bootstrap.sh
- libsm-dev is required for module-x11-xsmp
Debian 4.0
To the extent that Ubuntu's naming conventions match Debian's, the Ubuntu notes will probably help with Debian too.
Mandriva One 2009.0
- liboil-devel corresponds to liboil
- libsamplerate-devel corresponds to libsamplerate
- libsndfile-devel corresponds to libsndfile
- libatomic_ops-devel corresponds to libatomic_ops 1.2
- libspeex-devel corresponds to libspeexdsp Required as of 0.9.11
- libgdbm-devel corresponds to libgdbm Required as of 0.9.11
- libtool-devel is required to build; brings in libtool and ltdl support library
- libx11_6-devel corresponds to X11 (optional)
- libcap-devel corresponds to libcap (optional)
- libalsa2-devel corresponds to alsa-lib (optional; 2009.0 provides ALSA 1.0.17 so we're good)
- libglib2.0-devel corresponds to glib 2.0 (optional)
- libavahi-core-devel corresponds to Avahi (optional)
- libjack0-devel corresponds to jack (optional)
- libasyncns-devel corresponds to libasyncns (optional)
- libwrap-devel corresponds to tcpwrap (optional)
- liblirc-devel corresponds to lirc (optional)
- libhal-devel corresponds to libhal (optional)
- libpolkit-devel corresponds to policykit (optional)
- libbluez-devel corresponds to BlueZ-libs (optional)
- libGConf2-devel corresponds to GConf 2.0 (optional as of 0.9.12)
- libdbus-glib-1_2-devel corresponds to DBus-GLib 0.7.x (optional)
- intltool provides intltoolize, which is needed by bootstrap.sh
Fedora 9 and 10
Package names are case-sensitive!
- liboil-devel corresponds to liboil
- libsamplerate-devel corresponds to libsamplerate
- libsndfile-devel corresponds to libsndfile
- libatomic_ops-devel corresponds to libatomic_ops 1.2
- speex-devel corresponds to libspeexdsp Required as of 0.9.11
- gdbm-devel corresponds to libgdbm Required as of 0.9.11
- libtool-ltdl-devel is required to build; brings in libtool and ltdl support library
- libX11-devel corresponds to X11 (optional)
- libcap-devel corresponds to libcap (optional)
- alsa-lib-devel corresponds to alsa-lib (optional)
- glib2-devel corresponds to glib 2.0 (optional)
- avahi-devel corresponds to Avahi (optional)
- jack-audio-connection-kit-devel corresponds to jack (optional)
- libasyncns-devel corresponds to libasyncns (optional)
- tcp_wrappers-devel corresponds to tcpwrap (optional)
- lirc-devel corresponds to lirc (optional)
- hal-devel corresponds to libhal (optional)
- PolicyKit?-devel corresponds to policykit (optional)
- bluez-libs-devel corresponds to BlueZ-libs (optional)
- GConf2-devel corresponds to GConf 2.0 (optional as of 0.9.12)
- dbus-glib-devel corresponds to DBus-GLib 0.7.x (optional)
- intltool provides intltoolize, which is needed by bootstrap.sh
OpenSuSE 10.3
PulseAudio-0.9.13 compiles cleanly if these dependencies are provided. In this list, "(same)" means the listed name is used in the distro. "(same-devel)" means $package-devel is also needed. The OpenSuSE "download site" is software.opensuse.org/search. This list is probably useful on other recent and near-future SuSE versions.
- liboil: (same-devel); liboil-devel from download site
- libsamplerate: (same)
- libsndfile: (same-devel); libsndfile-devel from download site, which drags in flac-devel and libFLAC++6 (in the distro).
- libatomic_ops 1.2: called libatomic-ops-devel, note the hyphens.
- libspeexdsp: the distro has libspeex-1.1.99.2 which lacks libspeexdsp, but 1.1.99.4 on the download site has it. speex-devel is also required.
- libgdbm: (same-devel)
- X11: called xorg-x11 (lower case), and xorg-x11-devel is also required.
- libcap: (same)
- alsa-lib: called libasound2, and alsa-devel is also required. The distro version, 1.0.14, is too old; the download site has 1.0.18.
- glib 2.0: called glib2, and glib2-devel is also required.
- Avahi: called avahi
- jack: you need libjack and jack-devel
- libasyncns: seems to be absent in the distro and download site.
- tcpwrap: called tcpd; tcpd-devel is also required.
- lirc: (same); to actually use the remote control you need modules from lirc-kmp-default (or whatever kernel variant).
- libhal: (same)
- policykit: called PolicyKit?.
- BlueZ-libs: the distro version is 3.18 which has the old API. I have not yet tested 4.x.
- GConf 2.0: called gconf2
- DBus-GLib 0.7.x: called dbus-1-glib
- gettext and gettext-devel are required.
- libtool is required to build, and it is in the distro.
- intltool provides intltoolize, which is needed by bootstrap.sh; get from the download site.
OpenSuSE 11.1 and 11.2
I haven't gone back to see if this set of dependencies applies to OpenSuse? 10.x and earlier, so try the above suggestions first if you are not running OpenSUSE 11.x. Installing these packages should cause all required dependencies to be available, as well as all optional dependencies except libasyncns, for PulseAudio versions <= 0.9.14.
- autoconf is required
- automake is required
- liboil-devel corresponds to liboil
- libsamplerate-devel corresponds to libsamplerate
- libsndfile-devel corresponds to libsndfile
- libatomic-ops-devel corresponds to libatomic_ops 1.2
- speex-devel corresponds to libspeexdsp Required as of 0.9.11
- gdbm-devel corresponds to libgdbm Required as of 0.9.11
- libtool and libltdl7 are required to build; brings in libtool and support library
- xorg-x11-libX11-devel corresponds to X11 (optional)
- libcap-devel corresponds to libcap (optional)
- alsa-devel corresponds to alsa-lib (optional)
- glib2-devel corresponds to glib 2.0 (optional)
- libavahi-devel corresponds to Avahi (optional)
- jack-devel corresponds to jack (optional)
- ??? corresponds to libasyncns (optional)
- tcpd-devel corresponds to tcpwrap (optional)
- hal-devel corresponds to libhal (optional)
- PolicyKit?-devel corresponds to policykit (optional)
- bluez-devel corresponds to BlueZ-libs (optional)
- gconf2-devel corresponds to GConf 2.0 (optional as of 0.9.12)
- dbus-1-glib-devel corresponds to DBus-GLib 0.7.x (optional)
- intltool provides intltoolize, which is needed by bootstrap.sh
- xorg-x11-libSM-devel is required for module-x11-xsmp
