DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (27bbc1fba015)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
# %ARG DOCKER_IMAGE_PARENT
FROM $DOCKER_IMAGE_PARENT
MAINTAINER Mike Hommey <mhommey@mozilla.com>

VOLUME /builds/worker/checkouts
VOLUME /builds/worker/workspace
VOLUME /builds/worker/tooltool-cache

ENV XZ_OPT=-T0

# %ARG TASKCLUSTER_ROOT_URL
# %ARG DOCKER_IMAGE_PACKAGES
RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAGES

# %ARG ARCH
RUN dpkg --add-architecture $ARCH

# Ideally, we wouldn't need gcc-multilib and the extra linux-libc-dev,
# but the latter is required to make the former installable, and the former
# because of bug 1409276.
# We exclude /usr/share/doc/*/changelog.Debian* files because they might differ
# between i386 and amd64 variants of the packages we build on automation
# because of dates stored in them by debchange (and both might end up installed
# in some cases).
# On Debian 7, pkg-config was not multiarch-aware, so we rely on the $ARCH
# pkg-config being valid on the host. On more recent versions of Debian, we can
# use pkg-config, which is multiarch-aware, but we also need dpkg-dev because
# of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916772.
#
# We also need libstdc++ development files, but the exact version of libstdc++
# that we need varies between debian versions.
RUN apt-get update && \
    apt-get dist-upgrade && \
    echo path-exclude=/usr/share/doc/*/changelog.Debian* > /etc/dpkg/dpkg.cfg.d/excludes && \
    if grep -q ^7\\. /etc/debian_version; then \
      BACKPORT=/wheezy-backports; \
      PKG_CONFIG=pkg-config:$ARCH; \
    else \
      PKG_CONFIG="pkg-config dpkg-dev"; \
    fi && \
    if grep -q ^7\\. /etc/debian_version; then \
      LIBSTDCXX=libstdc++6-4.4-dev; \
    elif grep -q ^9\\. /etc/debian_version; then \
      LIBSTDCXX=libstdc++-6-dev; \
    elif grep -q ^10\\. /etc/debian_version; then \
      libstdcxx=libstdc++-8-dev; \
      LIBSTDCXX="$libstdcxx $libstdcxx:$ARCH"; \
    fi && \
    apt-get install \
      autoconf2.13 \
      automake \
      bzip2 \
      curl \
      file \
      gawk \
      gcc-multilib \
      gnupg \
      jq \
      libucl1 \
      p7zip-full \
      procps \
      python-dev \
      python-pip \
      python-setuptools \
      python-virtualenv \
      rsync \
      screen \
      tar \
      unzip \
      uuid \
      valgrind \
      wget \
      x11-utils \
      xvfb \
      yasm$BACKPORT \
      zip \
      linux-libc-dev$BACKPORT \
      linux-libc-dev:$ARCH$BACKPORT \
      $PKG_CONFIG \
      $LIBSTDCXX \
      libdbus-glib-1-dev:$ARCH \
      libdrm-dev:$ARCH \
      libfontconfig1-dev:$ARCH \
      libfreetype6-dev:$ARCH \
      libgconf2-dev:$ARCH \
      libgtk-3-dev:$ARCH \
      libgtk2.0-dev:$ARCH \
      libpango1.0-dev:$ARCH \
      libpulse-dev:$ARCH \
      libx11-xcb-dev:$ARCH \
      libxt-dev:$ARCH

# Add wrapper scripts for xvfb allowing tasks to easily retry starting up xvfb
# %include taskcluster/docker/recipes/xvfb.sh
COPY topsrcdir/taskcluster/docker/recipes/xvfb.sh /builds/worker/scripts/xvfb.sh