Skip to content
Snippets Groups Projects
  • Simon McVittie's avatar
    ea250de4
    Add Build-Conflicts on libsteam-runtime-tools-0-helpers · ea250de4
    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: default avatarSimon McVittie <smcv@collabora.com>
    ea250de4
    History
    Add Build-Conflicts on libsteam-runtime-tools-0-helpers
    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: default avatarSimon 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 \