gitlab-ci: Rename container install scripts to match job names (better)
authorMichel Dänzer <mdaenzer@redhat.com>
Thu, 7 Nov 2019 19:08:03 +0000 (20:08 +0100)
committerMichel Dänzer <michel@daenzer.net>
Fri, 15 Nov 2019 15:21:10 +0000 (16:21 +0100)
Cleans up .gitlab-ci/ a little, and allows using a single DEBIAN_EXEC
line for all container jobs.

v2:
* Use lava_arm.sh instead of arm_lava.sh for consistency with v2 of the
  previous change

Reviewed-by: Eric Anholt <eric@anholt.net> # v1
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
14 files changed:
.gitlab-ci.yml
.gitlab-ci/container/arm_build.sh [new file with mode: 0644]
.gitlab-ci/container/arm_test.sh [new file with mode: 0644]
.gitlab-ci/container/lava_arm.sh [new file with mode: 0644]
.gitlab-ci/container/x86_build.sh [new file with mode: 0644]
.gitlab-ci/container/x86_build_old.sh [new file with mode: 0644]
.gitlab-ci/container/x86_test.sh [new file with mode: 0644]
.gitlab-ci/debian-arm64-install.sh [deleted file]
.gitlab-ci/debian-arm64-test-install.sh [deleted file]
.gitlab-ci/debian-install.sh [deleted file]
.gitlab-ci/debian-stretch-install.sh [deleted file]
.gitlab-ci/debian-test-install.sh [deleted file]
.gitlab-ci/lava-debian-install.sh [deleted file]
.gitlab-ci/lava-gitlab-ci.yml

index 73b56a388be0d07fb62b7a40a40f58f091c5cf20..409d84df83f30e62177ac21d5f8a65cccd2f3b75 100644 (file)
@@ -89,6 +89,7 @@ stages:
   extends:
     - .ci-run-policy
   variables:
+    DEBIAN_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
     # no need to pull the whole repo to build the container image
     GIT_STRATEGY: none
 
@@ -96,8 +97,6 @@ x86_build:
   extends:
     - .debian@container-ifnot-exists
     - .container
-  variables:
-    DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
 
 .use-x86_build:
   image: $DEBIAN_IMAGE
@@ -108,7 +107,6 @@ x86_test:
   extends: x86_build
   variables:
     DEBIAN_TAG: "$DEBIAN_TEST_TAG"
-    DEBIAN_EXEC: 'bash .gitlab-ci/debian-test-install.sh'
 
 x86_build_old:
   extends: x86_build
@@ -116,7 +114,6 @@ x86_build_old:
     DEBIAN_TAG: $STRETCH_TAG
     DEBIAN_VERSION: $STRETCH_VERSION
     DEBIAN_IMAGE: $STRETCH_IMAGE
-    DEBIAN_EXEC: 'bash .gitlab-ci/debian-stretch-install.sh'
 
 .use-x86_build_old:
   image: $STRETCH_IMAGE
@@ -129,7 +126,6 @@ arm_build:
     - .container
   variables:
     DEBIAN_TAG: "$DEBIAN_ARM64_TAG"
-    DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-install.sh'
 
 arm_test:
   extends:
@@ -137,7 +133,6 @@ arm_test:
     - .container
   variables:
     DEBIAN_TAG: "$DEBIAN_ARM64_TEST_TAG"
-    DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-test-install.sh'
 
 
 # BUILD
diff --git a/.gitlab-ci/container/arm_build.sh b/.gitlab-ci/container/arm_build.sh
new file mode 100644 (file)
index 0000000..c08746b
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+############### Install packages for building
+apt-get -y install ca-certificates
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
+dpkg --add-architecture armhf
+apt-get update
+apt-get -y install \
+       bc \
+       bison \
+       ccache \
+       crossbuild-essential-armhf \
+       flex \
+       g++ \
+       gettext \
+       libdrm-dev:armhf \
+       libelf-dev \
+       libelf-dev:armhf \
+       libexpat1-dev \
+       libexpat1-dev:armhf \
+       libssl-dev \
+       llvm-7-dev:armhf \
+       llvm-8-dev \
+       meson \
+       pkg-config \
+       python \
+       python3-mako \
+       wget \
+       zlib1g-dev
+
+# dependencies where we want a specific version
+export LIBDRM_VERSION=libdrm-2.4.100
+
+wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
+tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
+cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
+rm -rf $LIBDRM_VERSION
+
+############### Generate cross build file for Meson
+
+cross_file="/cross_file-armhf.txt"
+/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
+# Explicitly set ccache path for cross compilers
+sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
+# Don't need wrapper for armhf executables
+sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
+
+apt-get purge -y \
+        wget
+
+apt-get autoremove -y --purge
diff --git a/.gitlab-ci/container/arm_test.sh b/.gitlab-ci/container/arm_test.sh
new file mode 100644 (file)
index 0000000..2ea6327
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+############### Install packages for building
+apt-get -y install ca-certificates
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
+apt-get update
+apt-get -y install \
+       bzip2 \
+       cmake \
+       g++ \
+       gcc \
+       git \
+       libc6-dev \
+       libdrm-nouveau2 \
+       libexpat1 \
+       libgbm-dev \
+       libgbm-dev \
+       libgles2-mesa-dev \
+       libllvm8 \
+       libpng16-16 \
+       libpng-dev \
+       libvulkan-dev \
+       libvulkan1 \
+       meson \
+       pkg-config \
+       procps \
+       python \
+       waffle-utils \
+       wget \
+       zlib1g
+
+############### Build dEQP runner
+
+. .gitlab-ci/build-cts-runner.sh
+
+############### Build dEQP
+
+. .gitlab-ci/build-deqp.sh
+
+
+############### Uninstall the build software
+
+apt-get purge -y \
+        bzip2 \
+        cmake \
+        g++ \
+        gcc \
+        git \
+        libc6-dev \
+        libgbm-dev \
+        libgles2-mesa-dev \
+        libpng-dev \
+        libvulkan-dev \
+        meson \
+        pkg-config \
+        python \
+        wget
+
+apt-get autoremove -y --purge
diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh
new file mode 100644 (file)
index 0000000..429dca0
--- /dev/null
@@ -0,0 +1,186 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+############### Install packages for building
+dpkg --add-architecture ${DEBIAN_ARCH}
+echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list
+apt-get update
+apt-get -y install ca-certificates
+apt-get -y install --no-install-recommends \
+       crossbuild-essential-${DEBIAN_ARCH} \
+       meson \
+       g++ \
+       git \
+       ccache \
+       pkg-config \
+       python3-mako \
+       python-numpy \
+       python-six \
+       python-mako \
+       python3-pip \
+       python3-setuptools \
+       python3-six \
+       python3-wheel \
+       python3-jinja2 \
+       bison \
+       flex \
+       gettext \
+       cmake \
+       bc \
+       libssl-dev \
+       lqa \
+       csvkit \
+       curl \
+       unzip \
+       wget \
+       debootstrap \
+       procps \
+       qemu-user-static \
+       cpio \
+       clang-8 \
+       llvm-8 \
+       libclang-8-dev \
+       llvm-8-dev \
+       gdc-9 \
+       lld-8 \
+       nasm \
+       libegl1-mesa-dev \
+       \
+       libdrm-dev:${DEBIAN_ARCH} \
+       libx11-dev:${DEBIAN_ARCH} \
+       libxxf86vm-dev:${DEBIAN_ARCH} \
+       libexpat1-dev:${DEBIAN_ARCH} \
+       libsensors-dev:${DEBIAN_ARCH} \
+       libxfixes-dev:${DEBIAN_ARCH} \
+       libxdamage-dev:${DEBIAN_ARCH} \
+       libxext-dev:${DEBIAN_ARCH} \
+       x11proto-dev:${DEBIAN_ARCH} \
+       libx11-xcb-dev:${DEBIAN_ARCH} \
+       libxcb-dri2-0-dev:${DEBIAN_ARCH} \
+       libxcb-glx0-dev:${DEBIAN_ARCH} \
+       libxcb-xfixes0-dev:${DEBIAN_ARCH} \
+       libxcb-dri3-dev:${DEBIAN_ARCH} \
+       libxcb-present-dev:${DEBIAN_ARCH} \
+       libxcb-randr0-dev:${DEBIAN_ARCH} \
+       libxcb-sync-dev:${DEBIAN_ARCH} \
+       libxrandr-dev:${DEBIAN_ARCH} \
+       libxshmfence-dev:${DEBIAN_ARCH} \
+       libelf-dev:${DEBIAN_ARCH} \
+       zlib1g-dev:${DEBIAN_ARCH} \
+       libglvnd-core-dev:${DEBIAN_ARCH} \
+       libgles2-mesa-dev:${DEBIAN_ARCH} \
+       libegl1-mesa-dev:${DEBIAN_ARCH} \
+       libpng-dev:${DEBIAN_ARCH}
+
+
+############### Install lavacli (remove after it's back into Debian testing)
+mkdir -p lavacli
+wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli
+pushd lavacli
+python3 ./setup.py install
+popd
+
+
+############### Cross-build dEQP
+mkdir -p /artifacts/rootfs/deqp
+
+git config --global user.email "mesa@example.com"
+git config --global user.name "Mesa CI"
+# XXX: Use --depth 1 once we can drop the cherry-picks.
+git clone \
+    https://github.com/KhronosGroup/VK-GL-CTS.git \
+    -b opengl-es-cts-3.2.5.1 \
+    /VK-GL-CTS
+cd /VK-GL-CTS
+# Fix surfaceless build
+git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
+git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
+
+# surfaceless links against libkms and such despite not using it.
+sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
+
+python3 external/fetch_sources.py
+
+cd /artifacts/rootfs/deqp
+cmake -G Ninja                                \
+      -DDEQP_TARGET=surfaceless               \
+      -DCMAKE_BUILD_TYPE=Release              \
+      -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc      \
+      -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++    \
+      /VK-GL-CTS
+ninja
+rm -rf /artifacts/rootfs/deqp/external
+rm -rf /artifacts/rootfs/deqp/modules/gles31
+rm -rf /artifacts/rootfs/deqp/modules/internal
+rm -rf /artifacts/rootfs/deqp/executor
+rm -rf /artifacts/rootfs/deqp/execserver
+rm -rf /artifacts/rootfs/deqp/modules/egl
+rm -rf /artifacts/rootfs/deqp/framework
+find . -name CMakeFiles | xargs rm -rf
+find . -name lib\*.a | xargs rm -rf
+du -sh *
+rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0
+
+
+############### Cross-build Volt dEQP runner
+mkdir -p /battery
+cd /battery
+wget https://github.com/VoltLang/Battery/releases/download/v0.1.23/battery-0.1.23-x86_64-linux.tar.gz
+tar xzvf battery-0.1.23-x86_64-linux.tar.gz
+rm battery-0.1.23-x86_64-linux.tar.gz
+mv battery /usr/local/bin
+rm -rf /battery
+
+mkdir -p /volt
+cd /volt
+mkdir -p Watt Volta dEQP
+wget -qO- https://github.com/VoltLang/Watt/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Watt
+wget -qO- https://github.com/VoltLang/Volta/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Volta
+wget -qO- https://github.com/Wallbraker/dEQP/archive/v0.1.4.tar.gz | tar -xz --strip-components=1 -C ./dEQP
+battery config --release --lto Volta Watt
+battery build
+battery config --arch ${VOLT_ARCH} --cmd-volta Volta/volta Volta/rt Watt dEQP
+battery build
+rm /usr/local/bin/battery
+cp dEQP/deqp /artifacts/rootfs/deqp/deqp-volt
+rm -rf /volt
+
+
+############### Remove LLVM now, so the container image is smaller
+apt-get -y remove \*llvm\*
+
+
+############### Cross-build kernel
+KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/panfrost-veyron-fix/linux-panfrost-veyron-fix.tar.gz"
+export ARCH=${KERNEL_ARCH}
+export CROSS_COMPILE="${GCC_ARCH}-"
+
+mkdir -p /kernel
+wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel
+cd /kernel
+./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config
+make -j12 ${KERNEL_IMAGE_NAME} dtbs
+cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/.
+cp ${DEVICE_TREES} /artifacts/.
+rm -rf /kernel
+
+
+############### Create rootfs
+cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/.
+mkdir -p /artifacts/rootfs/bin
+cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin
+cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin
+
+set +e
+debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /artifacts/rootfs/ http://deb.debian.org/debian
+cat /artifacts/rootfs/debootstrap/debootstrap.log
+set -e
+chroot /artifacts/rootfs sh /create-rootfs.sh
+
+rm /artifacts/rootfs/bin/qemu-arm-static
+rm /artifacts/rootfs/bin/qemu-aarch64-static
+rm /artifacts/rootfs/create-rootfs.sh
diff --git a/.gitlab-ci/container/x86_build.sh b/.gitlab-ci/container/x86_build.sh
new file mode 100644 (file)
index 0000000..374d1e8
--- /dev/null
@@ -0,0 +1,212 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+export DEBIAN_FRONTEND=noninteractive
+
+CROSS_ARCHITECTURES="i386"
+for arch in $CROSS_ARCHITECTURES; do
+    dpkg --add-architecture $arch
+done
+
+apt-get install -y \
+      ca-certificates \
+      unzip \
+      wget
+
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
+
+apt-get update
+
+# Use newer packages from backports by default
+cat >/etc/apt/preferences <<EOF
+Package: *
+Pin: release a=buster-backports
+Pin-Priority: 500
+EOF
+
+apt-get dist-upgrade -y
+
+apt-get install -y --no-remove \
+      autoconf \
+      automake \
+      autotools-dev \
+      bison \
+      clang-8 \
+      cmake \
+      flex \
+      g++ \
+      gcc \
+      gettext \
+      git \
+      libclang-6.0-dev \
+      libclang-7-dev \
+      libclang-8-dev \
+      libclc-dev \
+      libelf-dev \
+      libepoxy-dev \
+      libexpat1-dev \
+      libgbm-dev \
+      libgtk-3-dev \
+      libomxil-bellagio-dev \
+      libpciaccess-dev \
+      libtool \
+      libunwind-dev \
+      libva-dev \
+      libvdpau-dev \
+      libvulkan-dev \
+      libx11-dev \
+      libx11-xcb-dev \
+      libxdamage-dev \
+      libxext-dev \
+      libxrandr-dev \
+      libxrender-dev \
+      libxshmfence-dev \
+      libxvmc-dev \
+      libxxf86vm-dev \
+      llvm-6.0-dev \
+      llvm-7-dev \
+      llvm-8-dev \
+      meson \
+      pkg-config \
+      python-mako \
+      python3-mako \
+      scons \
+      x11proto-dri2-dev \
+      x11proto-gl-dev \
+      x11proto-randr-dev \
+      xz-utils \
+      zlib1g-dev
+
+# Cross-build Mesa deps
+for arch in $CROSS_ARCHITECTURES; do
+    apt-get install -y --no-remove \
+            crossbuild-essential-${arch} \
+            libdrm-dev:${arch} \
+            libelf-dev:${arch} \
+            libexpat1-dev:${arch}
+done
+
+# for 64bit windows cross-builds
+apt-get install -y --no-remove \
+    libz-mingw-w64-dev \
+    mingw-w64 \
+    wine \
+    wine32 \
+    wine64
+
+# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
+# they're going to be fixed, so we'll just have to fix it ourselves
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
+cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF
+#!/bin/sh
+
+PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
+EOF
+chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
+
+# for the vulkan overlay layer
+wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
+unzip glslang-master-linux-Release.zip bin/glslangValidator
+install -m755 bin/glslangValidator /usr/local/bin/
+rm bin/glslangValidator glslang-master-linux-Release.zip
+
+
+# dependencies where we want a specific version
+export              XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
+export               XCB_RELEASES=https://xcb.freedesktop.org/dist
+export           WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
+
+export         XORGMACROS_VERSION=util-macros-1.19.0
+export             LIBDRM_VERSION=libdrm-2.4.100
+export           XCBPROTO_VERSION=xcb-proto-1.13
+export             LIBXCB_VERSION=libxcb-1.13
+export         LIBWAYLAND_VERSION=wayland-1.15.0
+export  WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
+
+wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
+tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
+cd $XORGMACROS_VERSION; ./configure; make install; cd ..
+rm -rf $XORGMACROS_VERSION
+
+wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
+tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
+cd $XCBPROTO_VERSION; ./configure; make install; cd ..
+rm -rf $XCBPROTO_VERSION
+
+wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
+tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
+cd $LIBXCB_VERSION; ./configure; make install; cd ..
+rm -rf $LIBXCB_VERSION
+
+wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
+tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
+cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
+rm -rf $LIBDRM_VERSION
+
+wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
+tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
+cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
+rm -rf $LIBWAYLAND_VERSION
+
+wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
+tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
+cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
+rm -rf $WAYLAND_PROTOCOLS_VERSION
+
+
+# The version of libglvnd-dev in debian is too old
+# Check this page to see when this local compilation can be dropped in favour of the package:
+# https://packages.debian.org/libglvnd-dev
+GLVND_VERSION=1.2.0
+wget https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$GLVND_VERSION/libglvnd-v$GLVND_VERSION.tar.gz
+tar -xvf libglvnd-v$GLVND_VERSION.tar.gz && rm libglvnd-v$GLVND_VERSION.tar.gz
+pushd libglvnd-v$GLVND_VERSION; ./autogen.sh; ./configure; make install; popd
+rm -rf libglvnd-v$GLVND_VERSION
+
+
+pushd /usr/local
+git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
+rm -rf shader-db/.git
+cd shader-db
+make
+popd
+
+# Use ccache to speed up builds
+apt-get install -y --no-remove ccache
+
+# We need xmllint to validate the XML files in Mesa
+apt-get install -y --no-remove libxml2-utils
+
+
+# Generate cross build files for Meson
+for arch in $CROSS_ARCHITECTURES; do
+  cross_file="/cross_file-$arch.txt"
+  /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
+  # Explicitly set ccache path for cross compilers
+  sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
+  if [ "$arch" = "i386" ]; then
+    # Work around a bug in debcrossgen that should be fixed in the next release
+    sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
+    # Don't need wrapper for i386 executables
+    sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
+  fi
+done
+
+
+############### Uninstall the build software
+
+apt-get purge -y \
+      autoconf \
+      automake \
+      autotools-dev \
+      cmake \
+      git \
+      libgbm-dev \
+      libtool \
+      unzip \
+      wget
+
+apt-get autoremove -y --purge
diff --git a/.gitlab-ci/container/x86_build_old.sh b/.gitlab-ci/container/x86_build_old.sh
new file mode 100644 (file)
index 0000000..9062745
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+export DEBIAN_FRONTEND=noninteractive
+
+apt-get install -y \
+      apt-transport-https \
+      ca-certificates
+
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
+
+apt-get update
+
+# Use newer packages from backports by default
+cat >/etc/apt/preferences <<EOF
+Package: *
+Pin: release a=stretch-backports
+Pin-Priority: 500
+EOF
+
+apt-get dist-upgrade -y
+
+apt-get install -y --no-remove \
+      llvm-3.9-dev \
+      libclang-3.9-dev \
+      llvm-4.0-dev \
+      libclang-4.0-dev \
+      llvm-5.0-dev \
+      libclang-5.0-dev \
+      g++ \
+      bzip2 \
+      ccache \
+      zlib1g-dev \
+      pkg-config \
+      gcc \
+      git \
+      libepoxy-dev \
+      libclc-dev \
+      xz-utils \
+      libdrm-dev \
+      libexpat1-dev \
+      libelf-dev \
+      libunwind-dev \
+      libpng-dev \
+      python-mako \
+      python3-mako \
+      bison \
+      flex \
+      gettext \
+      scons \
+      meson
+
+
+############### Uninstall unused packages
+
+apt-get autoremove -y --purge
diff --git a/.gitlab-ci/container/x86_test.sh b/.gitlab-ci/container/x86_test.sh
new file mode 100644 (file)
index 0000000..bb48c47
--- /dev/null
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+export DEBIAN_FRONTEND=noninteractive
+
+apt-get install -y ca-certificates
+
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
+
+apt-get update
+
+# Use newer packages from backports by default
+cat >/etc/apt/preferences <<EOF
+Package: *
+Pin: release a=buster-backports
+Pin-Priority: 500
+EOF
+
+apt-get dist-upgrade -y
+
+apt-get install -y --no-remove \
+      cmake \
+      g++ \
+      git \
+      gcc \
+      libexpat1 \
+      libgbm-dev \
+      libgles2-mesa-dev \
+      libpng16-16 \
+      libpng-dev \
+      libvulkan1 \
+      libvulkan-dev \
+      libwaffle-dev \
+      libwayland-server0 \
+      libxcb-xfixes0 \
+      libxkbcommon0 \
+      libxkbcommon-dev \
+      libxrender1 \
+      libxrender-dev \
+      meson \
+      patch \
+      pkg-config \
+      python3-mako \
+      python3-numpy \
+      python3-six \
+      python \
+      waffle-utils \
+      xauth \
+      xvfb \
+      zlib1g
+
+
+############### Build piglit
+
+git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
+pushd /piglit
+git checkout 594edcc00d55028d4c815f6192ba9885b2340eb6
+patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
+cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
+ninja -j4
+find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
+rm -rf target_api
+popd
+
+
+############### Build dEQP runner
+
+. .gitlab-ci/build-cts-runner.sh
+
+############### Build dEQP
+
+. .gitlab-ci/build-deqp.sh
+
+
+############### Uninstall the build software
+
+apt-get purge -y \
+      cmake \
+      g++ \
+      gcc \
+      git \
+      libc6-dev \
+      libgbm-dev \
+      libgles2-mesa-dev \
+      libpng-dev \
+      libwaffle-dev \
+      libxkbcommon-dev \
+      libxrender-dev \
+      meson \
+      patch \
+      pkg-config \
+      python
+
+apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-arm64-install.sh b/.gitlab-ci/debian-arm64-install.sh
deleted file mode 100644 (file)
index c08746b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-############### Install packages for building
-apt-get -y install ca-certificates
-sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
-echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
-dpkg --add-architecture armhf
-apt-get update
-apt-get -y install \
-       bc \
-       bison \
-       ccache \
-       crossbuild-essential-armhf \
-       flex \
-       g++ \
-       gettext \
-       libdrm-dev:armhf \
-       libelf-dev \
-       libelf-dev:armhf \
-       libexpat1-dev \
-       libexpat1-dev:armhf \
-       libssl-dev \
-       llvm-7-dev:armhf \
-       llvm-8-dev \
-       meson \
-       pkg-config \
-       python \
-       python3-mako \
-       wget \
-       zlib1g-dev
-
-# dependencies where we want a specific version
-export LIBDRM_VERSION=libdrm-2.4.100
-
-wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
-tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
-cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
-rm -rf $LIBDRM_VERSION
-
-############### Generate cross build file for Meson
-
-cross_file="/cross_file-armhf.txt"
-/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
-# Explicitly set ccache path for cross compilers
-sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
-# Don't need wrapper for armhf executables
-sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
-
-apt-get purge -y \
-        wget
-
-apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-arm64-test-install.sh b/.gitlab-ci/debian-arm64-test-install.sh
deleted file mode 100644 (file)
index 2ea6327..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-############### Install packages for building
-apt-get -y install ca-certificates
-sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
-echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
-apt-get update
-apt-get -y install \
-       bzip2 \
-       cmake \
-       g++ \
-       gcc \
-       git \
-       libc6-dev \
-       libdrm-nouveau2 \
-       libexpat1 \
-       libgbm-dev \
-       libgbm-dev \
-       libgles2-mesa-dev \
-       libllvm8 \
-       libpng16-16 \
-       libpng-dev \
-       libvulkan-dev \
-       libvulkan1 \
-       meson \
-       pkg-config \
-       procps \
-       python \
-       waffle-utils \
-       wget \
-       zlib1g
-
-############### Build dEQP runner
-
-. .gitlab-ci/build-cts-runner.sh
-
-############### Build dEQP
-
-. .gitlab-ci/build-deqp.sh
-
-
-############### Uninstall the build software
-
-apt-get purge -y \
-        bzip2 \
-        cmake \
-        g++ \
-        gcc \
-        git \
-        libc6-dev \
-        libgbm-dev \
-        libgles2-mesa-dev \
-        libpng-dev \
-        libvulkan-dev \
-        meson \
-        pkg-config \
-        python \
-        wget
-
-apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh
deleted file mode 100644 (file)
index 374d1e8..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-export DEBIAN_FRONTEND=noninteractive
-
-CROSS_ARCHITECTURES="i386"
-for arch in $CROSS_ARCHITECTURES; do
-    dpkg --add-architecture $arch
-done
-
-apt-get install -y \
-      ca-certificates \
-      unzip \
-      wget
-
-sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
-echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
-
-apt-get update
-
-# Use newer packages from backports by default
-cat >/etc/apt/preferences <<EOF
-Package: *
-Pin: release a=buster-backports
-Pin-Priority: 500
-EOF
-
-apt-get dist-upgrade -y
-
-apt-get install -y --no-remove \
-      autoconf \
-      automake \
-      autotools-dev \
-      bison \
-      clang-8 \
-      cmake \
-      flex \
-      g++ \
-      gcc \
-      gettext \
-      git \
-      libclang-6.0-dev \
-      libclang-7-dev \
-      libclang-8-dev \
-      libclc-dev \
-      libelf-dev \
-      libepoxy-dev \
-      libexpat1-dev \
-      libgbm-dev \
-      libgtk-3-dev \
-      libomxil-bellagio-dev \
-      libpciaccess-dev \
-      libtool \
-      libunwind-dev \
-      libva-dev \
-      libvdpau-dev \
-      libvulkan-dev \
-      libx11-dev \
-      libx11-xcb-dev \
-      libxdamage-dev \
-      libxext-dev \
-      libxrandr-dev \
-      libxrender-dev \
-      libxshmfence-dev \
-      libxvmc-dev \
-      libxxf86vm-dev \
-      llvm-6.0-dev \
-      llvm-7-dev \
-      llvm-8-dev \
-      meson \
-      pkg-config \
-      python-mako \
-      python3-mako \
-      scons \
-      x11proto-dri2-dev \
-      x11proto-gl-dev \
-      x11proto-randr-dev \
-      xz-utils \
-      zlib1g-dev
-
-# Cross-build Mesa deps
-for arch in $CROSS_ARCHITECTURES; do
-    apt-get install -y --no-remove \
-            crossbuild-essential-${arch} \
-            libdrm-dev:${arch} \
-            libelf-dev:${arch} \
-            libexpat1-dev:${arch}
-done
-
-# for 64bit windows cross-builds
-apt-get install -y --no-remove \
-    libz-mingw-w64-dev \
-    mingw-w64 \
-    wine \
-    wine32 \
-    wine64
-
-# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
-# they're going to be fixed, so we'll just have to fix it ourselves
-# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
-cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF
-#!/bin/sh
-
-PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
-EOF
-chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
-
-# for the vulkan overlay layer
-wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
-unzip glslang-master-linux-Release.zip bin/glslangValidator
-install -m755 bin/glslangValidator /usr/local/bin/
-rm bin/glslangValidator glslang-master-linux-Release.zip
-
-
-# dependencies where we want a specific version
-export              XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
-export               XCB_RELEASES=https://xcb.freedesktop.org/dist
-export           WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
-
-export         XORGMACROS_VERSION=util-macros-1.19.0
-export             LIBDRM_VERSION=libdrm-2.4.100
-export           XCBPROTO_VERSION=xcb-proto-1.13
-export             LIBXCB_VERSION=libxcb-1.13
-export         LIBWAYLAND_VERSION=wayland-1.15.0
-export  WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
-
-wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
-tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
-cd $XORGMACROS_VERSION; ./configure; make install; cd ..
-rm -rf $XORGMACROS_VERSION
-
-wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
-tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
-cd $XCBPROTO_VERSION; ./configure; make install; cd ..
-rm -rf $XCBPROTO_VERSION
-
-wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
-tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
-cd $LIBXCB_VERSION; ./configure; make install; cd ..
-rm -rf $LIBXCB_VERSION
-
-wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
-tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
-cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
-rm -rf $LIBDRM_VERSION
-
-wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
-tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
-cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
-rm -rf $LIBWAYLAND_VERSION
-
-wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
-tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
-cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
-rm -rf $WAYLAND_PROTOCOLS_VERSION
-
-
-# The version of libglvnd-dev in debian is too old
-# Check this page to see when this local compilation can be dropped in favour of the package:
-# https://packages.debian.org/libglvnd-dev
-GLVND_VERSION=1.2.0
-wget https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$GLVND_VERSION/libglvnd-v$GLVND_VERSION.tar.gz
-tar -xvf libglvnd-v$GLVND_VERSION.tar.gz && rm libglvnd-v$GLVND_VERSION.tar.gz
-pushd libglvnd-v$GLVND_VERSION; ./autogen.sh; ./configure; make install; popd
-rm -rf libglvnd-v$GLVND_VERSION
-
-
-pushd /usr/local
-git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
-rm -rf shader-db/.git
-cd shader-db
-make
-popd
-
-# Use ccache to speed up builds
-apt-get install -y --no-remove ccache
-
-# We need xmllint to validate the XML files in Mesa
-apt-get install -y --no-remove libxml2-utils
-
-
-# Generate cross build files for Meson
-for arch in $CROSS_ARCHITECTURES; do
-  cross_file="/cross_file-$arch.txt"
-  /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
-  # Explicitly set ccache path for cross compilers
-  sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
-  if [ "$arch" = "i386" ]; then
-    # Work around a bug in debcrossgen that should be fixed in the next release
-    sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
-    # Don't need wrapper for i386 executables
-    sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
-  fi
-done
-
-
-############### Uninstall the build software
-
-apt-get purge -y \
-      autoconf \
-      automake \
-      autotools-dev \
-      cmake \
-      git \
-      libgbm-dev \
-      libtool \
-      unzip \
-      wget
-
-apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-stretch-install.sh b/.gitlab-ci/debian-stretch-install.sh
deleted file mode 100644 (file)
index 9062745..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-export DEBIAN_FRONTEND=noninteractive
-
-apt-get install -y \
-      apt-transport-https \
-      ca-certificates
-
-sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
-echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
-
-apt-get update
-
-# Use newer packages from backports by default
-cat >/etc/apt/preferences <<EOF
-Package: *
-Pin: release a=stretch-backports
-Pin-Priority: 500
-EOF
-
-apt-get dist-upgrade -y
-
-apt-get install -y --no-remove \
-      llvm-3.9-dev \
-      libclang-3.9-dev \
-      llvm-4.0-dev \
-      libclang-4.0-dev \
-      llvm-5.0-dev \
-      libclang-5.0-dev \
-      g++ \
-      bzip2 \
-      ccache \
-      zlib1g-dev \
-      pkg-config \
-      gcc \
-      git \
-      libepoxy-dev \
-      libclc-dev \
-      xz-utils \
-      libdrm-dev \
-      libexpat1-dev \
-      libelf-dev \
-      libunwind-dev \
-      libpng-dev \
-      python-mako \
-      python3-mako \
-      bison \
-      flex \
-      gettext \
-      scons \
-      meson
-
-
-############### Uninstall unused packages
-
-apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-test-install.sh b/.gitlab-ci/debian-test-install.sh
deleted file mode 100644 (file)
index bb48c47..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-export DEBIAN_FRONTEND=noninteractive
-
-apt-get install -y ca-certificates
-
-sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
-echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
-
-apt-get update
-
-# Use newer packages from backports by default
-cat >/etc/apt/preferences <<EOF
-Package: *
-Pin: release a=buster-backports
-Pin-Priority: 500
-EOF
-
-apt-get dist-upgrade -y
-
-apt-get install -y --no-remove \
-      cmake \
-      g++ \
-      git \
-      gcc \
-      libexpat1 \
-      libgbm-dev \
-      libgles2-mesa-dev \
-      libpng16-16 \
-      libpng-dev \
-      libvulkan1 \
-      libvulkan-dev \
-      libwaffle-dev \
-      libwayland-server0 \
-      libxcb-xfixes0 \
-      libxkbcommon0 \
-      libxkbcommon-dev \
-      libxrender1 \
-      libxrender-dev \
-      meson \
-      patch \
-      pkg-config \
-      python3-mako \
-      python3-numpy \
-      python3-six \
-      python \
-      waffle-utils \
-      xauth \
-      xvfb \
-      zlib1g
-
-
-############### Build piglit
-
-git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
-pushd /piglit
-git checkout 594edcc00d55028d4c815f6192ba9885b2340eb6
-patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
-cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
-ninja -j4
-find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
-rm -rf target_api
-popd
-
-
-############### Build dEQP runner
-
-. .gitlab-ci/build-cts-runner.sh
-
-############### Build dEQP
-
-. .gitlab-ci/build-deqp.sh
-
-
-############### Uninstall the build software
-
-apt-get purge -y \
-      cmake \
-      g++ \
-      gcc \
-      git \
-      libc6-dev \
-      libgbm-dev \
-      libgles2-mesa-dev \
-      libpng-dev \
-      libwaffle-dev \
-      libxkbcommon-dev \
-      libxrender-dev \
-      meson \
-      patch \
-      pkg-config \
-      python
-
-apt-get autoremove -y --purge
diff --git a/.gitlab-ci/lava-debian-install.sh b/.gitlab-ci/lava-debian-install.sh
deleted file mode 100644 (file)
index be0b1c6..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/bin/bash
-
-set -e
-set -o xtrace
-
-############### Install packages for building
-dpkg --add-architecture ${DEBIAN_ARCH}
-echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list
-apt-get update
-apt-get -y install ca-certificates
-apt-get -y install --no-install-recommends \
-       crossbuild-essential-${DEBIAN_ARCH} \
-       meson \
-       g++ \
-       git \
-       ccache \
-       pkg-config \
-       python3-mako \
-       python-numpy \
-       python-six \
-       python-mako \
-       python3-pip \
-       python3-setuptools \
-       python3-six \
-       python3-wheel \
-       python3-jinja2 \
-       bison \
-       flex \
-       gettext \
-       cmake \
-       bc \
-       libssl-dev \
-       lqa \
-       csvkit \
-       curl \
-       unzip \
-       wget \
-       debootstrap \
-       procps \
-       qemu-user-static \
-       cpio \
-       clang-8 \
-       llvm-8 \
-       libclang-8-dev \
-       llvm-8-dev \
-       gdc-9 \
-       lld-8 \
-       nasm \
-       libegl1-mesa-dev \
-       \
-       libdrm-dev:${DEBIAN_ARCH} \
-       libx11-dev:${DEBIAN_ARCH} \
-       libxxf86vm-dev:${DEBIAN_ARCH} \
-       libexpat1-dev:${DEBIAN_ARCH} \
-       libsensors-dev:${DEBIAN_ARCH} \
-       libxfixes-dev:${DEBIAN_ARCH} \
-       libxdamage-dev:${DEBIAN_ARCH} \
-       libxext-dev:${DEBIAN_ARCH} \
-       x11proto-dev:${DEBIAN_ARCH} \
-       libx11-xcb-dev:${DEBIAN_ARCH} \
-       libxcb-dri2-0-dev:${DEBIAN_ARCH} \
-       libxcb-glx0-dev:${DEBIAN_ARCH} \
-       libxcb-xfixes0-dev:${DEBIAN_ARCH} \
-       libxcb-dri3-dev:${DEBIAN_ARCH} \
-       libxcb-present-dev:${DEBIAN_ARCH} \
-       libxcb-randr0-dev:${DEBIAN_ARCH} \
-       libxcb-sync-dev:${DEBIAN_ARCH} \
-       libxrandr-dev:${DEBIAN_ARCH} \
-       libxshmfence-dev:${DEBIAN_ARCH} \
-       libelf-dev:${DEBIAN_ARCH} \
-       zlib1g-dev:${DEBIAN_ARCH} \
-       libglvnd-core-dev:${DEBIAN_ARCH} \
-       libgles2-mesa-dev:${DEBIAN_ARCH} \
-       libegl1-mesa-dev:${DEBIAN_ARCH} \
-       libpng-dev:${DEBIAN_ARCH}
-
-
-############### Install lavacli (remove after it's back into Debian testing)
-mkdir -p lavacli
-wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli
-pushd lavacli
-python3 ./setup.py install
-popd
-
-
-############### Cross-build dEQP
-mkdir -p /artifacts/rootfs/deqp
-
-git config --global user.email "mesa@example.com"
-git config --global user.name "Mesa CI"
-# XXX: Use --depth 1 once we can drop the cherry-picks.
-git clone \
-    https://github.com/KhronosGroup/VK-GL-CTS.git \
-    -b opengl-es-cts-3.2.5.1 \
-    /VK-GL-CTS
-cd /VK-GL-CTS
-# Fix surfaceless build
-git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
-git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
-
-# surfaceless links against libkms and such despite not using it.
-sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
-sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
-sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
-
-python3 external/fetch_sources.py
-
-cd /artifacts/rootfs/deqp
-cmake -G Ninja                                \
-      -DDEQP_TARGET=surfaceless               \
-      -DCMAKE_BUILD_TYPE=Release              \
-      -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc      \
-      -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++    \
-      /VK-GL-CTS
-ninja
-rm -rf /artifacts/rootfs/deqp/external
-rm -rf /artifacts/rootfs/deqp/modules/gles31
-rm -rf /artifacts/rootfs/deqp/modules/internal
-rm -rf /artifacts/rootfs/deqp/executor
-rm -rf /artifacts/rootfs/deqp/execserver
-rm -rf /artifacts/rootfs/deqp/modules/egl
-rm -rf /artifacts/rootfs/deqp/framework
-find . -name CMakeFiles | xargs rm -rf
-find . -name lib\*.a | xargs rm -rf
-du -sh *
-rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0
-
-
-############### Cross-build Volt dEQP runner
-mkdir -p /battery
-cd /battery
-wget https://github.com/VoltLang/Battery/releases/download/v0.1.23/battery-0.1.23-x86_64-linux.tar.gz
-tar xzvf battery-0.1.23-x86_64-linux.tar.gz
-rm battery-0.1.23-x86_64-linux.tar.gz
-mv battery /usr/local/bin
-rm -rf /battery
-
-mkdir -p /volt
-cd /volt
-mkdir -p Watt Volta dEQP
-wget -qO- https://github.com/VoltLang/Watt/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Watt
-wget -qO- https://github.com/VoltLang/Volta/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Volta
-wget -qO- https://github.com/Wallbraker/dEQP/archive/v0.1.4.tar.gz | tar -xz --strip-components=1 -C ./dEQP
-battery config --release --lto Volta Watt
-battery build
-battery config --arch ${VOLT_ARCH} --cmd-volta Volta/volta Volta/rt Watt dEQP
-battery build
-rm /usr/local/bin/battery
-cp dEQP/deqp /artifacts/rootfs/deqp/deqp-volt
-rm -rf /volt
-
-
-############### Remove LLVM now, so the container image is smaller
-apt-get -y remove \*llvm\*
-
-
-############### Cross-build kernel
-KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/panfrost-veyron-fix/linux-panfrost-veyron-fix.tar.gz"
-export ARCH=${KERNEL_ARCH}
-export CROSS_COMPILE="${GCC_ARCH}-"
-
-mkdir -p /kernel
-wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel
-cd /kernel
-./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config
-make -j12 ${KERNEL_IMAGE_NAME} dtbs
-cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/.
-cp ${DEVICE_TREES} /artifacts/.
-rm -rf /kernel
-
-
-############### Create rootfs
-cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/.
-mkdir -p /artifacts/rootfs/bin
-cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin
-cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin
-
-set +e
-debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /artifacts/rootfs/ http://deb.debian.org/debian
-cat /artifacts/rootfs/debootstrap/debootstrap.log
-set -e
-chroot /artifacts/rootfs sh /create-rootfs.sh
-
-rm /artifacts/rootfs/bin/qemu-arm-static
-rm /artifacts/rootfs/bin/qemu-aarch64-static
-rm /artifacts/rootfs/create-rootfs.sh
-
index 763b06d97ba7f72ffcf6726d33a33da32c23b8cf..cf896d720cd806bdaacd792443cb376224709ada 100644 (file)
@@ -36,7 +36,7 @@ include:
                   DEFCONFIG=${DEFCONFIG}
                   DEVICE_TREES="${DEVICE_TREES}"
                   KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME}
-                  bash .gitlab-ci/lava-debian-install.sh'
+                  bash .gitlab-ci/container/lava_arm.sh'
     DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION}
 
 lava_armhf: