Dockerfile.ubuntu 5.55 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FROM ubuntu:bionic

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y \
      curl \
      wget \
      gnupg \
      software-properties-common

RUN curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
RUN add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main"

RUN apt-get update
RUN apt-get install -y \
      pkg-config \
      libdrm-dev \
      libpciaccess-dev \
      libxrandr-dev \
      libxshmfence-dev \
      libvdpau-dev \
      libva-dev \
23
24
      llvm-3.9-dev \
      libclang-3.9-dev \
25
      llvm-6.0-dev \
26
27
28
29
      llvm-7-dev \
      xz-utils \
      libexpat1-dev \
      libx11-xcb-dev \
30
      x11proto-xf86vidmode-dev \
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
      libelf-dev \
      python2.7 \
      python-pip \
      python-setuptools \
      python3.5 \
      python3-pip \
      python3-setuptools

RUN apt-get install -y \
      libxcb-randr0

# autotools build deps
RUN apt-get install -y \
      autoconf \
      automake \
      xutils-dev \
      libtool \
      bison \
      flex \
      gettext \
      make

# dependencies where we want a specific version
ENV XORG_RELEASES              https://xorg.freedesktop.org/releases/individual
ENV XCB_RELEASES               https://xcb.freedesktop.org/dist
ENV WAYLAND_RELEASES           https://wayland.freedesktop.org/releases

ENV XORGMACROS_VERSION         util-macros-1.19.0
ENV GLPROTO_VERSION            glproto-1.4.17
ENV DRI2PROTO_VERSION          dri2proto-2.8
ENV LIBPCIACCESS_VERSION       libpciaccess-0.13.4
ENV LIBDRM_VERSION             libdrm-2.4.97
ENV XCBPROTO_VERSION           xcb-proto-1.13
ENV RANDRPROTO_VERSION         randrproto-1.3.0
ENV LIBXRANDR_VERSION          libXrandr-1.3.0
ENV LIBXCB_VERSION             libxcb-1.13
ENV LIBXSHMFENCE_VERSION       libxshmfence-1.3
ENV LIBVDPAU_VERSION           libvdpau-1.1
ENV LIBVA_VERSION              libva-1.7.0
ENV LIBWAYLAND_VERSION         wayland-1.15.0
ENV WAYLAND_PROTOCOLS_VERSION  wayland-protocols-1.8

RUN wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
RUN tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
RUN (cd $XORGMACROS_VERSION && ./configure && make install) && rm -rf $XORGMACROS_VERSION

RUN wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
RUN tar -xvf $GLPROTO_VERSION.tar.bz2 && rm $GLPROTO_VERSION.tar.bz2
RUN (cd $GLPROTO_VERSION && ./configure && make install) && rm -rf $GLPROTO_VERSION

RUN wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
RUN tar -xvf $DRI2PROTO_VERSION.tar.bz2 && rm $DRI2PROTO_VERSION.tar.bz2
RUN (cd $DRI2PROTO_VERSION && ./configure && make install) && rm -rf $DRI2PROTO_VERSION

RUN wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
RUN tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
RUN (cd $XCBPROTO_VERSION && ./configure && make install) && rm -rf $XCBPROTO_VERSION

RUN wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
RUN tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
RUN (cd $LIBXCB_VERSION && ./configure && make install) && rm -rf $LIBXCB_VERSION

RUN wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
RUN tar -xvf $LIBPCIACCESS_VERSION.tar.bz2 && rm $LIBPCIACCESS_VERSION.tar.bz2
RUN (cd $LIBPCIACCESS_VERSION && ./configure && make install) && rm -rf $LIBPCIACCESS_VERSION

RUN wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
RUN tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
RUN (cd $LIBDRM_VERSION && ./configure --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install) && rm -rf $LIBDRM_VERSION

RUN wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
RUN tar -xvf $RANDRPROTO_VERSION.tar.bz2 && rm $RANDRPROTO_VERSION.tar.bz2
RUN (cd $RANDRPROTO_VERSION && ./configure && make install) && rm -rf $RANDRPROTO_VERSION

RUN wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
RUN tar -xvf $LIBXRANDR_VERSION.tar.bz2 && rm $LIBXRANDR_VERSION.tar.bz2
RUN (cd $LIBXRANDR_VERSION && ./configure && make install) && rm -rf $LIBXRANDR_VERSION

RUN wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
RUN tar -xvf $LIBXSHMFENCE_VERSION.tar.bz2 && rm $LIBXSHMFENCE_VERSION.tar.bz2
RUN (cd $LIBXSHMFENCE_VERSION && ./configure && make install) && rm -rf $LIBXSHMFENCE_VERSION

RUN wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
RUN tar -xvf $LIBVDPAU_VERSION.tar.bz2 && rm $LIBVDPAU_VERSION.tar.bz2
RUN (cd $LIBVDPAU_VERSION && ./configure && make install) && rm -rf $LIBVDPAU_VERSION

RUN wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
RUN tar -xvf $LIBVA_VERSION.tar.bz2 && rm $LIBVA_VERSION.tar.bz2
RUN (cd $LIBVA_VERSION && ./configure --disable-wayland --disable-dummy-driver && make install) && rm -rf $LIBVA_VERSION

RUN wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
RUN tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
RUN (cd $LIBWAYLAND_VERSION && ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install) && rm -rf $LIBWAYLAND_VERSION

RUN wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
RUN tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
RUN (cd $WAYLAND_PROTOCOLS_VERSION && ./configure && make install) && rm -rf $WAYLAND_PROTOCOLS_VERSION


RUN apt-get install -y unzip

# Meson requires ninja >= 1.6, but xenial has 1.3.x
RUN wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip
RUN unzip ninja-linux.zip && rm ninja-linux.zip
RUN mv ninja /usr/bin/


RUN pip3 install 'meson>=0.49'
RUN pip2 install 'scons>=2.4'

RUN pip2 install mako
RUN pip3 install mako

# Cleanup workdir
WORKDIR /