1*bbecb9d1SAndroid Build Coastguard Worker#!/bin/bash 2*bbecb9d1SAndroid Build Coastguard Worker 3*bbecb9d1SAndroid Build Coastguard Workerset -e 4*bbecb9d1SAndroid Build Coastguard Workerset -o xtrace 5*bbecb9d1SAndroid Build Coastguard Worker 6*bbecb9d1SAndroid Build Coastguard Workerexport DEBIAN_FRONTEND=noninteractive 7*bbecb9d1SAndroid Build Coastguard Workerexport GOPATH=/usr/local/go 8*bbecb9d1SAndroid Build Coastguard Workerexport PATH=$PATH:/usr/local/go/bin 9*bbecb9d1SAndroid Build Coastguard Workerexport LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:/usr/local/lib/x86_64-linux-gnu 10*bbecb9d1SAndroid Build Coastguard Workerexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig 11*bbecb9d1SAndroid Build Coastguard Workerexport LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib/ -L/usr/local/lib/x86_64-linux-gnu" 12*bbecb9d1SAndroid Build Coastguard Workerexport CC="gcc" 13*bbecb9d1SAndroid Build Coastguard Workerexport CXX="g++" 14*bbecb9d1SAndroid Build Coastguard Workerexport CFLAGS="-g3" 15*bbecb9d1SAndroid Build Coastguard Workerexport CXXFLAGS="-g3" 16*bbecb9d1SAndroid Build Coastguard Workerexport GIT_DATE="2020-02-02" 17*bbecb9d1SAndroid Build Coastguard Workerexport MESA_DEBUG=1 18*bbecb9d1SAndroid Build Coastguard Worker 19*bbecb9d1SAndroid Build Coastguard Workerecho 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft 20*bbecb9d1SAndroid Build Coastguard Workerecho 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft 21*bbecb9d1SAndroid Build Coastguard Workerecho '#!/bin/sh' > /usr/sbin/policy-rc.d 22*bbecb9d1SAndroid Build Coastguard Workerecho 'exit 101' >> /usr/sbin/policy-rc.d 23*bbecb9d1SAndroid Build Coastguard Workerchmod +x /usr/sbin/policy-rc.d 24*bbecb9d1SAndroid Build Coastguard Worker 25*bbecb9d1SAndroid Build Coastguard Workerecho deb-src http://deb.debian.org/debian bullseye main >> /etc/apt/sources.list 26*bbecb9d1SAndroid Build Coastguard Workerecho deb http://deb.debian.org/debian bullseye-backports main >> /etc/apt/sources.list 27*bbecb9d1SAndroid Build Coastguard Workerapt-get update 28*bbecb9d1SAndroid Build Coastguard Workerapt-get -y install ca-certificates 29*bbecb9d1SAndroid Build Coastguard Workerapt-get -y install --no-install-recommends \ 30*bbecb9d1SAndroid Build Coastguard Worker autoconf \ 31*bbecb9d1SAndroid Build Coastguard Worker busybox \ 32*bbecb9d1SAndroid Build Coastguard Worker ccache \ 33*bbecb9d1SAndroid Build Coastguard Worker check \ 34*bbecb9d1SAndroid Build Coastguard Worker clang \ 35*bbecb9d1SAndroid Build Coastguard Worker cmake \ 36*bbecb9d1SAndroid Build Coastguard Worker dbus \ 37*bbecb9d1SAndroid Build Coastguard Worker g++ \ 38*bbecb9d1SAndroid Build Coastguard Worker gcc \ 39*bbecb9d1SAndroid Build Coastguard Worker gdb \ 40*bbecb9d1SAndroid Build Coastguard Worker gdc \ 41*bbecb9d1SAndroid Build Coastguard Worker git \ 42*bbecb9d1SAndroid Build Coastguard Worker golang-go \ 43*bbecb9d1SAndroid Build Coastguard Worker kbd \ 44*bbecb9d1SAndroid Build Coastguard Worker libcurl4-openssl-dev \ 45*bbecb9d1SAndroid Build Coastguard Worker libgbm-dev \ 46*bbecb9d1SAndroid Build Coastguard Worker libnss-systemd \ 47*bbecb9d1SAndroid Build Coastguard Worker libpng-dev \ 48*bbecb9d1SAndroid Build Coastguard Worker libxrandr-dev \ 49*bbecb9d1SAndroid Build Coastguard Worker libxvmc-dev \ 50*bbecb9d1SAndroid Build Coastguard Worker libsm-dev \ 51*bbecb9d1SAndroid Build Coastguard Worker libvulkan-dev \ 52*bbecb9d1SAndroid Build Coastguard Worker libwayland-dev \ 53*bbecb9d1SAndroid Build Coastguard Worker libwayland-egl-backend-dev \ 54*bbecb9d1SAndroid Build Coastguard Worker linux-image-amd64 \ 55*bbecb9d1SAndroid Build Coastguard Worker lld \ 56*bbecb9d1SAndroid Build Coastguard Worker llvm-11-dev \ 57*bbecb9d1SAndroid Build Coastguard Worker mesa-utils \ 58*bbecb9d1SAndroid Build Coastguard Worker meson \ 59*bbecb9d1SAndroid Build Coastguard Worker nasm \ 60*bbecb9d1SAndroid Build Coastguard Worker ninja-build \ 61*bbecb9d1SAndroid Build Coastguard Worker procps \ 62*bbecb9d1SAndroid Build Coastguard Worker psmisc \ 63*bbecb9d1SAndroid Build Coastguard Worker python3-numpy \ 64*bbecb9d1SAndroid Build Coastguard Worker python3-six \ 65*bbecb9d1SAndroid Build Coastguard Worker python3-mako \ 66*bbecb9d1SAndroid Build Coastguard Worker python3-pip \ 67*bbecb9d1SAndroid Build Coastguard Worker python3-setuptools \ 68*bbecb9d1SAndroid Build Coastguard Worker python3-six \ 69*bbecb9d1SAndroid Build Coastguard Worker python3-wheel \ 70*bbecb9d1SAndroid Build Coastguard Worker qemu \ 71*bbecb9d1SAndroid Build Coastguard Worker spirv-headers \ 72*bbecb9d1SAndroid Build Coastguard Worker strace \ 73*bbecb9d1SAndroid Build Coastguard Worker systemd \ 74*bbecb9d1SAndroid Build Coastguard Worker systemd-coredump \ 75*bbecb9d1SAndroid Build Coastguard Worker time \ 76*bbecb9d1SAndroid Build Coastguard Worker waffle-utils \ 77*bbecb9d1SAndroid Build Coastguard Worker wget \ 78*bbecb9d1SAndroid Build Coastguard Worker xinit \ 79*bbecb9d1SAndroid Build Coastguard Worker xserver-xorg-core \ 80*bbecb9d1SAndroid Build Coastguard Worker xterm \ 81*bbecb9d1SAndroid Build Coastguard Worker xvfb \ 82*bbecb9d1SAndroid Build Coastguard Worker zlib1g-dev 83*bbecb9d1SAndroid Build Coastguard Worker 84*bbecb9d1SAndroid Build Coastguard Workerapt-get -y build-dep --no-install-recommends \ 85*bbecb9d1SAndroid Build Coastguard Worker libdrm \ 86*bbecb9d1SAndroid Build Coastguard Worker mesa \ 87*bbecb9d1SAndroid Build Coastguard Worker piglit \ 88*bbecb9d1SAndroid Build Coastguard Worker check 89*bbecb9d1SAndroid Build Coastguard Worker 90*bbecb9d1SAndroid Build Coastguard Workerapt-get -y remove valgrind libdrm-dev 91*bbecb9d1SAndroid Build Coastguard Workerrm -rf /var/lib/apt/lists/* 92*bbecb9d1SAndroid Build Coastguard Worker 93*bbecb9d1SAndroid Build Coastguard Workerexport KNOWN_GOOD_DRM=libdrm-2.4.105 94*bbecb9d1SAndroid Build Coastguard Workermkdir /drm 95*bbecb9d1SAndroid Build Coastguard Workerpushd /drm 96*bbecb9d1SAndroid Build Coastguard Workergit clone --shallow-since="$GIT_DATE" https://gitlab.freedesktop.org/mesa/drm.git . && \ 97*bbecb9d1SAndroid Build Coastguard Worker git checkout ${KNOWN_GOOD_DRM} && \ 98*bbecb9d1SAndroid Build Coastguard Worker git log --oneline -n 1 && \ 99*bbecb9d1SAndroid Build Coastguard Worker mkdir -p build && \ 100*bbecb9d1SAndroid Build Coastguard Worker meson build/ && \ 101*bbecb9d1SAndroid Build Coastguard Worker meson configure build/ -Dprefix=/usr/local -Dlibdir=lib && \ 102*bbecb9d1SAndroid Build Coastguard Worker ninja -C build/ install >/dev/null && \ 103*bbecb9d1SAndroid Build Coastguard Worker rm -rf /drm 104*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 105*bbecb9d1SAndroid Build Coastguard Workerpopd 106*bbecb9d1SAndroid Build Coastguard Worker 107*bbecb9d1SAndroid Build Coastguard Workerexport KNOWN_GOOD_MESA=${KNOWN_GOOD_MESA:-2908aba828c39a322dff8fd3044b42955efebfdb} 108*bbecb9d1SAndroid Build Coastguard Workerecho $KNOWN_GOOD_MESA 109*bbecb9d1SAndroid Build Coastguard Workerexport MESA_REPO=https://gitlab.freedesktop.org/mesa/mesa.git 110*bbecb9d1SAndroid Build Coastguard Workerecho $MESA_REPO 111*bbecb9d1SAndroid Build Coastguard Workermkdir /mesa 112*bbecb9d1SAndroid Build Coastguard Workerpushd /mesa 113*bbecb9d1SAndroid Build Coastguard Workergit clone --shallow-since="$GIT_DATE" ${MESA_REPO} . && \ 114*bbecb9d1SAndroid Build Coastguard Worker git checkout ${KNOWN_GOOD_MESA} && \ 115*bbecb9d1SAndroid Build Coastguard Worker git log --oneline -n 1 && \ 116*bbecb9d1SAndroid Build Coastguard Worker mkdir -p build && \ 117*bbecb9d1SAndroid Build Coastguard Worker meson build/ -Dprefix=/usr/local -Dplatforms=x11,wayland -Ddri-drivers= -Dgallium-drivers=swrast,iris,virgl,radeonsi -Dbuildtype=debugoptimized -Dllvm=true -Dglx=dri -Dgallium-vdpau=false -Dgallium-va=false -Dvulkan-drivers=[] -Dlibdir=lib && \ 118*bbecb9d1SAndroid Build Coastguard Worker ninja -C build/ install >/dev/null && \ 119*bbecb9d1SAndroid Build Coastguard Worker rm -rf /mesa 120*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 121*bbecb9d1SAndroid Build Coastguard Workerpopd 122*bbecb9d1SAndroid Build Coastguard Worker 123*bbecb9d1SAndroid Build Coastguard Workerexport KNOWN_GOOD_EPOXY=${KNOWN_GOOD_EPOXY:-1.5.4} 124*bbecb9d1SAndroid Build Coastguard Workermkdir /epoxy 125*bbecb9d1SAndroid Build Coastguard Workerpushd /epoxy 126*bbecb9d1SAndroid Build Coastguard Workergit clone --shallow-since="$GIT_DATE" https://github.com/anholt/libepoxy.git . && \ 127*bbecb9d1SAndroid Build Coastguard Worker git fetch --tags && 128*bbecb9d1SAndroid Build Coastguard Worker git checkout ${KNOWN_GOOD_EPOXY} && \ 129*bbecb9d1SAndroid Build Coastguard Worker git log --oneline -n 1 && \ 130*bbecb9d1SAndroid Build Coastguard Worker mkdir -p build && \ 131*bbecb9d1SAndroid Build Coastguard Worker meson build/ && \ 132*bbecb9d1SAndroid Build Coastguard Worker meson configure build/ -Dprefix=/usr/local -Dlibdir=lib && \ 133*bbecb9d1SAndroid Build Coastguard Worker ninja -C build/ install >/dev/null && \ 134*bbecb9d1SAndroid Build Coastguard Worker rm -rf /epoxy 135*bbecb9d1SAndroid Build Coastguard Worker [ "$?" == "0" ] || exit 1 136*bbecb9d1SAndroid Build Coastguard Workerpopd 137*bbecb9d1SAndroid Build Coastguard Worker 138*bbecb9d1SAndroid Build Coastguard Workerexport BATTERY_VERSION=0.1.24 139*bbecb9d1SAndroid Build Coastguard Workermkdir /battery 140*bbecb9d1SAndroid Build Coastguard Workerpushd /battery 141*bbecb9d1SAndroid Build Coastguard Workerwget "https://github.com/VoltLang/Battery/releases/download/v${BATTERY_VERSION}/battery-${BATTERY_VERSION}-x86_64-linux.tar.gz" && \ 142*bbecb9d1SAndroid Build Coastguard Worker tar xzvf battery-${BATTERY_VERSION}-x86_64-linux.tar.gz && \ 143*bbecb9d1SAndroid Build Coastguard Worker rm battery-${BATTERY_VERSION}-x86_64-linux.tar.gz && \ 144*bbecb9d1SAndroid Build Coastguard Worker mv battery /usr/local/bin 145*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 146*bbecb9d1SAndroid Build Coastguard Workerpopd 147*bbecb9d1SAndroid Build Coastguard Worker 148*bbecb9d1SAndroid Build Coastguard Workermkdir /volt 149*bbecb9d1SAndroid Build Coastguard Workerpushd /volt 150*bbecb9d1SAndroid Build Coastguard Workergit clone --depth=1 https://github.com/VoltLang/Watt.git && \ 151*bbecb9d1SAndroid Build Coastguard Worker git clone --depth=1 https://github.com/VoltLang/Volta.git && \ 152*bbecb9d1SAndroid Build Coastguard Worker git clone --depth=1 https://github.com/Wallbraker/dEQP.git && \ 153*bbecb9d1SAndroid Build Coastguard Worker battery config --release --lto Volta Watt && \ 154*bbecb9d1SAndroid Build Coastguard Worker battery build && \ 155*bbecb9d1SAndroid Build Coastguard Worker battery config --cmd-volta Volta/volta Volta/rt Watt dEQP && \ 156*bbecb9d1SAndroid Build Coastguard Worker battery build && \ 157*bbecb9d1SAndroid Build Coastguard Worker cp dEQP/deqp /usr/local/bin && \ 158*bbecb9d1SAndroid Build Coastguard Worker rm -rf /volt 159*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 160*bbecb9d1SAndroid Build Coastguard Workerpopd 161*bbecb9d1SAndroid Build Coastguard Worker 162*bbecb9d1SAndroid Build Coastguard Worker# To avoid this error: 163*bbecb9d1SAndroid Build Coastguard Worker# error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function. 164*bbecb9d1SAndroid Build Coastguard Workergit config --global http.postBuffer 1048576000 165*bbecb9d1SAndroid Build Coastguard Worker 166*bbecb9d1SAndroid Build Coastguard Workerexport KNOWN_GOOD_CTS=${KNOWN_GOOD_CTS:-ededa67cb12aec0c5e92e3eba40d3f3c7b4d697f} 167*bbecb9d1SAndroid Build Coastguard Workermkdir /VK-GL-CTS 168*bbecb9d1SAndroid Build Coastguard Workerpushd /VK-GL-CTS 169*bbecb9d1SAndroid Build Coastguard Workergit clone --shallow-since="$GIT_DATE" https://github.com/KhronosGroup/VK-GL-CTS.git . && \ 170*bbecb9d1SAndroid Build Coastguard Worker git checkout ${KNOWN_GOOD_CTS} && \ 171*bbecb9d1SAndroid Build Coastguard Worker git log --oneline -n 1 && \ 172*bbecb9d1SAndroid Build Coastguard Worker python3 external/fetch_sources.py && \ 173*bbecb9d1SAndroid Build Coastguard Worker mkdir -p build && \ 174*bbecb9d1SAndroid Build Coastguard Worker cd build && \ 175*bbecb9d1SAndroid Build Coastguard Worker cmake -DDEQP_TARGET=x11_egl_glx -DCMAKE_BUILD_TYPE=Release .. && \ 176*bbecb9d1SAndroid Build Coastguard Worker make -j$(nproc) && \ 177*bbecb9d1SAndroid Build Coastguard Worker find . -name CMakeFiles | xargs rm -rf && \ 178*bbecb9d1SAndroid Build Coastguard Worker find . -name lib\*.a | xargs rm -rf 179*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 180*bbecb9d1SAndroid Build Coastguard Workerpopd 181*bbecb9d1SAndroid Build Coastguard Worker 182*bbecb9d1SAndroid Build Coastguard Workerexport KNOWN_GOOD_PIGLIT=${KNOWN_GOOD_PIGLIT:-6a4be9e9946df310d9402f995f371c7deb8c27ba} 183*bbecb9d1SAndroid Build Coastguard Workermkdir /piglit 184*bbecb9d1SAndroid Build Coastguard Workerpushd /piglit 185*bbecb9d1SAndroid Build Coastguard Workergit clone --shallow-since="$GIT_DATE" https://gitlab.freedesktop.org/mesa/piglit.git . && \ 186*bbecb9d1SAndroid Build Coastguard Worker git checkout ${KNOWN_GOOD_PIGLIT} && \ 187*bbecb9d1SAndroid Build Coastguard Worker git log --oneline -n 1 && \ 188*bbecb9d1SAndroid Build Coastguard Worker cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release . && \ 189*bbecb9d1SAndroid Build Coastguard Worker make -j$(nproc) install >/dev/null && \ 190*bbecb9d1SAndroid Build Coastguard Worker rm -rf /usr/local/lib/piglit/generated_tests/spec/arb_vertex_attrib_64bit && \ 191*bbecb9d1SAndroid Build Coastguard Worker rm -rf /usr/local/lib/piglit/generated_tests/spec/glsl-4.20 && \ 192*bbecb9d1SAndroid Build Coastguard Worker rm -rf /piglit 193*bbecb9d1SAndroid Build Coastguard Worker [ "$?" = "0" ] || exit 1 194*bbecb9d1SAndroid Build Coastguard Workerpopd 195*bbecb9d1SAndroid Build Coastguard Worker 196*bbecb9d1SAndroid Build Coastguard Worker 197