Bug 1430506 - Install pulseaudio 2.0 on CentOS build images. r=nalexander draft
authorMike Hommey <mh+mozilla@glandium.org>
Sat, 13 Jan 2018 06:24:51 +0900
changeset 720630 47d25d843444ca6db54929a60dfba8f0facff94b
parent 720581 8e33bdf820dcc2ecd6f326eb83c39fc5e4769dcf
child 746110 9291db46e88994636508e32c7cd2542c6bda2bbc
push id95592
push userbmo:mh+mozilla@glandium.org
push dateMon, 15 Jan 2018 22:09:46 +0000
reviewersnalexander
bugs1430506, 1427150
milestone59.0a1
Bug 1430506 - Install pulseaudio 2.0 on CentOS build images. r=nalexander Switching to Debian build images will force a version bump from pulseaudio 0.9.something to pulseaudio 2.0. Practically speaking, as long as bug 1427150 is fixed (which it is), this is strictly better, because this enables all the PA_CHECK_VERSION(2,0,0) code in libcubeb, which handles port availability (whether output is plugged or not), and with bug 1427150, it does so in a backward compatible manner. Now, since this is a behavior change from what we're currently shipping, this has the potential of triggering unexpected test failures, or break sound for users. The likelyhood of the latter happening is rather low, though, because Linux distros have been building with pulseaudio >= 2.0 for a long time and we haven't heard about port availability breaking sound for them. But it's still better to decouple this change from the switch to Debian. We abuse the build-gtk3.sh script which installs gtk3 in the CentOS build image to install pulseaudio as well.
build/unix/build-gtk3/build-gtk3.sh
--- a/build/unix/build-gtk3/build-gtk3.sh
+++ b/build/unix/build-gtk3/build-gtk3.sh
@@ -6,32 +6,37 @@ fontconfig_version=2.8.0
 libffi_version=3.0.13
 glib_version=2.34.3
 gdk_pixbuf_version=2.26.5
 pixman_version=0.20.2
 cairo_version=1.10.2
 pango_version=1.30.1
 atk_version=2.2.0
 gtk__version=3.4.4
+pulseaudio_version=2.0
 
 fontconfig_url=http://www.freedesktop.org/software/fontconfig/release/fontconfig-${fontconfig_version}.tar.gz
 libffi_url=ftp://sourceware.org/pub/libffi/libffi-${libffi_version}.tar.gz
 glib_url=http://ftp.gnome.org/pub/gnome/sources/glib/${glib_version%.*}/glib-${glib_version}.tar.xz
 gdk_pixbuf_url=http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/${gdk_pixbuf_version%.*}/gdk-pixbuf-${gdk_pixbuf_version}.tar.xz
 pixman_url=http://cairographics.org/releases/pixman-${pixman_version}.tar.gz
 cairo_url=http://cairographics.org/releases/cairo-${cairo_version}.tar.gz
 pango_url=http://ftp.gnome.org/pub/GNOME/sources/pango/${pango_version%.*}/pango-${pango_version}.tar.xz
 atk_url=http://ftp.gnome.org/pub/GNOME/sources/atk/${atk_version%.*}/atk-${atk_version}.tar.xz
 gtk__url=http://ftp.gnome.org/pub/gnome/sources/gtk+/${gtk__version%.*}/gtk+-${gtk__version}.tar.xz
+pulseaudio_url=https://freedesktop.org/software/pulseaudio/releases/pulseaudio-${pulseaudio_version}.tar.xz
 
 root_dir=$(mktemp -d)
 cd $root_dir
 
 make_flags=-j$(nproc)
 
+# Install a few packages for pulseaudio.
+yum install -y libtool-ltdl-devel libtool-ltdl-devel.i686 json-c-devel json-c-devel.i686 libsndfile-devel libsndfile-devel.i686
+
 build() {
 	name=$1
 	shift
 	pkg=$(echo $name | tr '+-' '__')
 	version=$(eval echo \$${pkg}_version)
 	url=$(eval echo \$${pkg}_url)
 	wget -c -P $root_dir $url
 	tar -axf $root_dir/$name-$version.tar.*
@@ -67,16 +72,17 @@ build libffi
 build glib
 build gdk-pixbuf --without-libtiff --without-libjpeg
 build pixman --disable-gtk
 build cairo --enable-tee
 build pango
 build atk
 make_flags="$make_flags GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
 build gtk+
+build pulseaudio --disable-nls
 
 done
 
 rm -rf $root_dir
 
 echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
 echo /usr/local/lib64 >> /etc/ld.so.conf.d/local.conf
 ldconfig