mirror of
https://github.com/X11Libre/xf86-video-intel.git
synced 2026-03-24 01:24:12 +00:00
.github: use new common driver build actions
Using the new driver build actions in X11Libre/actions-build-driver repo, instead of having lots of duplicated pipeline and script in all the individual driver repos. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
committed by
Enrico Weigelt
parent
bf0a77f440
commit
c5fd7456ca
69
.github/actions/build-driver/action.yaml
vendored
69
.github/actions/build-driver/action.yaml
vendored
@@ -1,69 +0,0 @@
|
|||||||
name: 'build driver'
|
|
||||||
description: 'build driver against specific Xserver'
|
|
||||||
inputs:
|
|
||||||
xserver-version:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
runs:
|
|
||||||
using: "composite"
|
|
||||||
steps:
|
|
||||||
- name: check out driver repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: prepare build environment
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
MACHINE=`gcc -dumpmachine`
|
|
||||||
echo "MACHINE=$MACHINE" >> "$GITHUB_ENV"
|
|
||||||
echo "PKG_CONFIG_PATH=$X11_PREFIX/share/pkgconfig:$X11_PREFIX/lib/$MACHINE/pkgconfig:$X11_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH" >> "$GITHUB_ENV"
|
|
||||||
sudo chown root /bin/tar && sudo chmod u+s /bin/tar
|
|
||||||
|
|
||||||
- name: apt cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: /var/cache/apt
|
|
||||||
key: apt-cache-${{ hashFiles('.github/scripts/ubuntu/install-pkg.sh') }}
|
|
||||||
restore-keys: apt-cache-
|
|
||||||
|
|
||||||
- name: pkg install
|
|
||||||
shell: bash
|
|
||||||
run: sudo .github/scripts/ubuntu/install-pkg.sh
|
|
||||||
|
|
||||||
- name: X11 prereq cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
${{ env.X11_PREFIX }}
|
|
||||||
key: ${{ runner.name }}-x11-deps-${{ hashFiles('.github/scripts/install-prereq.sh') }}
|
|
||||||
restore-keys: ${{ runner.name }}-x11-deps-
|
|
||||||
|
|
||||||
- name: generic prereq
|
|
||||||
shell: bash
|
|
||||||
run: .github/scripts/install-prereq.sh
|
|
||||||
|
|
||||||
- name: check out xserver repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: X11Libre/xserver
|
|
||||||
path: xserver-sdk
|
|
||||||
ref: ${{ inputs.xserver-version }}
|
|
||||||
|
|
||||||
- name: build xserver sdk
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dnamespace=false -Dxselinux=false -Dxephyr=false -Dwerror=false -Dxcsecurity=false -Dxorg=true -Dxvfb=false -Dxnest=false -Ddocs=false
|
|
||||||
run: |
|
|
||||||
cd xserver-sdk
|
|
||||||
echo -n > .meson_environment
|
|
||||||
echo "export MESON_BUILDDIR=$MESON_BUILDDIR" >> .meson_environment
|
|
||||||
echo "export PKG_CONFIG_PATH=$PKG_CONFIG_PATH" >> .meson_environment
|
|
||||||
.gitlab-ci/meson-build.sh --skip-test
|
|
||||||
sudo meson install --no-rebuild -C "$MESON_BUILDDIR"
|
|
||||||
sudo mkdir -p /usr/local/lib/$MACHINE/xorg/modules # /home/runner/x11/lib/xorg/modules
|
|
||||||
sudo chown -R runner /usr/local/lib/$MACHINE/xorg/modules # /home/runner/x11/lib/xorg/modules
|
|
||||||
|
|
||||||
- name: compile driver
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
CFLAGS="-Wall" ./autogen.sh # --prefix=$X11_PREFIX
|
|
||||||
CFLAGS="-Wall" make -j # install
|
|
||||||
13
.github/scripts/conf.sh
vendored
13
.github/scripts/conf.sh
vendored
@@ -1,13 +0,0 @@
|
|||||||
export X11_OS=`uname -s`
|
|
||||||
|
|
||||||
export X11_PREFIX="${X11_PREFIX:-$HOME/x11}"
|
|
||||||
export X11_BUILD_DIR="${X11_BUILD_DIR:-$HOME/build-deps}"
|
|
||||||
export DRV_BUILD_DIR="${DRV_BUILD_DIR:-$HOME/build-drivers}"
|
|
||||||
|
|
||||||
case "$X11_OS" in
|
|
||||||
Darwin) export FDO_CI_CONCURRENT=`sysctl -n hw.logicalcpu` ;;
|
|
||||||
Linux) export FDO_CI_CONCURRENT=`nproc` ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
export PATH="$X11_PREFIX/bin:$PATH"
|
|
||||||
export PKG_CONFIG_PATH="$X11_PREFIX/lib/x86_64-linux-gnu/pkgconfig:$X11_PREFIX/lib/pkgconfig:$X11_PREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
17
.github/scripts/github/make-release
vendored
17
.github/scripts/github/make-release
vendored
@@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
err() {
|
|
||||||
echo "$0: $*"
|
|
||||||
}
|
|
||||||
|
|
||||||
[ "$GITHUB_REPOSITORY" ] || err "missing variable GITHUB_REPOSITORY"
|
|
||||||
|
|
||||||
TITLE=$(git tag -l --format='%(contents)' $tag)
|
|
||||||
|
|
||||||
echo "tag=$tag"
|
|
||||||
echo "title=$TITLE"
|
|
||||||
|
|
||||||
gh release create "$tag" \
|
|
||||||
--repo="$GITHUB_REPOSITORY" \
|
|
||||||
--title="$tag" \
|
|
||||||
--generate-notes
|
|
||||||
15
.github/scripts/install-prereq.sh
vendored
15
.github/scripts/install-prereq.sh
vendored
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
. .github/scripts/util.sh
|
|
||||||
|
|
||||||
mkdir -p $X11_BUILD_DIR
|
|
||||||
cd $X11_BUILD_DIR
|
|
||||||
|
|
||||||
if [ "$X11_OS" = "Linux" ]; then
|
|
||||||
build_meson drm https://gitlab.freedesktop.org/mesa/drm libdrm-2.4.121 "" \
|
|
||||||
-Domap=enabled
|
|
||||||
fi
|
|
||||||
build_meson libxcvt https://gitlab.freedesktop.org/xorg/lib/libxcvt libxcvt-0.1.0
|
|
||||||
build_ac xorgproto https://gitlab.freedesktop.org/xorg/proto/xorgproto xorgproto-2024.1
|
|
||||||
94
.github/scripts/ubuntu/install-pkg.sh
vendored
94
.github/scripts/ubuntu/install-pkg.sh
vendored
@@ -1,94 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Packages which are needed by this script, but not for the xserver build
|
|
||||||
EPHEMERAL="
|
|
||||||
libexpat-dev
|
|
||||||
libgles2-mesa-dev
|
|
||||||
libxkbcommon-dev
|
|
||||||
x11-utils
|
|
||||||
x11-xserver-utils
|
|
||||||
xauth
|
|
||||||
xvfb
|
|
||||||
"
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get install -y \
|
|
||||||
$EPHEMERAL \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
build-essential \
|
|
||||||
ca-certificates \
|
|
||||||
libaudit-dev \
|
|
||||||
libbsd-dev \
|
|
||||||
libcairo2-dev \
|
|
||||||
libdbus-1-dev \
|
|
||||||
libdrm-dev \
|
|
||||||
libegl1-mesa-dev \
|
|
||||||
libepoxy-dev \
|
|
||||||
libevdev2 \
|
|
||||||
libexpat1 \
|
|
||||||
libffi-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgcrypt-dev \
|
|
||||||
libgl1-mesa-dev \
|
|
||||||
libgles2 \
|
|
||||||
libglx-mesa0 \
|
|
||||||
libinput10 \
|
|
||||||
libinput-dev \
|
|
||||||
libnvidia-egl-wayland-dev \
|
|
||||||
libpciaccess-dev \
|
|
||||||
libpixman-1-dev \
|
|
||||||
libspice-protocol-dev \
|
|
||||||
libsystemd-dev \
|
|
||||||
libudev-dev \
|
|
||||||
libunwind-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libxau-dev \
|
|
||||||
libxaw7-dev \
|
|
||||||
libxcb-glx0-dev \
|
|
||||||
libxcb-icccm4-dev \
|
|
||||||
libxcb-image0-dev \
|
|
||||||
libxcb-keysyms1-dev \
|
|
||||||
libxcb-randr0-dev \
|
|
||||||
libxcb-render-util0-dev \
|
|
||||||
libxcb-render0-dev \
|
|
||||||
libxcb-shape0-dev \
|
|
||||||
libxcb-shm0-dev \
|
|
||||||
libxcb-util0-dev \
|
|
||||||
libxcb-xf86dri0-dev \
|
|
||||||
libxcb-xkb-dev \
|
|
||||||
libxcb-xv0-dev \
|
|
||||||
libxcb1-dev \
|
|
||||||
libxdmcp-dev \
|
|
||||||
libxext-dev \
|
|
||||||
libxfixes-dev \
|
|
||||||
libxfont-dev \
|
|
||||||
libxi-dev \
|
|
||||||
libxinerama-dev \
|
|
||||||
libxkbcommon0 \
|
|
||||||
libxkbfile-dev \
|
|
||||||
libxmu-dev \
|
|
||||||
libxmuu-dev \
|
|
||||||
libxpm-dev \
|
|
||||||
libxrender-dev \
|
|
||||||
libxres-dev \
|
|
||||||
libxshmfence-dev \
|
|
||||||
libxt-dev \
|
|
||||||
libxtst-dev \
|
|
||||||
libxv-dev \
|
|
||||||
mesa-common-dev \
|
|
||||||
meson \
|
|
||||||
nettle-dev \
|
|
||||||
libpango1.0-dev \
|
|
||||||
pkg-config \
|
|
||||||
x11-xkb-utils \
|
|
||||||
xfonts-utils \
|
|
||||||
xkb-data \
|
|
||||||
xtrans-dev \
|
|
||||||
xutils-dev \
|
|
||||||
libxaw7-dev \
|
|
||||||
python3-mako
|
|
||||||
85
.github/scripts/util.sh
vendored
85
.github/scripts/util.sh
vendored
@@ -1,85 +0,0 @@
|
|||||||
|
|
||||||
. .github/scripts/conf.sh
|
|
||||||
|
|
||||||
clone_source() {
|
|
||||||
local pkgname="$1"
|
|
||||||
local url="$2"
|
|
||||||
local ref="$3"
|
|
||||||
local commit="$4"
|
|
||||||
|
|
||||||
if [ ! -f $pkgname/.git/config ]; then
|
|
||||||
echo "need to clone $pkgname"
|
|
||||||
if [ "$commit" ]; then
|
|
||||||
git clone $url $pkgname --branch=$ref
|
|
||||||
else
|
|
||||||
git clone $url $pkgname --branch=$ref --depth 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "already cloned $pkgname"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$commit" ]; then
|
|
||||||
( cd $pkgname && git checkout -f "$commit" )
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
build_meson() {
|
|
||||||
local pkgname="$1"
|
|
||||||
local url="$2"
|
|
||||||
local ref="$3"
|
|
||||||
local commit="$4"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift || true
|
|
||||||
if [ -f $X11_PREFIX/$pkgname.DONE ]; then
|
|
||||||
echo "package $pkgname already built"
|
|
||||||
else
|
|
||||||
clone_source "$pkgname" "$url" "$ref" "$commit"
|
|
||||||
(
|
|
||||||
cd $pkgname
|
|
||||||
meson "$@" build -Dprefix=$X11_PREFIX
|
|
||||||
ninja -j${FDO_CI_CONCURRENT:-4} -C build install
|
|
||||||
)
|
|
||||||
touch $X11_PREFIX/$pkgname.DONE
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
build_ac() {
|
|
||||||
local pkgname="$1"
|
|
||||||
local url="$2"
|
|
||||||
local ref="$3"
|
|
||||||
local commit="$4"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift || true
|
|
||||||
if [ -f $X11_PREFIX/$pkgname.DONE ]; then
|
|
||||||
echo "package $pkgname already built"
|
|
||||||
else
|
|
||||||
clone_source "$pkgname" "$url" "$ref" "$commit"
|
|
||||||
(
|
|
||||||
cd $pkgname
|
|
||||||
./autogen.sh --prefix=$X11_PREFIX
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4} install
|
|
||||||
)
|
|
||||||
touch $X11_PREFIX/$pkgname.DONE
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
build_drv_ac() {
|
|
||||||
local pkgname="$1"
|
|
||||||
local url="$2"
|
|
||||||
local ref="$3"
|
|
||||||
local commit="$4"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
shift || true
|
|
||||||
clone_source "$pkgname" "$url" "$ref" "$commit"
|
|
||||||
(
|
|
||||||
cd $pkgname
|
|
||||||
./autogen.sh # --prefix=$X11_PREFIX
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4} # install
|
|
||||||
)
|
|
||||||
}
|
|
||||||
42
.github/workflows/build.yml
vendored
42
.github/workflows/build.yml
vendored
@@ -1,43 +1,27 @@
|
|||||||
name: Build driver
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
env:
|
|
||||||
MESON_BUILDDIR: "build"
|
|
||||||
X11_PREFIX: /home/runner/x11
|
|
||||||
X11_BUILD_DIR: /home/runner/build-deps
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
for-xserver-stable-25_0:
|
target-ubuntu:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
xserver-version: [ master, xlibre-xserver-25.1.0, xlibre-xserver-25.0.0.18 ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: X11Libre/action-build-driver/target/ubuntu@v0.0.2
|
||||||
- uses: ./.github/actions/build-driver
|
|
||||||
with:
|
with:
|
||||||
xserver-version: xlibre-xserver-25.0.0.5
|
xserver-version: ${{ matrix.xserver-version }}
|
||||||
|
|
||||||
for-xserver-master:
|
release-notes:
|
||||||
|
name: Release pushed tag
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ startsWith(github.ref, 'refs/tags/xlibre-') }}
|
||||||
|
needs: target-ubuntu
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: X11Libre/action-build-driver/release@v0.0.2
|
||||||
- uses: ./.github/actions/build-driver
|
|
||||||
with:
|
|
||||||
xserver-version: master
|
|
||||||
|
|
||||||
release:
|
|
||||||
name: Release pushed tag
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: ${{ startsWith(github.ref, 'refs/tags/xlibre-') }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Create release
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
tag: ${{ github.ref_name }}
|
|
||||||
run: .github/scripts/github/make-release
|
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
common CI stuff - supposed to be synced across all drivers
|
|
||||||
|
|
||||||
moving this to a dedicated CI component is left for a later exercise.
|
|
||||||
|
|
||||||
Some scripts can also be used locally, eg. in a VM:
|
|
||||||
|
|
||||||
Prepare the image:
|
|
||||||
|
|
||||||
.gitlab-ci/common/debian/image-install.sh
|
|
||||||
.gitlab-ci/common/freebsd/image-install.sh
|
|
||||||
|
|
||||||
Build the xserver + driver:
|
|
||||||
|
|
||||||
.gitlab-ci/common/build-driver.sh debian <xserver git ref>
|
|
||||||
.gitlab-ci/common/build-driver.sh freebsd <xserver git ref>
|
|
||||||
|
|
||||||
Build just the xserver:
|
|
||||||
|
|
||||||
.gitlab-ci/common/build-xserver.sh debian <xserver git ref>
|
|
||||||
.gitlab-ci/common/build-xserver.sh freebsd <xserver git ref>
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
PLATFORM="$1"
|
|
||||||
XSERVER_REF="$2"
|
|
||||||
|
|
||||||
if [ ! "$PLATFORM" ]; then
|
|
||||||
echo "missing PLATFORM" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! "$XSERVER_REF" ]; then
|
|
||||||
echo "missing XSERVER_REF" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
.gitlab-ci/common/build-xserver.sh "$PLATFORM" "$XSERVER_REF"
|
|
||||||
|
|
||||||
MACH=`gcc -dumpmachine`
|
|
||||||
echo "Building on machine $MACH"
|
|
||||||
|
|
||||||
case "$PLATFORM" in
|
|
||||||
freebsd)
|
|
||||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/libdata/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig"
|
|
||||||
export ACLOCAL_PATH="/usr/share/aclocal:/usr/local/share/aclocal"
|
|
||||||
export CFLAGS="$CFLAGS -I/usr/local/include"
|
|
||||||
export UDEV_CFLAGS=" "
|
|
||||||
export UDEV_LIBS=" "
|
|
||||||
;;
|
|
||||||
debian)
|
|
||||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "unknown platform $PLATFORM" >&2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -f autogen.sh ]; then
|
|
||||||
(
|
|
||||||
echo "building driver via autotools"
|
|
||||||
rm -Rf _builddir
|
|
||||||
mkdir -p _builddir
|
|
||||||
cd _builddir
|
|
||||||
../autogen.sh --disable-silent-rules
|
|
||||||
make
|
|
||||||
make check
|
|
||||||
make distcheck
|
|
||||||
)
|
|
||||||
elif [ -f meson.build ]; then
|
|
||||||
(
|
|
||||||
echo "building driver via meson"
|
|
||||||
meson setup _build
|
|
||||||
cd _build
|
|
||||||
meson compile
|
|
||||||
meson install
|
|
||||||
)
|
|
||||||
else
|
|
||||||
echo "failed detecting build system"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
PLATFORM="$1"
|
|
||||||
XSERVER_REF="$2"
|
|
||||||
|
|
||||||
if [ ! "$XSERVER_REF" ]; then
|
|
||||||
echo "missing XSERVER_REF variable" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
XSERVER_CLONE=/tmp/xserver
|
|
||||||
XSERVER_BUILD=$XSERVER_CLONE/_builddir
|
|
||||||
XSERVER_REPO=https://gitlab.freedesktop.org/xorg/xserver.git
|
|
||||||
|
|
||||||
MACH=`gcc -dumpmachine`
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="/usr/lib/$MACH/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export PKG_CONFIG_PATH="/usr/local/lib/$MACH/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
|
|
||||||
echo "cloning xserver"
|
|
||||||
rm -Rf $XSERVER_CLONE
|
|
||||||
git clone --depth=1 -b $XSERVER_REF $XSERVER_REPO $XSERVER_CLONE
|
|
||||||
|
|
||||||
echo "checking platform: $PLATFORM"
|
|
||||||
case "$PLATFORM" in
|
|
||||||
freebsd)
|
|
||||||
echo "Building on FreeBSD"
|
|
||||||
XSERVER_OS_AUTOCONF_FLAGS="--without-dtrace"
|
|
||||||
XSERVER_MESON_DISABLE="glx udev udev_kms"
|
|
||||||
;;
|
|
||||||
debian)
|
|
||||||
echo "Building on Debian"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "unknown platform $PLATFORM" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -f $XSERVER_CLONE/meson.build ]; then
|
|
||||||
(
|
|
||||||
echo "Building Xserver via meson"
|
|
||||||
for opt in $XSERVER_MESON_DISABLE ; do
|
|
||||||
if grep "'$opt'" $XSERVER_CLONE/meson_options.txt ; then
|
|
||||||
echo "disable $opt"
|
|
||||||
XSERVER_MESON_FLAGS="$XSERVER_MESON_FLAGS -D$opt=false"
|
|
||||||
else
|
|
||||||
echo "no option $opt"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
mkdir -p $XSERVER_BUILD
|
|
||||||
cd $XSERVER_BUILD
|
|
||||||
meson setup --prefix=/usr $XSERVER_MESON_FLAGS
|
|
||||||
meson compile
|
|
||||||
meson install
|
|
||||||
)
|
|
||||||
else
|
|
||||||
(
|
|
||||||
echo "Building Xserver via autotools"
|
|
||||||
cd $XSERVER_CLONE
|
|
||||||
# Workaround glvnd having reset the version in gl.pc from what Mesa used
|
|
||||||
# similar to xserver commit e6ef2b12404dfec7f23592a3524d2a63d9d25802
|
|
||||||
sed -i -e 's/gl >= [79].[12].0/gl >= 1.2/' configure.ac
|
|
||||||
./autogen.sh --prefix=/usr $XSERVER_AUTOCONF_FLAGS $XSERVER_OS_AUTOCONF_FLAGS
|
|
||||||
make -j`nproc`
|
|
||||||
make -j`nproc` install
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
echo 'deb-src https://deb.debian.org/debian bullseye main' >>/etc/apt/sources.list.d/deb-src.list
|
|
||||||
echo 'deb-src https://deb.debian.org/debian bullseye-updates main' >>/etc/apt/sources.list.d/deb-src.list
|
|
||||||
echo 'deb http://deb.debian.org/debian bullseye-backports main' >> /etc/apt/sources.list
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
apt-get autoremove -y --purge
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
autoconf \
|
|
||||||
automake \
|
|
||||||
build-essential \
|
|
||||||
libtool \
|
|
||||||
pkg-config \
|
|
||||||
ca-certificates \
|
|
||||||
git \
|
|
||||||
debian-archive-keyring \
|
|
||||||
python3 python3-setuptools libxshmfence-dev \
|
|
||||||
clang \
|
|
||||||
libxcb-icccm4-dev libxcb-xkb-dev \
|
|
||||||
libxvmc-dev libxcb1-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-util-dev \
|
|
||||||
libxfixes-dev libxcb-xfixes0-dev libxrender-dev libxdamage-dev libxrandr-dev \
|
|
||||||
libxcursor-dev libxss-dev libxinerama-dev libxtst-dev libpng-dev libssl-dev \
|
|
||||||
libxcb-dri3-dev libxxf86vm-dev libxfont-dev libxkbfile-dev libdrm-dev \
|
|
||||||
libgbm-dev libgl1-mesa-dev libpciaccess-dev libpixman-1-dev libudev-dev \
|
|
||||||
libgcrypt-dev libepoxy-dev libevdev-dev libmtdev-dev libinput-dev \
|
|
||||||
mesa-common-dev libspice-protocol-dev libspice-server-dev \
|
|
||||||
meson/bullseye-backports \
|
|
||||||
nettle-dev \
|
|
||||||
pkg-config \
|
|
||||||
valgrind \
|
|
||||||
x11-xkb-utils xfonts-utils xutils-dev x11proto-dev
|
|
||||||
|
|
||||||
build_autoconf() {
|
|
||||||
local subdir="$1"
|
|
||||||
shift
|
|
||||||
(
|
|
||||||
cd $subdir
|
|
||||||
./autogen.sh "$@"
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4}
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4} install
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
build_meson() {
|
|
||||||
local subdir="$1"
|
|
||||||
shift
|
|
||||||
(
|
|
||||||
cd $subdir
|
|
||||||
meson _build -Dprefix=/usr "$@"
|
|
||||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
do_clone() {
|
|
||||||
git clone "$1" --depth 1 --branch="$2"
|
|
||||||
}
|
|
||||||
|
|
||||||
mkdir -p /tmp/build-deps
|
|
||||||
cd /tmp/build-deps
|
|
||||||
|
|
||||||
# xserver 1.18 and older branches require libXfont 1.5 instead of 2.0
|
|
||||||
echo "Installing libXfont 1.5"
|
|
||||||
do_clone https://gitlab.freedesktop.org/xorg/lib/libXfont.git libXfont-1.5-branch
|
|
||||||
build_autoconf libXfont
|
|
||||||
|
|
||||||
echo "Installing font-util"
|
|
||||||
do_clone https://gitlab.freedesktop.org/xorg/font/util.git font-util-1.4.1
|
|
||||||
build_autoconf util --prefix=/usr
|
|
||||||
|
|
||||||
echo "Installing libxcvt"
|
|
||||||
do_clone https://gitlab.freedesktop.org/xorg/lib/libxcvt.git libxcvt-0.1.0
|
|
||||||
build_meson libxcvt
|
|
||||||
|
|
||||||
# xserver requires xorgproto >= 2024.1 for XWAYLAND
|
|
||||||
echo "Installing xorgproto"
|
|
||||||
do_clone https://gitlab.freedesktop.org/xorg/proto/xorgproto.git xorgproto-2024.1
|
|
||||||
build_autoconf xorgproto
|
|
||||||
|
|
||||||
# Xwayland requires drm 2.4.116 for drmSyncobjEventfd
|
|
||||||
# xf86-video-freedreno and xf86-video-omap need extra features
|
|
||||||
echo "Installing libdrm"
|
|
||||||
do_clone https://gitlab.freedesktop.org/mesa/drm libdrm-2.4.116
|
|
||||||
build_meson drm -Dfreedreno=enabled -Dnouveau=enabled -Domap=enabled
|
|
||||||
|
|
||||||
rm -Rf /tmp/build-deps
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# using the latest branch
|
|
||||||
FreeBSD: {
|
|
||||||
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
|
|
||||||
mirror_type: "srv",
|
|
||||||
signature_type: "fingerprints",
|
|
||||||
fingerprints: "/usr/share/keys/pkg",
|
|
||||||
enabled: yes
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# note: really wanna install to /usr/local, since that's explicitly searched first,
|
|
||||||
# so we always catch the locally installed before any system/ports provided one
|
|
||||||
# otherwise we might run into trouble like trying to use outdated xorgproto
|
|
||||||
build_autoconf() {
|
|
||||||
local subdir="$1"
|
|
||||||
shift
|
|
||||||
(
|
|
||||||
cd $subdir
|
|
||||||
./autogen.sh --prefix=/usr/local "$@"
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4}
|
|
||||||
make -j${FDO_CI_CONCURRENT:-4} install
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
build_meson() {
|
|
||||||
local subdir="$1"
|
|
||||||
shift
|
|
||||||
(
|
|
||||||
cd $subdir
|
|
||||||
meson _build -Dprefix=/usr/local "$@"
|
|
||||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
do_clone() {
|
|
||||||
git clone "$1" --depth 1 --branch="$2"
|
|
||||||
}
|
|
||||||
|
|
||||||
cp .gitlab-ci/common/freebsd/FreeBSD.conf /etc/pkg
|
|
||||||
|
|
||||||
pkg upgrade -f -y
|
|
||||||
|
|
||||||
pkg install -y \
|
|
||||||
git gcc pkgconf autoconf automake libtool xorg-macros xorgproto meson \
|
|
||||||
ninja pixman xtrans libXau libXdmcp libXfont libXfont2 libxkbfile libxcvt \
|
|
||||||
libpciaccess font-util libepoll-shim libdrm mesa-libs libdrm libglu mesa-dri \
|
|
||||||
libepoxy nettle xkbcomp libXvMC xcb-util valgrind libXcursor libXScrnSaver \
|
|
||||||
libXinerama libXtst evdev-proto libevdev libmtdev libinput spice-protocol \
|
|
||||||
libspice-server xcb-util xcb-util-wm
|
|
||||||
|
|
||||||
[ -f /bin/bash ] || ln -sf /usr/local/bin/bash /bin/bash
|
|
||||||
|
|
||||||
# Xwayland requires drm 2.4.116 for drmSyncobjEventfd
|
|
||||||
# xf86-video-freedreno and xf86-video-omap need extra features
|
|
||||||
echo "Installing libdrm"
|
|
||||||
do_clone https://gitlab.freedesktop.org/mesa/drm libdrm-2.4.116
|
|
||||||
(
|
|
||||||
cd drm
|
|
||||||
git config user.email "buildbot@freebsd"
|
|
||||||
git config user.name "FreeBSD build bot"
|
|
||||||
git am ../.gitlab-ci/common/freebsd/libdrm-2.4.116.patch
|
|
||||||
)
|
|
||||||
build_meson drm -Dfreedreno=enabled -Dnouveau=enabled -Domap=enabled
|
|
||||||
|
|
||||||
echo "=== post-install script END"
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
From a87432dbb281ddf1c50a5e78091d38f0dac79416 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
|
|
||||||
Date: Fri, 7 Jun 2024 15:18:47 +0200
|
|
||||||
Subject: [PATCH 1/2] fix FTBS on FreeBSD (or non-Linux in general)
|
|
||||||
|
|
||||||
Several drivers still including <linux/stddef.h>, but not using anything
|
|
||||||
from it, thus breaking build on non-Linux platforms (eg. FreeBSD).
|
|
||||||
Since not needed at all, just stop including it.
|
|
||||||
|
|
||||||
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
|
|
||||||
---
|
|
||||||
etnaviv/etnaviv_device.c | 1 -
|
|
||||||
exynos/exynos_drm.c | 1 -
|
|
||||||
exynos/exynos_fimg2d.c | 1 -
|
|
||||||
omap/omap_drm.c | 1 -
|
|
||||||
tests/exynos/exynos_fimg2d_test.c | 1 -
|
|
||||||
5 files changed, 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/etnaviv/etnaviv_device.c b/etnaviv/etnaviv_device.c
|
|
||||||
index 699df256..a63bd15d 100644
|
|
||||||
--- a/etnaviv/etnaviv_device.c
|
|
||||||
+++ b/etnaviv/etnaviv_device.c
|
|
||||||
@@ -25,7 +25,6 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
-#include <linux/stddef.h>
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
diff --git a/exynos/exynos_drm.c b/exynos/exynos_drm.c
|
|
||||||
index 3e322a17..fb4cd8de 100644
|
|
||||||
--- a/exynos/exynos_drm.c
|
|
||||||
+++ b/exynos/exynos_drm.c
|
|
||||||
@@ -31,7 +31,6 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <sys/mman.h>
|
|
||||||
-#include <linux/stddef.h>
|
|
||||||
|
|
||||||
#include <xf86drm.h>
|
|
||||||
|
|
||||||
diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
|
|
||||||
index ac6fa687..f0aee962 100644
|
|
||||||
--- a/exynos/exynos_fimg2d.c
|
|
||||||
+++ b/exynos/exynos_fimg2d.c
|
|
||||||
@@ -30,7 +30,6 @@
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include <sys/mman.h>
|
|
||||||
-#include <linux/stddef.h>
|
|
||||||
|
|
||||||
#include <xf86drm.h>
|
|
||||||
|
|
||||||
diff --git a/omap/omap_drm.c b/omap/omap_drm.c
|
|
||||||
index aa273660..42d35ef7 100644
|
|
||||||
--- a/omap/omap_drm.c
|
|
||||||
+++ b/omap/omap_drm.c
|
|
||||||
@@ -27,7 +27,6 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
-#include <linux/stddef.h>
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
|
|
||||||
index d85e2f6b..b1baa503 100644
|
|
||||||
--- a/tests/exynos/exynos_fimg2d_test.c
|
|
||||||
+++ b/tests/exynos/exynos_fimg2d_test.c
|
|
||||||
@@ -31,7 +31,6 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <sys/mman.h>
|
|
||||||
-#include <linux/stddef.h>
|
|
||||||
|
|
||||||
#include <xf86drm.h>
|
|
||||||
#include <xf86drmMode.h>
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
||||||
From 79123db12c6c5f42747fae02068b482055e8c376 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
|
|
||||||
Date: Fri, 7 Jun 2024 15:43:13 +0200
|
|
||||||
Subject: [PATCH 2/2] omap: fix FTBS on FreeBSD and drop unneeded include
|
|
||||||
|
|
||||||
No need to explicitly include <linux/types.h>, since drm.h already does that,
|
|
||||||
but conditionally only Linux only.
|
|
||||||
|
|
||||||
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
|
|
||||||
---
|
|
||||||
omap/omap_drm.c | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/omap/omap_drm.c b/omap/omap_drm.c
|
|
||||||
index 42d35ef7..93d2207f 100644
|
|
||||||
--- a/omap/omap_drm.c
|
|
||||||
+++ b/omap/omap_drm.c
|
|
||||||
@@ -27,7 +27,6 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
-#include <linux/types.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
||||||
@@ -1,216 +0,0 @@
|
|||||||
# version 0.1.19
|
|
||||||
variables:
|
|
||||||
DEBIAN_VERSION: 'bullseye-slim'
|
|
||||||
DEBIAN_TAG: "2024-10-01.03"
|
|
||||||
DEBIAN_EXEC: 'bash .gitlab-ci/common/debian/image-install.sh'
|
|
||||||
DEBIAN_SKIP: "false" # to enable, it has to be litterally "true"
|
|
||||||
|
|
||||||
FREEBSD_TAG: '2024-10-01.01'
|
|
||||||
FREEBSD_VERSION: '14.0'
|
|
||||||
# image is yet too small for that - need a more complicated way :(
|
|
||||||
# FREEBSD_EXEC: "bash .gitlab-ci/common/freebsd/image-install.sh"
|
|
||||||
FREEBSD_SKIP: "false" # to enable, it has to be litterally "true"
|
|
||||||
|
|
||||||
.templates_sha: &template_sha bc70242ffb8402243e934659ecc1a2d1c89eca2b # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
|
||||||
|
|
||||||
include:
|
|
||||||
- project: 'freedesktop/ci-templates'
|
|
||||||
ref: *template_sha
|
|
||||||
file: '/templates/debian.yml'
|
|
||||||
- project: 'freedesktop/ci-templates'
|
|
||||||
ref: *template_sha
|
|
||||||
file: '/templates/freebsd.yml'
|
|
||||||
- project: 'freedesktop/ci-templates'
|
|
||||||
ref: *template_sha
|
|
||||||
file: '/templates/ci-fairy.yml'
|
|
||||||
- template: Security/SAST.gitlab-ci.yml
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- images
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
|
|
||||||
# standard commits quality check
|
|
||||||
check-commits:
|
|
||||||
extends:
|
|
||||||
- .fdo.ci-fairy
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- ci-fairy check-commits --junit-xml=results.xml
|
|
||||||
except:
|
|
||||||
- master@$FDO_UPSTREAM_REPO
|
|
||||||
variables:
|
|
||||||
GIT_DEPTH: 100
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: results.xml
|
|
||||||
allow_failure: true
|
|
||||||
needs:
|
|
||||||
|
|
||||||
# standard merge request quality checks
|
|
||||||
check-merge-request:
|
|
||||||
extends:
|
|
||||||
- .fdo.ci-fairy
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
|
||||||
artifacts:
|
|
||||||
when: on_failure
|
|
||||||
reports:
|
|
||||||
junit: results.xml
|
|
||||||
allow_failure: true
|
|
||||||
needs:
|
|
||||||
|
|
||||||
# create debian build image
|
|
||||||
image@debian@amd64:
|
|
||||||
extends:
|
|
||||||
- .xorg.distro@debian@amd64
|
|
||||||
- .fdo.container-build@debian
|
|
||||||
stage: images
|
|
||||||
variables:
|
|
||||||
GIT_STRATEGY: none
|
|
||||||
rules:
|
|
||||||
- if: $DEBIAN_SKIP != "true"
|
|
||||||
when: always
|
|
||||||
needs:
|
|
||||||
|
|
||||||
image@debian@i386:
|
|
||||||
extends:
|
|
||||||
- .xorg.distro@debian@i386
|
|
||||||
- .fdo.container-build@debian
|
|
||||||
stage: images
|
|
||||||
variables:
|
|
||||||
GIT_STRATEGY: none
|
|
||||||
rules:
|
|
||||||
- if: $DEBIAN_SKIP != "true"
|
|
||||||
when: always
|
|
||||||
needs:
|
|
||||||
|
|
||||||
# inherit this to define FDO_DISTRIBUTION_* variables for Debian
|
|
||||||
.xorg.distro@debian@amd64:
|
|
||||||
variables:
|
|
||||||
FDO_DISTRIBUTION_VERSION: "$DEBIAN_VERSION"
|
|
||||||
FDO_DISTRIBUTION_EXEC: "$DEBIAN_EXEC"
|
|
||||||
FDO_DISTRIBUTION_TAG: "amd64-$DEBIAN_TAG"
|
|
||||||
FDO_BASE_IMAGE: "amd64/debian:$DEBIAN_VERSION"
|
|
||||||
|
|
||||||
.xorg.distro@debian@i386:
|
|
||||||
variables:
|
|
||||||
FDO_DISTRIBUTION_VERSION: "$DEBIAN_VERSION"
|
|
||||||
FDO_DISTRIBUTION_EXEC: "$DEBIAN_EXEC"
|
|
||||||
FDO_DISTRIBUTION_TAG: "i386-$DEBIAN_TAG"
|
|
||||||
FDO_BASE_IMAGE: "i386/debian:$DEBIAN_VERSION"
|
|
||||||
|
|
||||||
# overwrite this one if another matrix is needed
|
|
||||||
.xorg.driver_matrix@debian:
|
|
||||||
parallel:
|
|
||||||
matrix:
|
|
||||||
- CC: [ "gcc", "clang" ]
|
|
||||||
XSERVER_REF: [
|
|
||||||
# these break on Debian
|
|
||||||
# "xorg-server-1.18.4",
|
|
||||||
# "xorg-server-1.19.7",
|
|
||||||
"xorg-server-1.20.14",
|
|
||||||
"xorg-server-21.1.13",
|
|
||||||
"master"
|
|
||||||
]
|
|
||||||
|
|
||||||
# default build with meson on Debian
|
|
||||||
.xorg.driver_common@debian:
|
|
||||||
needs:
|
|
||||||
- image@debian@i386
|
|
||||||
- image@debian@amd64
|
|
||||||
extends:
|
|
||||||
- .fdo.distribution-image@debian
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- .gitlab-ci/common/build-driver.sh "debian" "$XSERVER_REF"
|
|
||||||
variables:
|
|
||||||
CFLAGS: "-pipe -g -O2"
|
|
||||||
rules:
|
|
||||||
- if: $DEBIAN_SKIP != "true"
|
|
||||||
when: always
|
|
||||||
|
|
||||||
# overwrite this when you need some special Debian build
|
|
||||||
build@debian@amd64:
|
|
||||||
extends:
|
|
||||||
- .xorg.driver_matrix@debian
|
|
||||||
- .xorg.driver_common@debian
|
|
||||||
- .xorg.distro@debian@amd64
|
|
||||||
|
|
||||||
build@debian@i386:
|
|
||||||
extends:
|
|
||||||
- .xorg.driver_matrix@debian
|
|
||||||
- .xorg.driver_common@debian
|
|
||||||
- .xorg.distro@debian@i386
|
|
||||||
|
|
||||||
# inherit this to define FDO_DISTRIBUTION_* variables for FreeBSD
|
|
||||||
.xorg.distro@freebsd:
|
|
||||||
variables:
|
|
||||||
FDO_DISTRIBUTION_VERSION: "$FREEBSD_VERSION"
|
|
||||||
FDO_DISTRIBUTION_EXEC: "$FREEBSD_EXEC"
|
|
||||||
FDO_DISTRIBUTION_TAG: "$FREEBSD_TAG"
|
|
||||||
|
|
||||||
# create base image for FreeBSD
|
|
||||||
image@freebsd:
|
|
||||||
extends:
|
|
||||||
- .xorg.distro@freebsd
|
|
||||||
- .fdo.qemu-build@freebsd@x86_64
|
|
||||||
stage: images
|
|
||||||
variables:
|
|
||||||
GIT_STRATEGY: none
|
|
||||||
rules:
|
|
||||||
- if: $FREEBSD_SKIP != "true"
|
|
||||||
when: always
|
|
||||||
|
|
||||||
# inherit this to get the default build matrix
|
|
||||||
.xorg.driver_matrix@freebsd:
|
|
||||||
parallel:
|
|
||||||
matrix:
|
|
||||||
- CC: [ "gcc", "clang" ]
|
|
||||||
XSERVER_REF: [
|
|
||||||
# "xorg-server-1.18.4", # this breaks due name clash on "bool"
|
|
||||||
# "xorg-server-1.19.7",
|
|
||||||
# "xorg-server-1.20.14", # breaks meson ... see: 331850ce6f0c48a1cfc489da2a27ca0220997a2f -- server-1.20-branch
|
|
||||||
"xorg-server-21.0.99.1",
|
|
||||||
"xorg-server-21.1.13",
|
|
||||||
"master"
|
|
||||||
]
|
|
||||||
|
|
||||||
# common build for driver on FreeBSD. meson and autoconf are both handled by this
|
|
||||||
.xorg.driver_common@freebsd:
|
|
||||||
needs:
|
|
||||||
- image@freebsd
|
|
||||||
stage: build
|
|
||||||
extends:
|
|
||||||
- .fdo.distribution-image@freebsd
|
|
||||||
- .xorg.distro@freebsd
|
|
||||||
script:
|
|
||||||
# FIXME: increasing image and running image-install.sh should be done
|
|
||||||
# at container image build time, but would have to replicate too much
|
|
||||||
# of the cbuild script here. better wait until CI folks have increased
|
|
||||||
# the image size or provide hooks for that
|
|
||||||
- xz -d -T0 /app/image.raw.xz
|
|
||||||
- rm -f /app/image.raw.xz
|
|
||||||
- truncate -s +5G /app/image.raw
|
|
||||||
- /app/vmctl start
|
|
||||||
- set +e
|
|
||||||
- /app/vmctl exec "service growfs onestart"
|
|
||||||
- scp -r $PWD "vm:"
|
|
||||||
- /app/vmctl exec "cd $CI_PROJECT_NAME && .gitlab-ci/common/freebsd/image-install.sh"
|
|
||||||
- /app/vmctl exec "cd $CI_PROJECT_NAME && .gitlab-ci/common/build-driver.sh freebsd $XSERVER_REF" && touch .success
|
|
||||||
# copy any test results from the VM to our container so we can
|
|
||||||
# save them as artifacts
|
|
||||||
- scp -r vm:$CI_PROJECT_NAME/test-results.xml . || true # this is allowed to fail
|
|
||||||
- /app/vmctl stop
|
|
||||||
- set -e
|
|
||||||
- test -e .success || exit 1
|
|
||||||
rules:
|
|
||||||
- if: $FREEBSD_SKIP != "true"
|
|
||||||
when: always
|
|
||||||
|
|
||||||
# overwrite this if you need some special FreeBSD build
|
|
||||||
build@freebsd:
|
|
||||||
extends:
|
|
||||||
- .xorg.driver_matrix@freebsd
|
|
||||||
- .xorg.driver_common@freebsd
|
|
||||||
Reference in New Issue
Block a user