@ -1,29 +1,31 @@
FROM debian:buster-slim
#!/bin/bash
ENV DEBIAN_FRONTEND = noninteractive
set -e
ENV GOPATH = /usr/local/go
set -o xtrace
ENV PATH = $PATH :/usr/local/go/bin
ENV LD_LIBRARY_PATH = /usr/local/lib64:/usr/local/lib:/usr/local/lib/x86_64-linux-gnu
ENV PKG_CONFIG_PATH = /usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig
ENV LDFLAGS = "-L/usr/local/lib64 -L/usr/local/lib/ -L/usr/local/lib/x86_64-linux-gnu"
ENV CC = "gcc-8"
ENV CXX = "g++-8"
ENV CFLAGS = "-g3"
ENV CXXFLAGS = "-g3"
ENV GIT_DATE = "`date +%Y-%m-%d -d \"15 months ago\"`"
ENV MESA_DEBUG = 1
export DEBIAN_FRONTEND = noninteractive
export GOPATH = /usr/local/go
export PATH = $PATH :/usr/local/go/bin
export LD_LIBRARY_PATH = /usr/local/lib64:/usr/local/lib:/usr/local/lib/x86_64-linux-gnu
export PKG_CONFIG_PATH = /usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig
export LDFLAGS = "-L/usr/local/lib64 -L/usr/local/lib/ -L/usr/local/lib/x86_64-linux-gnu"
export CC = "gcc-8"
export CXX = "g++-8"
export CFLAGS = "-g3"
export CXXFLAGS = "-g3"
export GIT_DATE = "`date +%Y-%m-%d -d \"15 months ago\"`"
export MESA_DEBUG = 1
RUN echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
RUN echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft
RUN echo '#!/bin/sh' > /usr/sbin/policy-rc.d
echo '#!/bin/sh' > /usr/sbin/policy-rc.d
RUN echo 'exit 101' >> /usr/sbin/policy-rc.d
echo 'exit 101' >> /usr/sbin/policy-rc.d
RUN chmod +x /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
RUN echo deb-src http://deb.debian.org/debian buster main >> /etc/apt/sources.list
echo deb-src http://deb.debian.org/debian buster main >> /etc/apt/sources.list
RUN echo deb http://deb.debian.org/debian buster-backports main >> /etc/apt/sources.list
echo deb http://deb.debian.org/debian buster-backports main >> /etc/apt/sources.list
RUN apt-get update && \
apt-get update
apt-get -y install ca-certificates && \
apt-get -y install ca-certificates
apt-get -y install --no-install-recommends \
apt-get -y install --no-install-recommends \
autoconf \
autoconf \
busybox \
busybox \
@ -52,6 +54,7 @@ RUN apt-get update && \
lld-8 \
lld-8 \
llvm-8-dev \
llvm-8-dev \
mesa-utils \
mesa-utils \
meson \
nasm \
nasm \
ninja-build \
ninja-build \
procps \
procps \
@ -75,32 +78,28 @@ RUN apt-get update && \
xserver-xorg-core \
xserver-xorg-core \
xterm \
xterm \
xvfb \
xvfb \
zlib1g-dev && \
zlib1g-dev
apt-get -y build-dep --no-install-recommends \
apt-get -y build-dep --no-install-recommends \
libepoxy-dev \
libepoxy-dev \
libdrm \
libdrm \
mesa \
mesa \
piglit \
piglit \
virglrenderer && \
virglrenderer
apt-get -y remove valgrind && \
apt-get -y remove valgrind
rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/apt/lists/*
RUN pip3 install meson
export BATTERY_VERSION = 0.1.23
mkdir /battery
ARG KNOWN_GOOD_FAKEMACHINE = c4752ddf3343
pushd /battery
RUN go get -v github.com/tomeuv/fakemachine/cmd/fakemachine
wget " https://github.com/VoltLang/Battery/releases/download/v ${ BATTERY_VERSION } /battery- ${ BATTERY_VERSION } -x86_64-linux.tar.gz " && \
RUN go install -x github.com/tomeuv/fakemachine/cmd/fakemachine
ENV BATTERY_VERSION = 0.1.23
WORKDIR /battery
RUN wget " https://github.com/VoltLang/Battery/releases/download/v ${ BATTERY_VERSION } /battery- ${ BATTERY_VERSION } -x86_64-linux.tar.gz " && \
tar xzvf battery-${ BATTERY_VERSION } -x86_64-linux.tar.gz && \
tar xzvf battery-${ BATTERY_VERSION } -x86_64-linux.tar.gz && \
rm battery-${ BATTERY_VERSION } -x86_64-linux.tar.gz && \
rm battery-${ BATTERY_VERSION } -x86_64-linux.tar.gz && \
mv battery /usr/local/bin
mv battery /usr/local/bin
WORKDIR /
popd
WORKDIR /volt
mkdir /volt
RUN git clone --depth= 1 https://github.com/VoltLang/Watt.git && \
pushd /volt
git clone --depth= 1 https://github.com/VoltLang/Watt.git && \
git clone --depth= 1 https://github.com/VoltLang/Volta.git && \
git clone --depth= 1 https://github.com/VoltLang/Volta.git && \
git clone --depth= 1 https://github.com/Wallbraker/dEQP.git && \
git clone --depth= 1 https://github.com/Wallbraker/dEQP.git && \
battery config --release --lto Volta Watt && \
battery config --release --lto Volta Watt && \
@ -109,16 +108,16 @@ RUN git clone --depth=1 https://github.com/VoltLang/Watt.git && \
battery build && \
battery build && \
cp dEQP/deqp /usr/local/bin && \
cp dEQP/deqp /usr/local/bin && \
rm -rf /volt
rm -rf /volt
WORKDIR /
popd
# To avoid this error:
# To avoid this error:
# error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
# error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
RUN git config --global http.postBuffer 1048576000
git config --global http.postBuffer 1048576000
ARG KNOWN_GOOD_CTS
export KNOWN_GOOD_CTS = ${ KNOWN_GOOD_CTS :- 6c709dc9a99b70572aceb0f7698ab044383ff948 }
ENV KNOWN_GOOD_CTS ${ KNOWN_GOOD_CTS :- 6c709dc9a99b70572aceb0f7698ab044383ff948 }
mkdir /VK-GL-CTS
WORKDIR /VK-GL-CTS
pushd /VK-GL-CTS
RUN git clone --shallow-since= " $GIT_DATE " https://github.com/KhronosGroup/VK-GL-CTS.git . && \
git clone --shallow-since= " $GIT_DATE " https://github.com/KhronosGroup/VK-GL-CTS.git . && \
git checkout ${ KNOWN_GOOD_CTS } && \
git checkout ${ KNOWN_GOOD_CTS } && \
git log --oneline -n 1 && \
git log --oneline -n 1 && \
python3 external/fetch_sources.py && \
python3 external/fetch_sources.py && \
@ -128,12 +127,12 @@ RUN git clone --shallow-since="$GIT_DATE" https://github.com/KhronosGroup/VK-GL-
make -j$( nproc) && \
make -j$( nproc) && \
find . -name CMakeFiles | xargs rm -rf && \
find . -name CMakeFiles | xargs rm -rf && \
find . -name lib\* .a | xargs rm -rf
find . -name lib\* .a | xargs rm -rf
WORKDIR /
popd
ARG KNOWN_GOOD_PIGLIT
export KNOWN_GOOD_PIGLIT = ${ KNOWN_GOOD_PIGLIT :- 645e15dc84fb48c1f270e322af61d7c716f1c45c }
ENV KNOWN_GOOD_PIGLIT ${ KNOWN_GOOD_PIGLIT :- 645e15dc84fb48c1f270e322af61d7c716f1c45c }
mkdir /piglit
WORKDIR /piglit
pushd /piglit
RUN git clone --shallow-since= " $GIT_DATE " https://gitlab.freedesktop.org/mesa/piglit.git . && \
git clone --shallow-since= " $GIT_DATE " https://gitlab.freedesktop.org/mesa/piglit.git . && \
git checkout ${ KNOWN_GOOD_PIGLIT } && \
git checkout ${ KNOWN_GOOD_PIGLIT } && \
git log --oneline -n 1 && \
git log --oneline -n 1 && \
cmake -DCMAKE_INSTALL_PREFIX= /usr/local -DCMAKE_BUILD_TYPE= Release . && \
cmake -DCMAKE_INSTALL_PREFIX= /usr/local -DCMAKE_BUILD_TYPE= Release . && \
@ -141,12 +140,12 @@ RUN git clone --shallow-since="$GIT_DATE" https://gitlab.freedesktop.org/mesa/pi
rm -rf /usr/local/lib/piglit/generated_tests/spec/arb_vertex_attrib_64bit && \
rm -rf /usr/local/lib/piglit/generated_tests/spec/arb_vertex_attrib_64bit && \
rm -rf /usr/local/lib/piglit/generated_tests/spec/glsl-4.20 && \
rm -rf /usr/local/lib/piglit/generated_tests/spec/glsl-4.20 && \
rm -rf /piglit
rm -rf /piglit
WORKDIR /
popd
ARG KNOWN_GOOD_EPOXY
export KNOWN_GOOD_EPOXY = ${ KNOWN_GOOD_EPOXY :- 5d818164dd2ab87b0054641f1446bc552a602320 }
ENV KNOWN_GOOD_EPOXY ${ KNOWN_GOOD_EPOXY :- 5d818164dd2ab87b0054641f1446bc552a602320 }
mkdir /epoxy
WORKDIR /epoxy
pushd /epoxy
RUN git clone --shallow-since= " $GIT_DATE " https://github.com/anholt/libepoxy.git . && \
git clone --shallow-since= " $GIT_DATE " https://github.com/anholt/libepoxy.git . && \
git checkout ${ KNOWN_GOOD_EPOXY } && \
git checkout ${ KNOWN_GOOD_EPOXY } && \
git log --oneline -n 1 && \
git log --oneline -n 1 && \
mkdir -p build && \
mkdir -p build && \
@ -154,11 +153,12 @@ RUN git clone --shallow-since="$GIT_DATE" https://github.com/anholt/libepoxy.git
meson configure build/ -Dprefix= /usr/local -Dlibdir= lib && \
meson configure build/ -Dprefix= /usr/local -Dlibdir= lib && \
ninja -C build/ install >/dev/null && \
ninja -C build/ install >/dev/null && \
rm -rf /epoxy
rm -rf /epoxy
WORKDIR /
popd
ARG KNOWN_GOOD_DRM = libdrm-2.4.100
export KNOWN_GOOD_DRM = libdrm-2.4.100
WORKDIR /drm
mkdir /drm
RUN git clone --shallow-since= " $GIT_DATE " https://gitlab.freedesktop.org/mesa/drm.git . && \
pushd /drm
git clone --shallow-since= " $GIT_DATE " https://gitlab.freedesktop.org/mesa/drm.git . && \
git checkout ${ KNOWN_GOOD_DRM } && \
git checkout ${ KNOWN_GOOD_DRM } && \
git log --oneline -n 1 && \
git log --oneline -n 1 && \
mkdir -p build && \
mkdir -p build && \
@ -166,16 +166,15 @@ RUN git clone --shallow-since="$GIT_DATE" https://gitlab.freedesktop.org/mesa/dr
meson configure build/ -Dprefix= /usr/local -Dlibdir= lib && \
meson configure build/ -Dprefix= /usr/local -Dlibdir= lib && \
ninja -C build/ install >/dev/null && \
ninja -C build/ install >/dev/null && \
rm -rf /drm
rm -rf /drm
WORKDIR /
popd
ARG KNOWN_GOOD_MESA
export KNOWN_GOOD_MESA = ${ KNOWN_GOOD_MESA :- e924181ea89e5e261f8aa24564c32ed22941e752 }
ENV KNOWN_GOOD_MESA ${ KNOWN_GOOD_MESA :- e924181ea89e5e261f8aa24564c32ed22941e752 }
echo $KNOWN_GOOD_MESA
RUN echo $KNOWN_GOOD_MESA
export MESA_REPO = https://gitlab.freedesktop.org/mesa/mesa.git
ARG MESA_REPO
echo $MESA_REPO
ENV MESA_REPO ${ MESA_REPO :- https : //gitlab.freedesktop.org/mesa/mesa.git }
mkdir /mesa
RUN echo $MESA_REPO
pushd /mesa
WORKDIR /mesa
git clone --shallow-since= " $GIT_DATE " ${ MESA_REPO } . && \
RUN git clone --shallow-since= " $GIT_DATE " ${ MESA_REPO } . && \
git checkout ${ KNOWN_GOOD_MESA } && \
git checkout ${ KNOWN_GOOD_MESA } && \
git log --oneline -n 1 && \
git log --oneline -n 1 && \
mkdir -p build && \
mkdir -p build && \
@ -183,5 +182,5 @@ RUN git clone --shallow-since="$GIT_DATE" ${MESA_REPO} . && \
meson configure build/ -Dprefix= /usr/local -Dplatforms= drm,x11,wayland,surfaceless -Ddri-drivers= i965 -Dgallium-drivers= swrast,virgl,radeonsi -Dbuildtype= debugoptimized -Dllvm= true -Dglx= dri -Dgallium-vdpau= false -Dgallium-va= false -Dvulkan-drivers= [ ] -Dlibdir= lib && \
meson configure build/ -Dprefix= /usr/local -Dplatforms= drm,x11,wayland,surfaceless -Ddri-drivers= i965 -Dgallium-drivers= swrast,virgl,radeonsi -Dbuildtype= debugoptimized -Dllvm= true -Dglx= dri -Dgallium-vdpau= false -Dgallium-va= false -Dvulkan-drivers= [ ] -Dlibdir= lib && \
ninja -C build/ install >/dev/null && \
ninja -C build/ install >/dev/null && \
rm -rf /mesa
rm -rf /mesa
WORKDIR /
popd