From 89b7f45010df63cae96a0eec9bfcddd2dd64eef7 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 20 Feb 2024 08:41:15 +1000 Subject: [PATCH] CI: add a driver build stage to check for header breakage Pull a few drivers and try to build their most recent release (or a specific SHA) and see if they still build. If they do, yay, otherwise fail. Dependency-wise we need to keep libevdev-dev and libinput-dev around now and add libspice-protocol-dev for the qxl driver. Part-of: --- .gitlab-ci.yml | 49 +++++++++++++++++++++++++++++++++++- .gitlab-ci/debian-install.sh | 4 +-- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6e521a9d3..c702d4160 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ variables: FDO_UPSTREAM_REPO: xorg/xserver FDO_DISTRIBUTION_VERSION: bullseye-slim FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/debian-install.sh' - FDO_DISTRIBUTION_TAG: "2023-06-20-libei.0" + FDO_DISTRIBUTION_TAG: "2024-02-29-libei.0" MESON_BUILDDIR: "build" include: @@ -34,6 +34,7 @@ include: stages: - docker-image - build-and-test + - drivers - test .ci-run-policy: @@ -121,6 +122,52 @@ meson-dist: MESON_DIST_ARGS: --no-tests DESTDIR: xserver-tarball/install/ +xf86-driver-build-test: + extends: + - .fdo.distribution-image@debian + - .ci-run-policy + stage: drivers + parallel: + matrix: + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-input-evdev + SHA: xf86-input-evdev-2.10.6 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput + SHA: xf86-input-libinput-1.4.0 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-input-mouse + SHA: xf86-input-mouse-1.9.5 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics + SHA: xf86-input-synaptics-1.9.2 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu + SHA: xf86-video-amdgpu-23.0.0 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati + SHA: xf86-video-ati-22.0.0 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl + SHA: xf86-video-qxl-0.1.6 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa + SHA: xf86-video-vesa-2.6.0 + - REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-vmware + SHA: xf86-video-vmware-13.4.0 + script: + # Install the server first + - .gitlab-ci/meson-build.sh --skip-test --run-install + - unset MESON_EXTRA_ARGS + - DRIVER=$(basename $REPO) + - git clone "$REPO" "$DRIVER" + - GIT_DIR="$DRIVER/.git" git checkout -f "$SHA" + - | + if [[ -e "$DRIVER/meson.build" ]]; then + .gitlab-ci/meson-build.sh -C "$DRIVER" --skip-test + else + pushd "$DRIVER" || exit 1 + ./autogen.sh && make + fi + needs: + - "meson" + variables: + GIT_DEPTH: 1 + MESON_ARGS: -Dprefix=/usr/ + MESON_EXTRA_ARGS: -Dxwayland=false -Dxnest=false -Dxvfb=false -Dxquartz=false -Ddocs=false + # # Verify that commit messages are as expected # diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 050bd28b8..0ff294a7b 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -6,10 +6,8 @@ set -o xtrace # Packages which are needed by this script, but not for the xserver build EPHEMERAL=" libcairo2-dev - libevdev-dev libexpat-dev libgles2-mesa-dev - libinput-dev libxkbcommon-dev x11-utils x11-xserver-utils @@ -46,12 +44,14 @@ apt-get install -y \ libgles2 \ libglx-mesa0 \ libinput10 \ + libinput-dev \ libnvidia-egl-wayland-dev \ libpango1.0-0 \ libpango1.0-dev \ libpciaccess-dev \ libpixman-1-dev \ libselinux1-dev \ + libspice-protocol-dev \ libsystemd-dev \ libtool \ libudev-dev \