Bug 1430506 - Install pulseaudio 2.0 on CentOS build images. r=nalexander
authorMike Hommey <mh+mozilla@glandium.org>
Sat, 13 Jan 2018 06:24:51 +0900
changeset 453643 e3cd1efb911c0fb74e36640b5866300570749a6e
parent 453642 412cb15c620265f7545812b2de1714e7b7ad1485
child 453644 e140335f123762045a9a3bfcd31e83736f968150
child 453678 fc1f453bb9538d292fd325f3ecea742aaa5edd60
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnalexander
bugs1430506, 1427150
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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