-
Simon McVittie authored
Since steam-runtime-tools was made relocatable in c3a06cce, its build will fail with the Steam Runtime 1 'scout' version of dpkg if it is already installed system-wide. If the SDK container where steam-runtime-tools is built has our $(pkglibexecdir) populated with symbolic links to the dependency libraries, then dpkg-shlibdeps will look there to convert DT_NEEDED dependencies into Debian dependencies. Unfortunately, the version of dpkg in SteamRT 1 'scout' has Debian bug #843073, which means it assumes all libraries are found via their canonical names as listed in the dpkg database, not a symlink-based alias. This results in the build failing with an error similar to: dpkg-shlibdeps: error: no dependency information found for /usr/lib/x86_64-linux-gnu/steam-runtime-tools-0/libglib-2.0.so.0 (used by debian/libsteam-runtime-tools-0-helpers/usr/libexec/steam-runtime-tools-0/x86_64-linux-gnu-check-locale) Until we get a newer Docker image with a newer version of this package that works around this issue, we will have to remove it explicitly before running CI. Adding Build-Conflicts is not enough: autopkgtest installs build-dependencies, but does not remove Build-Conflicts. Signed-off-by:
Simon McVittie <smcv@collabora.com>
Simon McVittie authoredSince steam-runtime-tools was made relocatable in c3a06cce, its build will fail with the Steam Runtime 1 'scout' version of dpkg if it is already installed system-wide. If the SDK container where steam-runtime-tools is built has our $(pkglibexecdir) populated with symbolic links to the dependency libraries, then dpkg-shlibdeps will look there to convert DT_NEEDED dependencies into Debian dependencies. Unfortunately, the version of dpkg in SteamRT 1 'scout' has Debian bug #843073, which means it assumes all libraries are found via their canonical names as listed in the dpkg database, not a symlink-based alias. This results in the build failing with an error similar to: dpkg-shlibdeps: error: no dependency information found for /usr/lib/x86_64-linux-gnu/steam-runtime-tools-0/libglib-2.0.so.0 (used by debian/libsteam-runtime-tools-0-helpers/usr/libexec/steam-runtime-tools-0/x86_64-linux-gnu-check-locale) Until we get a newer Docker image with a newer version of this package that works around this issue, we will have to remove it explicitly before running CI. Adding Build-Conflicts is not enough: autopkgtest installs build-dependencies, but does not remove Build-Conflicts. Signed-off-by:
Simon McVittie <smcv@collabora.com>
gitlab-ci.yml 1.84 KiB
include:
- project: 'steam/steam-ci-pipeline'
file: '/steam-gitlab-ci-common.yml'
- project: 'steam/steam-ci-pipeline'
file: '/steam-gitlab-ci-pipeline.yml'
variables:
BUILD_IMAGE: docker.internal.steamos.cloud/steamos/package-builder:buster
STEAM_CI_USE_BINARIES_FROM: autopkgtest
STEAM_CI_DEPENDENCIES: >-
debhelper
glslang-tools
gtk-doc-tools
libegl1-mesa-dev
libgl1-mesa-dev
libgles2-mesa-dev
libglib2.0-dev
libjson-glib-dev
libtheora-dev
libvulkan-dev
libx11-dev
libxcb1-dev
libxcomposite-dev
locales
meson
pandoc
stages:
- build
- test
autopkgtest:
stage: test
variables:
BUILD_IMAGE: docker.internal.steamos.cloud/steamrt/sdk:scout-latest
STEAM_CI_INSTALL_SCRIPT: |
# Workaround for the build regression described in !88
apt-get -y remove libsteam-runtime-tools-0-helpers
ubsan:
stage: test
image: "${BUILD_IMAGE}"
script:
- |
set -eux
export DEBIAN_FRONTEND=noninteractive
apt-get install -y --no-install-recommends \
ccache \
clang \
clang-tools \
${NULL+}
rm -fr builddir
meson \
-Db_lundef=false \
-Db_sanitize=address,undefined \
--werror \
builddir
ninja -C builddir
meson test -C builddir -v
export CC=clang
export CXX=clang++
rm -fr builddir
meson \
-Db_lundef=false \
-Db_sanitize=address,undefined \