1FROM debian:9.4
2
3# Enabling backports gives us access to clang-6 and new versions of libdrm2 package.
4# Mesa builds newer than 17.0.4 or so require libdrm > 2.4.75, but the
5# default one in stretch is 2.4.74.
6# Note that the hosts that use these drivers will also need the newer version of libdrm2
7# or there will be an error along the lines of:
8#     symbol lookup error: ./mesa_intel_driver/libGL.so.1: undefined symbol: drmGetDevice2
9#
10# Hosts can install this by adding the stretch-backports debian source (see next RUN)
11# and the performing `sudo apt-get update && sudo apt-get install libdrm2=2.4.91-2~bpo9+1`
12RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
13
14RUN apt-get update && apt-get upgrade -y
15
16ENV DEBIAN_FRONTEND noninteractive
17
18RUN apt-get install -y \
19    autoconf \
20    bison \
21    build-essential \
22    clang-6.0 \
23    flex \
24    libdrm-amdgpu1=2.4.91-2~bpo9+1 \
25    libdrm-dev=2.4.91-2~bpo9+1 \
26    libdrm-intel1=2.4.91-2~bpo9+1 \
27    libdrm-nouveau2=2.4.91-2~bpo9+1 \
28    libdrm-radeon1=2.4.91-2~bpo9+1 \
29    libdrm2=2.4.91-2~bpo9+1 \
30    libomxil-bellagio-dev \
31    libpthread-stubs0-dev \
32    libtool \
33    libva-dev \
34    libx11-xcb-dev \
35    libxcb-dri2-0-dev \
36    libxcb-dri3-dev \
37    libxcb-glx0-dev \
38    libxcb-present-dev \
39    libxcb1-dev \
40    libxdamage-dev \
41    libxext-dev \
42    libxshmfence-dev \
43    llvm-dev \
44    pkg-config \
45    python-pip \
46    python2.7 \
47    scons \
48    software-properties-common \
49    wget \
50    x11proto-dri2-dev \
51    x11proto-dri3-dev \
52    x11proto-gl-dev \
53    x11proto-present-dev \
54    x11proto-xext-dev \
55    xserver-xorg-core \
56    xserver-xorg-dev
57
58RUN pip install mako
59
60ENV CC="/usr/lib/llvm-6.0/bin/clang" \
61    CXX="/usr/lib/llvm-6.0/bin/clang++" \
62    PATH=/usr/lib/llvm-6.0/bin:$PATH
63
64# Default to this version of MESA, but it can be overridden with
65# -e MESA_VERSION=X.Y.Z when running the docker container
66ENV MESA_VERSION=18.1.7
67
68COPY ./build_mesa.sh /opt/build_mesa.sh