- .fdo.container-build@debian@arm64v8
- .container
variables:
- FDO_DISTRIBUTION_TAG: &arm_build "2020-06-22-stable"
+ FDO_DISTRIBUTION_TAG: &arm_build "2020-06-22-tracie"
.use-arm_build:
variables:
- .fdo.container-build@debian
- .container
variables:
- FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-22-stable"
+ FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-22-tracie"
.use-arm_test-base:
extends:
extends:
- .use-arm_test-base
variables:
- FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-22-ephemeral"
+ FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-22-tracie"
.use-arm64_test:
variables:
# these devices use it and it would take up space in the initrd.
pushd rootfs
find -H | \
- egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" | \
+ egrep -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" |
+ egrep -v "traces-db|apitrace|renderdoc|python" | \
cpio -H newc -o | \
xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
popd
git clone https://gitlab.freedesktop.org/mesa/waffle.git --single-branch --no-checkout /waffle
pushd /waffle
git checkout "$WAFFLE_VERSION"
-cmake -B_build -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release .
-make -C _build -j4 install
+cmake -B_build -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_ARGS .
+make -C _build install
+mkdir -p build/lib build/bin
+cp _build/lib/libwaffle-1.so build/lib/libwaffle-1.so.0
+cp _build/bin/wflinfo build/bin/wflinfo
+${STRIP_CMD:-strip} build/lib/* build/bin/*
+find . -not -path './build' -not -path './build/*' -delete
popd
-rm -rf /waffle
APITRACE_VERSION="9.0"
git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
pushd /apitrace
git checkout "$APITRACE_VERSION"
-cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/
+cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/ $EXTRA_CMAKE_ARGS
ninja -C _build
mkdir build
cp _build/apitrace build
-cp _build/glretrace build
cp _build/eglretrace build
-strip build/*
+${STRIP_CMD:-strip} build/*
find . -not -path './build' -not -path './build/*' -delete
popd
git clone https://github.com/baldurk/renderdoc.git --single-branch --no-checkout /renderdoc
pushd /renderdoc
git checkout "$RENDERDOC_VERSION"
-cmake -G Ninja -B_build -H. -DENABLE_QRENDERDOC=false -DCMAKE_BUILD_TYPE=Release
+cmake -G Ninja -B_build -H. -DENABLE_QRENDERDOC=false -DCMAKE_BUILD_TYPE=Release $EXTRA_CMAKE_ARGS
ninja -C _build
mkdir -p build/lib
+${STRIP_CMD:-strip} _build/lib/*.so
cp _build/lib/renderdoc.so build/lib
cp _build/lib/librenderdoc.so build/lib
-strip build/lib/*
find . -not -path './build' -not -path './build/*' -delete
popd
apt-get -y install \
abootimg \
android-sdk-ext4-utils \
+ autoconf \
+ automake \
bc \
bison \
ccache \
g++ \
git \
lavacli \
+ libboost-dev:armhf \
+ libboost-dev \
libdrm-dev:armhf \
+ libdrm-dev \
libegl1-mesa-dev \
libegl1-mesa-dev:armhf \
libelf-dev \
libelf-dev:armhf \
libexpat1-dev \
libexpat1-dev:armhf \
+ libgbm-dev \
+ libgbm-dev:armhf \
libgles2-mesa-dev \
libgles2-mesa-dev:armhf \
+ libpcre3-dev \
+ libpcre3-dev:armhf \
libpng-dev \
libpng-dev:armhf \
+ libpython3-dev \
+ libpython3-dev:armhf \
libssl-dev \
libvulkan-dev \
+ libvulkan-dev \
libvulkan-dev:armhf \
+ libxcb-keysyms1-dev \
+ libxcb-keysyms1-dev:armhf \
llvm-7-dev:armhf \
llvm-8-dev \
pkg-config \
python \
+ python3-dev \
python3-distutils \
python3-setuptools \
python3-mako \
python3-serial \
+ qt5-default \
+ qt5-qmake \
+ qtbase5-dev \
+ qtbase5-dev:armhf \
unzip \
wget \
xz-utils \
set -e
set -o xtrace
+ROOTFS=/lava-files/rootfs-${arch}
+
dpkg --add-architecture $arch
apt-get update
# Cross-build test deps
BAREMETAL_EPHEMERAL=" \
+ autoconf \
+ automake \
crossbuild-essential-$arch \
+ git-lfs \
libdrm-dev:$arch \
+ libboost-dev:$arch \
libegl1-mesa-dev:$arch \
libelf-dev:$arch \
libexpat1-dev:$arch \
libffi-dev:$arch \
libgbm-dev:$arch \
libgles2-mesa-dev:$arch \
+ libpcre3-dev:$arch \
libpng-dev:$arch \
+ libpython3-dev:$arch \
libstdc++6:$arch \
libtinfo-dev:$arch \
libegl1-mesa-dev:$arch \
- libvulkan-dev:$arch
+ libvulkan-dev:$arch \
+ libxcb-keysyms1-dev:$arch \
+ libpython3-dev:$arch \
+ python3-dev \
+ qt5-default \
+ qt5-qmake \
+ qtbase5-dev:$arch \
"
apt-get install -y --no-remove $BAREMETAL_EPHEMERAL
DEBIAN_ARCH=$arch INCLUDE_VK_CTS=1 . .gitlab-ci/container/lava_arm.sh
+############### Store traces
+# Clone the traces-db at container build time so we don't have to pull traces
+# per run (too much egress cost for fd.o).
+git clone \
+ --depth 1 \
+ -b mesa-ci-2020-06-08 \
+ https://gitlab.freedesktop.org/gfx-ci/tracie/traces-db.git \
+ $ROOTFS/traces-db
+rm -rf $ROOTFS/traces-db/.git
+find $ROOTFS/traces-db -type f \
+ -a -not -name '*.trace' \
+ -a -not -name '*.rdc' \
+ -delete
+
ccache --show-stats
. .gitlab-ci/container/container_post_build.sh
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
+############### Build apitrace
+. .gitlab-ci/build-apitrace.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
+mv /apitrace/build /lava-files/rootfs-${DEBIAN_ARCH}/apitrace
+rm -rf /apitrace
+
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/waffle
+mv /waffle/build /lava-files/rootfs-${DEBIAN_ARCH}/waffle
+rm -rf /waffle
+
+
+############### Build renderdoc
+EXTRA_CMAKE_ARGS+=" -DENABLE_XCB=false"
+. .gitlab-ci/build-renderdoc.sh
+mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
+mv /renderdoc/build /lava-files/rootfs-${DEBIAN_ARCH}/renderdoc
+rm -rf /renderdoc
+
+
############### Cross-build kernel
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-panfrost-fixes/linux-v5.5-panfrost-fixes.tar.gz"
libexpat1 \
libdrm2 \
libdrm-nouveau2 \
+ libx11-6 \
+ libx11-xcb1 \
firmware-qcom-media \
netcat-openbsd \
+ python3 \
+ libpython3.7 \
+ python3-pil \
+ python3-pytest \
+ python3-requests \
+ python3-yaml \
wget \
xz-utils
# Dropping documentation, localization, i18n files, etc
rm -rf /usr/share/doc/*
rm -rf /usr/share/locale/*
+rm -rf /usr/share/X11/locale/*
rm -rf /usr/share/man
rm -rf /usr/share/i18n/*
rm -rf /usr/share/info/*
"passwd "\
"libsemanage1 libsemanage-common "\
"libsepol1 "\
+"gzip "\
"gpgv "\
"hostname "\
"adduser "\
"debian-archive-keyring "\
+"libegl1-mesa-dev "\
+"libegl-mesa0 "\
+"libgl1-mesa-dev "\
+"libgl1-mesa-dri "\
+"libglapi-mesa "\
+"libgles2-mesa-dev "\
+"libglx-mesa0 "\
+"mesa-common-dev "\
+"libz3-4 "\
# Removing unneeded packages
for PACKAGE in ${UNNEEDED_PACKAGES}
# Set environment for apitrace executable.
export PATH="/apitrace/build:$PATH"
+# Set environment for wflinfo executable.
+export PATH="/waffle/build/bin:$PATH"
+
# Use the surfaceless EGL platform.
export EGL_PLATFORM="surfaceless"
export DISPLAY=