ci: Install Xwayland from git

This gives us -initfd, thus Xwayland on demand in the CI.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1681>
This commit is contained in:
Jonas Ådahl 2021-01-21 19:14:23 +01:00 committed by Marge Bot
parent ff25ec3f36
commit e558d6acb9
2 changed files with 31 additions and 5 deletions

View File

@ -12,7 +12,7 @@ stages:
.mutter.fedora:33@common: .mutter.fedora:33@common:
variables: variables:
FDO_DISTRIBUTION_VERSION: 33 FDO_DISTRIBUTION_VERSION: 33
BASE_TAG: '2021-01-14.0' BASE_TAG: '2021-01-22.0'
FDO_UPSTREAM_REPO: GNOME/mutter FDO_UPSTREAM_REPO: GNOME/mutter
FDO_DISTRIBUTION_EXEC: | FDO_DISTRIBUTION_EXEC: |
dnf install -y 'dnf-command(builddep)' && dnf install -y 'dnf-command(builddep)' &&
@ -20,16 +20,20 @@ stages:
# For running unit tests # For running unit tests
dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 \ dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 \
xorg-x11-server-Xvfb 'pkgconfig(accountsservice)' \ 'pkgconfig(accountsservice)' \
gnome-control-center gcovr libnma python3-gobject \ gnome-control-center gcovr libnma python3-gobject \
python3-dbusmock && python3-dbusmock &&
# GNOME Shell # GNOME Shell
dnf builddep -y gnome-shell --setopt=install_weak_deps=False && dnf builddep -y gnome-shell --setopt=install_weak_deps=False &&
dnf install -y 'pkgconfig(gtk4)' 'pkgconfig(vulkan)' && dnf install -y 'pkgconfig(gtk4)' 'pkgconfig(vulkan)' 'pkgconfig(libtirpc)' &&
dnf remove -y gnome-bluetooth-libs-devel && dnf remove -y gnome-bluetooth-libs-devel &&
dnf remove -y --noautoremove mutter mutter-devel && dnf remove -y --noautoremove mutter mutter-devel &&
# For Xwayland/Xvfb
dnf builddep -y xorg-x11-server-Xwayland --setopt=install_weak_deps=False &&
dnf remove -y --noautoremove 'xorg-x11-server-Xwayland' &&
./.gitlab-ci/install-meson-project.sh \ ./.gitlab-ci/install-meson-project.sh \
-Dlibaudit=disabled \ -Dlibaudit=disabled \
-Dplymouth=disabled \ -Dplymouth=disabled \
@ -42,6 +46,21 @@ stages:
https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas.git \ https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas.git \
40.alpha . && 40.alpha . &&
./.gitlab-ci/install-meson-project.sh \
-Dxwayland=true \
-Dxwayland_eglstream=true \
-D{xorg,xnest,xvfb}=false \
-Dvendor_name="Mutter CI" \
-D{xdmcp,udev,udev_kms}=false \
-Dxcsecurity=true \
-Dglamor=true \
-D{dri1,dri2}=false \
-Ddri3=true \
https://gitlab.freedesktop.org/xorg/xserver.git \
master \
. \
a9269808f394955f213e34303c2c14fd61c35ab5 &&
dnf clean all dnf clean all
default: default:

View File

@ -17,14 +17,21 @@ while [[ $1 =~ ^-D ]]; do
done done
REPO_URL="$1" REPO_URL="$1"
COMMIT="$2" TAG_OR_BRANCH="$2"
SUBDIR="$3" SUBDIR="$3"
COMMIT="$4"
REPO_DIR="$(basename ${REPO_URL%.git})" REPO_DIR="$(basename ${REPO_URL%.git})"
git clone --depth 1 "$REPO_URL" -b "$COMMIT" git clone --depth 1 "$REPO_URL" -b "$TAG_OR_BRANCH"
pushd "$REPO_DIR" pushd "$REPO_DIR"
pushd "$SUBDIR" pushd "$SUBDIR"
if [ ! -z "$COMMIT" ]; then
git fetch origin "$COMMIT"
git checkout "$COMMIT"
fi
meson --prefix=/usr _build "${MESON_OPTIONS[@]}" meson --prefix=/usr _build "${MESON_OPTIONS[@]}"
ninja -C _build install ninja -C _build install
popd popd