mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Backed out changeset 4d4271a0ccad (bug 1565332) for Android Mochitest failures on a CLOSED TREE.
This commit is contained in:
parent
8d53b63ee8
commit
2bdd678c48
@ -22,8 +22,6 @@ jobs:
|
||||
symbol: I(ib)
|
||||
desktop1604-test:
|
||||
symbol: I(dt16t)
|
||||
debian10-test:
|
||||
symbol: I(deb10-test)
|
||||
# Neither the debian7-*raw nor the debian7-*packages images can have
|
||||
# packages dependencies.
|
||||
debian7-raw:
|
||||
|
@ -1,113 +0,0 @@
|
||||
# The base image is a last known working snapshot of this image. We do this
|
||||
# to work around problems rebuilding desktop1604-test. See bug 1503756 for
|
||||
# the ugly details. Bug 1511527 tracks undoing this hack and building from
|
||||
# a fresh ubuntu image.
|
||||
FROM debian:buster
|
||||
MAINTAINER Edwin Takahashi <egao@mozilla.com>
|
||||
|
||||
RUN mkdir -p /builds
|
||||
RUN id worker || useradd -d /builds/worker -s /bin/bash -m worker
|
||||
WORKDIR /builds/worker
|
||||
|
||||
# We need to declare all potentially cache volumes as caches. Also,
|
||||
# making high I/O paths volumes increase I/O throughput because of
|
||||
# AUFS slowness.
|
||||
VOLUME /builds/worker/.cache
|
||||
VOLUME /builds/worker/checkouts
|
||||
VOLUME /builds/worker/tooltool-cache
|
||||
VOLUME /builds/worker/workspace
|
||||
|
||||
# %include python/mozbuild/mozbuild/action/tooltool.py
|
||||
ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /setup/tooltool.py
|
||||
|
||||
# %include testing/mozharness/external_tools/robustcheckout.py
|
||||
ADD topsrcdir/testing/mozharness/external_tools/robustcheckout.py /usr/local/mercurial/robustcheckout.py
|
||||
|
||||
# %include taskcluster/docker/recipes/hgrc
|
||||
COPY topsrcdir/taskcluster/docker/recipes/hgrc /etc/mercurial/hgrc.d/mozilla.rc
|
||||
|
||||
# %include taskcluster/docker/recipes/common.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/common.sh /setup/common.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/install-mercurial.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /setup/install-mercurial.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/install-node.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/install-node.sh /setup/install-node.sh
|
||||
|
||||
# %include taskcluster/docker/recipes/debian-test-system-setup.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/debian-test-system-setup.sh /setup/system-setup.sh
|
||||
RUN bash /setup/system-setup.sh
|
||||
|
||||
# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
|
||||
# %include taskcluster/docker/recipes/xvfb.sh
|
||||
ADD topsrcdir/taskcluster/docker/recipes/xvfb.sh /builds/worker/scripts/xvfb.sh
|
||||
|
||||
# %include taskcluster/scripts/run-task
|
||||
ADD topsrcdir/taskcluster/scripts/run-task /builds/worker/bin/run-task
|
||||
|
||||
# %include taskcluster/scripts/misc/fetch-content
|
||||
ADD topsrcdir/taskcluster/scripts/misc/fetch-content /builds/worker/bin/fetch-content
|
||||
|
||||
# %include taskcluster/scripts/tester/test-linux.sh
|
||||
ADD topsrcdir/taskcluster/scripts/tester/test-linux.sh /builds/worker/bin/test-linux.sh
|
||||
|
||||
ADD topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /builds/worker/scripts/tooltool.py
|
||||
|
||||
# Locale related setup for debian:buster
|
||||
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
|
||||
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
|
||||
RUN echo "LANG=en_US.UTF-8" > /etc/locale.conf
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
# Set variable normally configured at login, by the shells parent process, these
|
||||
# are taken from GNU su manual
|
||||
ENV HOME /builds/worker
|
||||
ENV SHELL /bin/bash
|
||||
ENV USER worker
|
||||
ENV LOGNAME worker
|
||||
ENV HOSTNAME taskcluster-worker
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
|
||||
# Add utilities and configuration
|
||||
COPY dot-files/config /builds/worker/.config
|
||||
COPY dot-files/pulse /builds/worker/.pulse
|
||||
RUN chmod +x bin/*
|
||||
|
||||
# allow the worker user to access video devices
|
||||
RUN usermod -a -G video worker
|
||||
|
||||
RUN mkdir -p artifacts
|
||||
|
||||
ENV PATH $PATH:/builds/worker/bin
|
||||
|
||||
# In test.sh we accept START_VNC to start a vnc daemon.
|
||||
# Exposing this port allows it to work.
|
||||
EXPOSE 5900
|
||||
|
||||
# This helps not forgetting setting DISPLAY=:0 when running
|
||||
# tests outside of test.sh
|
||||
ENV DISPLAY :0
|
||||
|
||||
# Disable apport (app crash reporter) to avoid stealing focus from test runs
|
||||
ADD apport /etc/default/apport
|
||||
|
||||
# Disable font antialiasing for now to match releng's setup
|
||||
ADD fonts.conf /builds/worker/.fonts.conf
|
||||
|
||||
# Set up first-run experience for interactive mode
|
||||
ADD motd /etc/taskcluster-motd
|
||||
ADD taskcluster-interactive-shell /bin/taskcluster-interactive-shell
|
||||
RUN chmod +x /bin/taskcluster-interactive-shell
|
||||
|
||||
RUN chown -R worker:worker /builds/worker
|
||||
|
||||
# gnome-keyring-daemon is configured to have the IPC_LOCK capability (to lock pages with secrets in
|
||||
# memory), but docker isn't run with that capability granted. So, if we were to try running
|
||||
# gnome-keyring-daemon without first clearing the capability, it would just exit with the message
|
||||
# "Operation not permitted". Luckily it doesn't actually require the capability.
|
||||
RUN setcap -r /usr/bin/gnome-keyring-daemon
|
||||
|
||||
# Set a default command useful for debugging
|
||||
CMD ["/bin/bash", "--login"]
|
@ -1 +0,0 @@
|
||||
enabled=0
|
@ -1,2 +0,0 @@
|
||||
[global]
|
||||
disable-pip-version-check = true
|
@ -1,15 +0,0 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/Templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||
XDG_MUSIC_DIR="$HOME/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
@ -1 +0,0 @@
|
||||
en_US
|
@ -1 +0,0 @@
|
||||
autospawn = no
|
@ -1,164 +0,0 @@
|
||||
#!/usr/bin/pulseaudio -nF
|
||||
#
|
||||
# This file is part of PulseAudio.
|
||||
#
|
||||
# PulseAudio is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# PulseAudio is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
# This startup script is used only if PulseAudio is started per-user
|
||||
# (i.e. not in system mode)
|
||||
|
||||
.nofail
|
||||
|
||||
### Load something into the sample cache
|
||||
#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
|
||||
#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
|
||||
#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
|
||||
#load-sample-lazy pulse-access /usr/share/sounds/generic.wav
|
||||
|
||||
.fail
|
||||
|
||||
### Automatically restore the volume of streams and devices
|
||||
load-module module-device-restore
|
||||
load-module module-stream-restore
|
||||
load-module module-card-restore
|
||||
|
||||
### Automatically augment property information from .desktop files
|
||||
### stored in /usr/share/application
|
||||
load-module module-augment-properties
|
||||
|
||||
### Load audio drivers statically
|
||||
### (it's probably better to not load these drivers manually, but instead
|
||||
### use module-udev-detect -- see below -- for doing this automatically)
|
||||
#load-module module-alsa-sink
|
||||
#load-module module-alsa-source device=hw:1,0
|
||||
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
|
||||
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
|
||||
#load-module module-null-sink
|
||||
#load-module module-pipe-sink
|
||||
|
||||
### Automatically load driver modules depending on the hardware available
|
||||
.ifexists module-udev-detect.so
|
||||
load-module module-udev-detect
|
||||
.else
|
||||
### Use the static hardware detection module (for systems that lack udev/hal support)
|
||||
load-module module-detect
|
||||
.endif
|
||||
|
||||
### Automatically connect sink and source if JACK server is present
|
||||
.ifexists module-jackdbus-detect.so
|
||||
.nofail
|
||||
load-module module-jackdbus-detect
|
||||
.fail
|
||||
.endif
|
||||
|
||||
### Automatically load driver modules for Bluetooth hardware
|
||||
# This module causes a pulseaudio startup failure on "gecko-tester"
|
||||
#.ifexists module-bluetooth-discover.so
|
||||
#load-module module-bluetooth-discover
|
||||
#.endif
|
||||
|
||||
### Load several protocols
|
||||
.ifexists module-esound-protocol-unix.so
|
||||
load-module module-esound-protocol-unix
|
||||
.endif
|
||||
load-module module-native-protocol-unix
|
||||
|
||||
### Network access (may be configured with paprefs, so leave this commented
|
||||
### here if you plan to use paprefs)
|
||||
#load-module module-esound-protocol-tcp
|
||||
#load-module module-native-protocol-tcp
|
||||
#load-module module-zeroconf-publish
|
||||
|
||||
### Load the RTP receiver module (also configured via paprefs, see above)
|
||||
#load-module module-rtp-recv
|
||||
|
||||
### Load the RTP sender module (also configured via paprefs, see above)
|
||||
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
|
||||
#load-module module-rtp-send source=rtp.monitor
|
||||
|
||||
### Load additional modules from GConf settings. This can be configured with the paprefs tool.
|
||||
### Please keep in mind that the modules configured by paprefs might conflict with manually
|
||||
### loaded modules.
|
||||
.ifexists module-gconf.so
|
||||
.nofail
|
||||
load-module module-gconf
|
||||
.fail
|
||||
.endif
|
||||
|
||||
### Automatically restore the default sink/source when changed by the user
|
||||
### during runtime
|
||||
### NOTE: This should be loaded as early as possible so that subsequent modules
|
||||
### that look up the default sink/source get the right value
|
||||
load-module module-default-device-restore
|
||||
|
||||
### Automatically move streams to the default sink if the sink they are
|
||||
### connected to dies, similar for sources
|
||||
load-module module-rescue-streams
|
||||
|
||||
### Make sure we always have a sink around, even if it is a null sink.
|
||||
load-module module-always-sink
|
||||
|
||||
### Honour intended role device property
|
||||
load-module module-intended-roles
|
||||
|
||||
### Automatically suspend sinks/sources that become idle for too long
|
||||
load-module module-suspend-on-idle
|
||||
|
||||
### If autoexit on idle is enabled we want to make sure we only quit
|
||||
### when no local session needs us anymore.
|
||||
# This module causes a pulseaudio startup failure on "gecko-tester"
|
||||
#.ifexists module-console-kit.so
|
||||
#load-module module-console-kit
|
||||
#.endif
|
||||
|
||||
### Enable positioned event sounds
|
||||
load-module module-position-event-sounds
|
||||
|
||||
### Cork music streams when a phone stream is active
|
||||
#load-module module-cork-music-on-phone
|
||||
|
||||
### Modules to allow autoloading of filters (such as echo cancellation)
|
||||
### on demand. module-filter-heuristics tries to determine what filters
|
||||
### make sense, and module-filter-apply does the heavy-lifting of
|
||||
### loading modules and rerouting streams.
|
||||
load-module module-filter-heuristics
|
||||
load-module module-filter-apply
|
||||
|
||||
### Load DBus protocol
|
||||
#.ifexists module-dbus-protocol.so
|
||||
#load-module module-dbus-protocol
|
||||
#.endif
|
||||
|
||||
# X11 modules should not be started from default.pa so that one daemon
|
||||
# can be shared by multiple sessions.
|
||||
|
||||
### Load X11 bell module
|
||||
#load-module module-x11-bell sample=bell-windowing-system
|
||||
|
||||
### Register ourselves in the X11 session manager
|
||||
#load-module module-x11-xsmp
|
||||
|
||||
### Publish connection data in the X11 root window
|
||||
#.ifexists module-x11-publish.so
|
||||
#.nofail
|
||||
#load-module module-x11-publish
|
||||
#.fail
|
||||
#.endif
|
||||
|
||||
load-module module-switch-on-port-available
|
||||
|
||||
### Make some devices default
|
||||
#set-default-sink output
|
||||
#set-default-source input
|
@ -1,5 +0,0 @@
|
||||
<match target="font">
|
||||
<edit name="antialias" mode="assign">
|
||||
<bool>false</bool>
|
||||
</edit>
|
||||
</match>
|
@ -1,6 +0,0 @@
|
||||
Welcome to your taskcluster interactive shell! The regularly scheduled task
|
||||
has been paused to give you a chance to set up your debugging environment.
|
||||
|
||||
For your convenience, the exact mozharness command needed for this task can
|
||||
be invoked using the 'run-mozharness' command.
|
||||
|
@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
download() {
|
||||
name=`basename $1`
|
||||
url=${GECKO_HEAD_REPOSITORY}/raw-file/${GECKO_HEAD_REV}/$1
|
||||
if ! curl --fail --silent -o ./$name --retry 10 $url; then
|
||||
fail "failed downloading $1 from ${GECKO_HEAD_REPOSITORY}"
|
||||
fi
|
||||
}
|
||||
|
||||
cd $HOME/bin;
|
||||
download taskcluster/scripts/tester/run-wizard;
|
||||
chmod +x run-wizard;
|
||||
./run-wizard;
|
||||
|
||||
SPAWN="$SHELL";
|
||||
if [ "$SHELL" = "bash" ]; then
|
||||
SPAWN="bash -li";
|
||||
fi;
|
||||
|
||||
cd $HOME;
|
||||
exec $SPAWN;
|
@ -1,205 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ve
|
||||
|
||||
test "$(whoami)" == 'root'
|
||||
|
||||
mkdir -p /setup
|
||||
cd /setup
|
||||
|
||||
# enable i386 packages
|
||||
dpkg --add-architecture i386
|
||||
|
||||
apt_packages=()
|
||||
|
||||
apt_packages+=('autoconf2.13')
|
||||
apt_packages+=('bluez-cups')
|
||||
apt_packages+=('build-essential')
|
||||
apt_packages+=('ca-certificates')
|
||||
apt_packages+=('ccache')
|
||||
apt_packages+=('compiz')
|
||||
apt_packages+=('compizconfig-settings-manager')
|
||||
apt_packages+=('curl')
|
||||
apt_packages+=('dbus')
|
||||
apt_packages+=('dbus-x11')
|
||||
apt_packages+=('fonts-kacst')
|
||||
apt_packages+=('fonts-kacst-one')
|
||||
apt_packages+=('fonts-liberation')
|
||||
apt_packages+=('fonts-stix')
|
||||
apt_packages+=('fonts-unfonts-core')
|
||||
apt_packages+=('fonts-unfonts-extra')
|
||||
apt_packages+=('fonts-vlgothic')
|
||||
apt_packages+=('g++-multilib')
|
||||
apt_packages+=('gcc-multilib')
|
||||
apt_packages+=('gir1.2-gnomebluetooth-1.0')
|
||||
apt_packages+=('git')
|
||||
apt_packages+=('gnome-keyring')
|
||||
apt_packages+=('libasound2-dev')
|
||||
apt_packages+=('libcanberra-pulse')
|
||||
apt_packages+=('libcurl4-openssl-dev')
|
||||
apt_packages+=('libdbus-1-dev')
|
||||
apt_packages+=('libdbus-glib-1-dev')
|
||||
apt_packages+=('libgconf2-dev')
|
||||
apt_packages+=('libgtk2.0-dev')
|
||||
apt_packages+=('libiw-dev')
|
||||
apt_packages+=('libnotify-dev')
|
||||
apt_packages+=('libpulse-dev')
|
||||
apt_packages+=('libsox-fmt-alsa')
|
||||
apt_packages+=('libxt-dev')
|
||||
apt_packages+=('libxxf86vm1')
|
||||
apt_packages+=('llvm')
|
||||
apt_packages+=('llvm-dev')
|
||||
apt_packages+=('llvm-runtime')
|
||||
apt_packages+=('locales')
|
||||
apt_packages+=('locales-all')
|
||||
apt_packages+=('nano')
|
||||
apt_packages+=('net-tools')
|
||||
apt_packages+=('pulseaudio')
|
||||
apt_packages+=('pulseaudio-utils')
|
||||
apt_packages+=('qemu-kvm')
|
||||
apt_packages+=('rlwrap')
|
||||
apt_packages+=('screen')
|
||||
apt_packages+=('software-properties-common')
|
||||
apt_packages+=('sudo')
|
||||
apt_packages+=('tar')
|
||||
apt_packages+=('task-gnome-desktop')
|
||||
apt_packages+=('ttf-dejavu')
|
||||
apt_packages+=('unzip')
|
||||
apt_packages+=('uuid')
|
||||
apt_packages+=('vim')
|
||||
apt_packages+=('wget')
|
||||
apt_packages+=('xvfb')
|
||||
apt_packages+=('x11-common')
|
||||
apt_packages+=('yasm')
|
||||
apt_packages+=('zip')
|
||||
apt_packages+=('libsecret-1-0:i386')
|
||||
|
||||
# Make sure we have X libraries for 32-bit tests
|
||||
apt_packages+=('libxt6:i386')
|
||||
apt_packages+=('libpulse0:i386')
|
||||
apt_packages+=('libasound2:i386')
|
||||
apt_packages+=('libxtst6:i386')
|
||||
apt_packages+=('libgtk2.0-0:i386')
|
||||
|
||||
# get xvinfo for test-linux.sh to monitor Xvfb startup
|
||||
apt_packages+=('x11-utils')
|
||||
|
||||
# Bug 1232407 - this allows the user to start vnc
|
||||
apt_packages+=('x11vnc')
|
||||
|
||||
# Bug 1176031: need `xset` to disable screensavers
|
||||
apt_packages+=('x11-xserver-utils')
|
||||
|
||||
# use Ubuntu's Python-2.7 (2.7.3 on Precise)
|
||||
apt_packages+=('python-dev')
|
||||
apt_packages+=('python-pip')
|
||||
|
||||
apt-get update
|
||||
# This allows packages to be installed without human interaction
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get install -y -f "${apt_packages[@]}"
|
||||
|
||||
dpkg-reconfigure locales
|
||||
|
||||
. /setup/common.sh
|
||||
. /setup/install-mercurial.sh
|
||||
|
||||
# first upgrade debian:buster built-in pip, then install older pip
|
||||
pip install --upgrade pip
|
||||
pip install pip==9.0.3
|
||||
hash -r
|
||||
pip install virtualenv==15.2.0
|
||||
|
||||
. /setup/install-node.sh
|
||||
|
||||
# Install Valgrind (trunk, late Jan 2016) and do some crude sanity
|
||||
# checks. It has to go in /usr/local, otherwise it won't work. Copy
|
||||
# the launcher binary to /usr/bin, though, so that direct invokations
|
||||
# of /usr/bin/valgrind also work. Also install libc6-dbg since
|
||||
# Valgrind won't work at all without the debug symbols for libc.so and
|
||||
# ld.so being available.
|
||||
tooltool_fetch <<'EOF'
|
||||
[
|
||||
{
|
||||
"size": 41331092,
|
||||
"visibility": "public",
|
||||
"digest": "a89393c39171b8304fc262094a650df9a756543ffe9fbec935911e7b86842c4828b9b831698f97612abb0eca95cf7f7b3ff33ea7a9b0313b30c9be413a5efffc",
|
||||
"algorithm": "sha512",
|
||||
"filename": "valgrind-15775-3206-ubuntu1204.tgz"
|
||||
}
|
||||
]
|
||||
EOF
|
||||
cp valgrind-15775-3206-ubuntu1204.tgz /tmp
|
||||
(cd / && tar xzf /tmp/valgrind-15775-3206-ubuntu1204.tgz)
|
||||
rm /tmp/valgrind-15775-3206-ubuntu1204.tgz
|
||||
cp /usr/local/bin/valgrind /usr/bin/valgrind
|
||||
apt-get install -y libc6-dbg
|
||||
valgrind --version
|
||||
valgrind date
|
||||
|
||||
# Until bug 1511527 is fixed, remove the file from the image to ensure it's not there.
|
||||
rm -f /usr/local/bin/linux64-minidump_stackwalk
|
||||
|
||||
# install gstreamer0.10 from jessie
|
||||
cp /etc/apt/sources.list sources.list.bak
|
||||
echo 'deb http://ftp.de.debian.org/debian jessie main' >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install -f
|
||||
apt-get install -y -f -q \
|
||||
libtag1-vanilla \
|
||||
libtag1c2a \
|
||||
libsidplay1
|
||||
|
||||
apt-get install -y -f -q \
|
||||
gstreamer0.10-plugins-base \
|
||||
gstreamer0.10-plugins-good \
|
||||
gstreamer0.10-pulseaudio \
|
||||
gstreamer0.10-tools \
|
||||
gstreamer0.10-tools \
|
||||
libgstreamer-plugins-base0.10-dev \
|
||||
libgstreamer0.10-dev \
|
||||
gstreamer0.10-plugins-ugly
|
||||
|
||||
# TEMPORARY: we do not want flash installed, but the above pulls it in (bug 1349208)
|
||||
rm -f /usr/lib/flashplugin-installer/libflashplayer.so
|
||||
|
||||
apt-get -q -y -f install \
|
||||
libxcb1 \
|
||||
libxcb-render0 \
|
||||
libxcb-shm0 \
|
||||
libxcb-glx0 \
|
||||
libxcb-shape0
|
||||
|
||||
apt-get -q -y -f install \
|
||||
libgl1-mesa-dri \
|
||||
libgl1-mesa-glx \
|
||||
mesa-common-dev
|
||||
|
||||
# additional packages for linux32 tests
|
||||
# including fc-cache:i386 to pre-build the font cache for i386 binaries
|
||||
apt-get update
|
||||
apt-get -q -y -f install \
|
||||
libavcodec-extra58:i386 \
|
||||
libgtk-3-0:i386 \
|
||||
libdbus-glib-1-2:i386 \
|
||||
fontconfig:i386
|
||||
|
||||
# libavcodec-extra58 uninstalls pulseaudio-module-gsettings
|
||||
# reinstall it now.
|
||||
apt-get -q -y -f install \
|
||||
pulseaudio-module-gsettings
|
||||
|
||||
# revert the addition of jessie repos
|
||||
cp sources.list.bak /etc/apt/sources.list
|
||||
|
||||
# clean up
|
||||
apt-get -y autoremove
|
||||
|
||||
# We don't need no docs!
|
||||
rm -rf /usr/share/help /usr/share/doc /usr/share/man
|
||||
|
||||
cd /
|
||||
rm -rf /setup ~/.ccache ~/.cache ~/.npm
|
||||
apt-get clean
|
||||
apt-get autoclean
|
||||
rm -f "$0"
|
@ -5,13 +5,10 @@ set -x -e
|
||||
echo "running as" $(id)
|
||||
|
||||
# Detect release version.
|
||||
. /etc/os-release
|
||||
if [ "${ID}" == "ubuntu" ]; then
|
||||
DISTRIBUTION="Ubuntu"
|
||||
elif [ "${ID}" == "debian" ]; then
|
||||
DISTRIBUTION="Debian"
|
||||
else
|
||||
DISTRIBUTION="Unknown"
|
||||
. /etc/lsb-release
|
||||
if [ "${DISTRIB_RELEASE}" != "16.04" ]; then
|
||||
echo "Ubuntu 16.04 required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
####
|
||||
@ -46,36 +43,10 @@ fail() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
# start pulseaudio
|
||||
maybe_start_pulse() {
|
||||
if $NEED_PULSEAUDIO; then
|
||||
# call pulseaudio with varying parameters
|
||||
if [ $DISTRIBUTION == "Ubuntu" ]; then
|
||||
pulseaudio --fail --daemonize --start
|
||||
elif [ $DISTRIBUTION == "Debian" ]; then
|
||||
# kill existing daemons/processes if exist
|
||||
set +e
|
||||
pulseaudio --kill
|
||||
|
||||
# Debian needs additional stabilization and debugging
|
||||
# turn off errexit temporarily
|
||||
ps ax | grep 'pulseaudio'
|
||||
ps -ef | grep 'pulseaudio' | grep -v grep | awk '{print $2}' | xargs -r kill -9
|
||||
ps ax | grep 'pulseaudio'
|
||||
|
||||
# check and start pulseaudio (debugging)
|
||||
pulseaudio --check; echo $?
|
||||
pulseaudio --fail --daemonize --start -vvvv --exit-idle-time=-1 --log-level=4 --log-time=1
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
pulseaudio --check
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Pulseaudio successfully initialized"
|
||||
else
|
||||
echo "Pulseaudio failed to initialize, trying again"
|
||||
fi
|
||||
pulseaudio --fail --daemonize --start
|
||||
pactl load-module module-null-sink
|
||||
fi
|
||||
}
|
||||
|
||||
@ -177,25 +148,16 @@ if $NEED_WINDOW_MANAGER; then
|
||||
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
|
||||
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
|
||||
# credit card numbers.
|
||||
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||
# if not found, launch a new one
|
||||
eval `dbus-launch --sh-syntax`
|
||||
fi
|
||||
eval `dbus-launch --sh-syntax`
|
||||
eval `echo '' | /usr/bin/gnome-keyring-daemon -r -d --unlock --components=secrets`
|
||||
fi
|
||||
|
||||
if $NEED_COMPIZ; then
|
||||
if [ $DISTRIBUTION == "Ubuntu" ]; then
|
||||
compiz 2>&1 &
|
||||
fi
|
||||
compiz 2>&1 &
|
||||
fi
|
||||
|
||||
maybe_start_pulse
|
||||
|
||||
# Load null-sink using pactl
|
||||
pactl load-module module-null-sink
|
||||
pactl list modules short
|
||||
|
||||
# For telemetry purposes, the build process wants information about the
|
||||
# source it is running
|
||||
export MOZ_SOURCE_REPO="${GECKO_HEAD_REPOSITORY}"
|
||||
|
@ -811,13 +811,12 @@ class MochitestArguments(ArgumentContainer):
|
||||
'--use-test-media-devices is only supported on Linux currently')
|
||||
|
||||
gst01 = spawn.find_executable("gst-launch-0.1")
|
||||
gst010 = spawn.find_executable("gst-launch-0.10")
|
||||
gst10 = spawn.find_executable("gst-launch-1.0")
|
||||
pactl = spawn.find_executable("pactl")
|
||||
|
||||
if not (gst01 or gst10 or gst010):
|
||||
if not (gst01 or gst10):
|
||||
parser.error(
|
||||
'Missing gst-launch-{0.1,0.10,1.0}, required for '
|
||||
'Missing gst-launch-{0.1,1.0}, required for '
|
||||
'--use-test-media-devices')
|
||||
|
||||
if not pactl:
|
||||
|
@ -791,12 +791,9 @@ def findTestMediaDevices(log):
|
||||
|
||||
# Feed it a frame of output so it has something to display
|
||||
gst01 = spawn.find_executable("gst-launch-0.1")
|
||||
gst010 = spawn.find_executable("gst-launch-0.10")
|
||||
gst10 = spawn.find_executable("gst-launch-1.0")
|
||||
if gst01:
|
||||
gst = gst01
|
||||
if gst010:
|
||||
gst = gst010
|
||||
else:
|
||||
gst = gst10
|
||||
subprocess.check_call([gst, 'videotestsrc',
|
||||
@ -804,29 +801,22 @@ def findTestMediaDevices(log):
|
||||
'v4l2sink', 'device=%s' % device])
|
||||
info['video'] = name
|
||||
|
||||
if platform.linux_distribution()[0] == 'debian':
|
||||
# Debian 10 doesn't seem to appreciate starting pactl here.
|
||||
# Still WIP (bug 1565332)
|
||||
pass
|
||||
else:
|
||||
# Use pactl to see if the PulseAudio module-null-sink module is loaded.
|
||||
pactl = spawn.find_executable("pactl")
|
||||
pactl = spawn.find_executable("pactl")
|
||||
|
||||
def null_sink_loaded():
|
||||
o = subprocess.check_output(
|
||||
[pactl, 'list', 'short', 'modules'])
|
||||
return filter(lambda x: 'module-null-sink' in x, o.splitlines())
|
||||
# Use pactl to see if the PulseAudio module-null-sink module is loaded.
|
||||
def null_sink_loaded():
|
||||
o = subprocess.check_output(
|
||||
[pactl, 'list', 'short', 'modules'])
|
||||
return filter(lambda x: 'module-null-sink' in x, o.splitlines())
|
||||
|
||||
if not null_sink_loaded():
|
||||
subprocess.check_call([
|
||||
pactl,
|
||||
'load-module',
|
||||
'module-null-sink'
|
||||
])
|
||||
if not null_sink_loaded():
|
||||
# Load module-null-sink
|
||||
subprocess.check_call([pactl, 'load-module',
|
||||
'module-null-sink'])
|
||||
|
||||
if not null_sink_loaded():
|
||||
log.error('Couldn\'t load module-null-sink')
|
||||
return None
|
||||
if not null_sink_loaded():
|
||||
log.error('Couldn\'t load module-null-sink')
|
||||
return None
|
||||
|
||||
# Hardcode the name since it's always the same.
|
||||
info['audio'] = 'Monitor of Null Output'
|
||||
|
Loading…
Reference in New Issue
Block a user