mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-02 13:08:01 +02:00
Mark master branch as closed, superseded by main branch
Also removes gitlab CI on this branch Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2127>
This commit is contained in:
parent
d6a14b6da4
commit
0da4d24800
11 changed files with 9 additions and 1040 deletions
353
.gitlab-ci.yml
353
.gitlab-ci.yml
|
|
@ -1,353 +0,0 @@
|
|||
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
|
||||
#
|
||||
# This CI uses the freedesktop.org ci-templates.
|
||||
# Please see the ci-templates documentation for details:
|
||||
# https://freedesktop.pages.freedesktop.org/ci-templates/
|
||||
|
||||
.templates_sha: &template_sha ef5e4669b7500834a17ffe9277e15fbb6d977fff # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
||||
|
||||
# FDO_DISTRIBUTION_TAG is the tag of the docker image used for the build jobs.
|
||||
# If the image doesn't exist yet, the docker-image stage generates it.
|
||||
#
|
||||
# In order to generate a new image, one should generally change the tag.
|
||||
# While removing the image from the registry would also work, that's not
|
||||
# recommended except for ephemeral images during development: Replacing an
|
||||
# image after a significant amount of time might pull in newer versions of
|
||||
# gcc/clang or other packages, which might break the build with older commits
|
||||
# using the same tag.
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: 'xorg/xserver'
|
||||
MESON_BUILDDIR: 'build'
|
||||
REPO_URL_XORGPROTO: 'https://gitlab.freedesktop.org/xorg/proto/xorgproto.git'
|
||||
XORG_DEBIAN_VERSION: 'bullseye-slim'
|
||||
XORG_DEBIAN_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/debian-install.sh'
|
||||
XORG_DEBIAN_TAG: '2025-02-26-xcb-deps'
|
||||
XORG_FREEBSD_VERSION: '14.2'
|
||||
XORG_FREEBSD_EXEC: ''
|
||||
XORG_FREEBSD_TAG: '2025-02-18-vm-image'
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: *template_sha
|
||||
file:
|
||||
- '/templates/debian.yml'
|
||||
- '/templates/freebsd.yml'
|
||||
- '/templates/ci-fairy.yml'
|
||||
- template: Security/SAST.gitlab-ci.yml
|
||||
|
||||
stages:
|
||||
- docker-image
|
||||
- build-and-test
|
||||
- drivers
|
||||
- test
|
||||
|
||||
.ci-run-policy:
|
||||
# Retry jobs after runner system failures
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
# Cancel CI run if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
|
||||
# This is everything but the DDXen
|
||||
.dix_paths: &dix_paths
|
||||
# Directories
|
||||
- .gitlab-ci/**/*
|
||||
- composite/**/*
|
||||
- config/**/*
|
||||
- damageext/**/*
|
||||
- dbe/**/*
|
||||
- dix/**/*
|
||||
- doc/**/*
|
||||
- dri3/**/*
|
||||
- exa/**/*
|
||||
- fb/**/*
|
||||
- glamor/**/*
|
||||
- glx/**/*
|
||||
- include/**/*
|
||||
- m4/**/*
|
||||
- man/**/*
|
||||
- mi/**/*
|
||||
- miext/**/*
|
||||
- os/**/*
|
||||
- present/**/*
|
||||
- pseudoramiX/**/*
|
||||
- randr/**/*
|
||||
- record/**/*
|
||||
- render/**/*
|
||||
- test/**/*
|
||||
- Xext/**/*
|
||||
- xfixes/**/*
|
||||
- Xi/**/*
|
||||
- xkb/**/*
|
||||
# Files
|
||||
- hw/meson.build
|
||||
- .gitlab-ci.yml
|
||||
- meson*
|
||||
- xorg-server.m4
|
||||
- xorg-server.pc.in
|
||||
- xserver.ent.in
|
||||
|
||||
.xorg_paths: &xorg_paths
|
||||
- hw/xfree86/**/*
|
||||
|
||||
.xwayland_paths: &xwayland_paths
|
||||
- hw/xwayland/**/*
|
||||
|
||||
.all_ddx_paths:
|
||||
- hw/**/*
|
||||
|
||||
.debian:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: '$XORG_DEBIAN_VERSION'
|
||||
FDO_DISTRIBUTION_EXEC: '$XORG_DEBIAN_EXEC'
|
||||
FDO_DISTRIBUTION_TAG: '$XORG_DEBIAN_TAG'
|
||||
|
||||
.freebsd:
|
||||
tags:
|
||||
- kvm
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: '$XORG_FREEBSD_TAG'
|
||||
FDO_DISTRIBUTION_VERSION: '$XORG_FREEBSD_VERSION'
|
||||
FDO_DISTRIBUTION_EXEC: ''
|
||||
FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake libtool xorg-macros xorgproto bash meson ninja pixman xtrans libXau libXdmcp libXfont2 libxkbfile libxcvt libpciaccess font-util libepoll-shim'
|
||||
FDO_IMAGE_SIZE: '30G'
|
||||
|
||||
debian-bullseye:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .ci-run-policy
|
||||
- .debian
|
||||
stage: docker-image
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
|
||||
freebsd-image:
|
||||
extends:
|
||||
- .fdo.qemu-build@freebsd@x86_64
|
||||
- .freebsd
|
||||
stage: docker-image
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
|
||||
.xorg-image@debian:
|
||||
extends:
|
||||
- .fdo.distribution-image@debian
|
||||
- .debian
|
||||
|
||||
.xorg-image@freebsd:
|
||||
extends:
|
||||
- .fdo.distribution-image@freebsd
|
||||
- .freebsd
|
||||
variables:
|
||||
GIT_DEPTH: 1
|
||||
PKG_CONFIG_PATH: /usr/share/pkgconfig:/usr/lib/pkgconfig:/usr/pkg/share/pkgconfig:/usr/pkg/lib/pkgconfig:/usr/local/libdata/pkgconfig
|
||||
|
||||
.common-build-and-test:
|
||||
extends:
|
||||
- .xorg-image@debian
|
||||
- .ci-run-policy
|
||||
stage: build-and-test
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- $MESON_BUILDDIR/meson-logs/
|
||||
- $MESON_BUILDDIR/test/piglit-results/
|
||||
variables:
|
||||
MESON_ARGS: -Dc_args="-fno-common" -Dprefix=/usr -Dxephyr=true -Dwerror=true -Dxcsecurity=true
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_DIR: /cache/xserver/cache
|
||||
LC_ALL: C.UTF-8
|
||||
before_script:
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- ccache --show-stats
|
||||
after_script:
|
||||
- ccache --show-stats
|
||||
|
||||
meson:
|
||||
extends: .common-build-and-test
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh --run-test
|
||||
- .gitlab-ci/check-piglit-results.sh
|
||||
- .gitlab-ci/manpages-check
|
||||
- .gitlab-ci/check-ddx-build.sh
|
||||
variables:
|
||||
XTEST_DIR: /root/xts
|
||||
PIGLIT_DIR: /root/piglit
|
||||
LP_NUM_THREADS: 0
|
||||
MESON_DDX_BUILD_ARGS: >
|
||||
-Dxwayland=${BUILD_XWAYLAND} -Dxorg=${BUILD_XORG} -Dxephyr=${BUILD_XEPHYR} -Dxvfb=${BUILD_XVFB} -Dxnest=${BUILD_XNEST}
|
||||
BUILD_XEPHYR: true
|
||||
BUILD_XNEST: true
|
||||
BUILD_XORG: true
|
||||
BUILD_XVFB: true
|
||||
BUILD_XWAYLAND: true
|
||||
MESON_EXTRA_ARGS: ${MESON_DDX_BUILD_ARGS}
|
||||
|
||||
meson-enable-options:
|
||||
extends: meson
|
||||
variables:
|
||||
MESON_EXTRA_ARGS: --auto-features=enabled -Dlisten_tcp=true -Dsuid_wrapper=true -Dxf86bigfont=true -Dxcsecurity=true -Dxpbproxy=true -Ddri1=true -Ddri2=true -Ddri3=true -Dlibunwind=true ${MESON_DDX_BUILD_ARGS}
|
||||
|
||||
meson-disable-options:
|
||||
extends: meson
|
||||
variables:
|
||||
MESON_EXTRA_ARGS: --auto-features=disabled -Dglamor=false -Dglx=false -Dxdmcp=false -Dxdm-auth-1=false -Dint10=false -Dpciaccess=false -Dudev=false -Dudev_kms=false -Dvgahw=false -Dxace=false -Dxcsecurity=false -Dxinerama=false -Dxv=false -Dxvmc=false -Ddrm=false -Ddri1=false -Ddri2=false -Ddri3=false ${MESON_DDX_BUILD_ARGS}
|
||||
|
||||
meson-noglamor:
|
||||
extends: meson
|
||||
variables:
|
||||
MESON_EXTRA_ARGS: -Dglamor=false ${MESON_DDX_BUILD_ARGS}
|
||||
|
||||
xwayland-nolibdecor:
|
||||
extends: meson
|
||||
variables:
|
||||
BUILD_XEPHYR: false
|
||||
BUILD_XNEST: false
|
||||
BUILD_XORG: false
|
||||
BUILD_XVFB: false
|
||||
MESON_EXTRA_ARGS: -Dlibdecor=false ${MESON_DDX_BUILD_ARGS}
|
||||
|
||||
mingw-cross-build:
|
||||
extends: .common-build-and-test
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh --run-install
|
||||
variables:
|
||||
MESON_ARGS: --cross-file=.gitlab-ci/cross-i686-w64-mingw32.txt -Dglx=false -Dlisten_tcp=true
|
||||
|
||||
freebsd:
|
||||
stage: build-and-test
|
||||
extends:
|
||||
- .xorg-image@freebsd
|
||||
variables:
|
||||
MESON_ARGS: -Dglx=false -Dglamor=false -Dudev=false -Dudev_kms=false
|
||||
script:
|
||||
# running of of disk space without this
|
||||
# needed until https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/67 is fixed
|
||||
- git gc
|
||||
- git clone --depth=1 $REPO_URL_XORGPROTO dep.xorgproto
|
||||
- /app/vmctl start
|
||||
- set +e
|
||||
- scp -r $PWD "vm:"
|
||||
# need to install newer xorgproto
|
||||
- /app/vmctl exec "cd $CI_PROJECT_NAME/dep.xorgproto && ./autogen.sh --prefix=/usr && make && make install"
|
||||
- /app/vmctl exec "cd $CI_PROJECT_NAME && PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\" MESON_ARGS=\"$MESON_ARGS\" MESON_BUILDDIR=\"$MESON_BUILDDIR\" .gitlab-ci/meson-build.sh --skip-test" && touch .success
|
||||
# test not working yet, so skipped
|
||||
# - scp -r vm:$CI_PROJECT_NAME/test-results.xml .
|
||||
- /app/vmctl stop
|
||||
- set -e
|
||||
- test -e .success || exit 1
|
||||
|
||||
meson-dist:
|
||||
extends: .common-build-and-test
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- $MESON_BUILDDIR/meson-logs/
|
||||
- $MESON_BUILDDIR/xserver-*/$MESON_BUILDDIR/meson-logs/
|
||||
- xserver-tarball/install/
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh --run-dist
|
||||
- mkdir xserver-tarball
|
||||
- tar xf $MESON_BUILDDIR/meson-dist/xserver-*.tar.xz -C xserver-tarball --strip-components=1
|
||||
- .gitlab-ci/meson-build.sh -C xserver-tarball --skip-test --skip-dist --run-install
|
||||
variables:
|
||||
MESON_DIST_ARGS: --no-tests
|
||||
MESON_EXTRA_ARGS: -Dprefix=$CI_PROJECT_DIR/xserver-tarball/install/
|
||||
|
||||
xf86-driver-build-test:
|
||||
extends:
|
||||
- .xorg-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-intel
|
||||
SHA: e6a4c4740c15ace9dd79dc7c18955f2eb413a6a5 # no release yet
|
||||
- REPO: https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl
|
||||
SHA: 989ff620220e8d0555cec38c1508b57dfbcfb0c6 # no release yet
|
||||
- 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:
|
||||
# built xserver is taken from meson-dist job
|
||||
- export PKG_CONFIG_PATH=$(pwd)/xserver-tarball/install/lib/x86_64-linux-gnu/pkgconfig
|
||||
- export ACLOCAL_PATH=$(pwd)/xserver-tarball/install/share/aclocal/
|
||||
- unset MESON_EXTRA_ARGS
|
||||
- DRIVER=$(basename $REPO)
|
||||
- git clone "$REPO" "$DRIVER"
|
||||
- git -C "$DRIVER" checkout "$SHA"
|
||||
- |
|
||||
if [[ -e "$DRIVER/meson.build" ]] && [[ "$DRIVER" != "xf86-video-intel" ]]; then
|
||||
.gitlab-ci/meson-build.sh -C "$DRIVER" --skip-test
|
||||
else
|
||||
pushd "$DRIVER" || exit 1
|
||||
./autogen.sh && make
|
||||
fi
|
||||
needs:
|
||||
- meson-dist
|
||||
dependencies:
|
||||
- meson-dist
|
||||
variables:
|
||||
GIT_DEPTH: 1
|
||||
MESON_ARGS: -Dprefix=/usr/
|
||||
MESON_EXTRA_ARGS: -Dxwayland=false -Dxnest=false -Dxvfb=false -Dxquartz=false -Ddocs=false
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
changes:
|
||||
*dix_paths
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
changes:
|
||||
*xorg_paths
|
||||
|
||||
#
|
||||
# Verify that commit messages are as expected
|
||||
#
|
||||
check-commits:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
needs: []
|
||||
stage: test
|
||||
script:
|
||||
- ci-fairy check-commits --junit-xml=results.xml
|
||||
except:
|
||||
- master@xorg/xserver
|
||||
variables:
|
||||
GIT_DEPTH: 100
|
||||
artifacts:
|
||||
reports:
|
||||
junit: results.xml
|
||||
allow_failure: true
|
||||
|
||||
check-whitespace:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: test
|
||||
script:
|
||||
- .gitlab-ci/whitespace-check.py $(git ls-files hw/xwayland)
|
||||
|
||||
#
|
||||
# Workflow rules needed due to:
|
||||
# https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438
|
||||
#
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_OPEN_MERGE_REQUESTS
|
||||
when: never
|
||||
- if: $CI_PIPELINE_SOURCE == 'push'
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
check_executable () {
|
||||
if [[ ! -x $MESON_BUILDDIR/$1 ]]; then
|
||||
echo "$1 not found after build"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
if [[ -z "$MESON_BUILDDIR" ]]; then
|
||||
echo "\$MESON_BUILDDIR not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[[ "$BUILD_XEPHYR" == true ]] && check_executable "hw/kdrive/ephyr/Xephyr"
|
||||
[[ "$BUILD_XNEST" == true ]] && check_executable "hw/xnest/Xnest"
|
||||
[[ "$BUILD_XORG" == true ]] && check_executable "hw/xfree86/Xorg"
|
||||
[[ "$BUILD_XVFB" == true ]] && check_executable "hw/vfb/Xvfb"
|
||||
[[ "$BUILD_XWAYLAND" == true ]] && check_executable "hw/xwayland/Xwayland"
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
if [[ -z "$MESON_BUILDDIR" ]]; then
|
||||
echo "\$MESON_BUILDDIR not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
check_piglit_results ()
|
||||
{
|
||||
local EXPECTED_RESULTS="$MESON_BUILDDIR"/test/piglit-results/$1
|
||||
local DEPENDENCY="$MESON_BUILDDIR"/$2
|
||||
|
||||
if ! test -e $DEPENDENCY; then
|
||||
return
|
||||
fi
|
||||
|
||||
if test -e $EXPECTED_RESULTS; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo Expected $EXPECTED_RESULTS does not exist
|
||||
exit 1
|
||||
}
|
||||
|
||||
check_piglit_results xephyr-glamor hw/kdrive/ephyr/Xephyr.p/ephyr_glamor.c.o
|
||||
check_piglit_results xvfb hw/vfb/Xvfb
|
||||
check_piglit_results xwayland hw/xwayland/Xwayland
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
[binaries]
|
||||
c = 'i686-w64-mingw32-gcc'
|
||||
cpp = 'i686-w64-mingw32-g++'
|
||||
ar = 'i686-w64-mingw32-ar'
|
||||
strip = 'i686-w64-mingw32-strip'
|
||||
pkgconfig = '/usr/local/bin/i686-w64-mingw32-pkg-config'
|
||||
windres = 'i686-w64-mingw32-windres'
|
||||
exe_wrapper = 'wine'
|
||||
|
||||
[properties]
|
||||
# Directory that contains 'bin', 'lib', etc for the toolchain
|
||||
root = '/usr/i686-w64-mingw32'
|
||||
# Directory that contains 'bin', 'lib', etc which have been cross-compiled
|
||||
sys_root = '/usr/i686-w64-mingw32'
|
||||
|
||||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86'
|
||||
cpu = 'i686'
|
||||
endian = 'little'
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
HOST=$1
|
||||
|
||||
# Debian's cross-pkg-config wrappers are broken for MinGW targets, since
|
||||
# dpkg-architecture doesn't know about MinGW target triplets.
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
|
||||
cat >/usr/local/bin/${HOST}-pkg-config <<EOF
|
||||
#!/bin/sh
|
||||
|
||||
PKG_CONFIG_SYSROOT_DIR=/usr/${HOST} PKG_CONFIG_LIBDIR=/usr/${HOST}/lib/pkgconfig:/usr/${HOST}/share/pkgconfig pkg-config \$@
|
||||
EOF
|
||||
chmod +x /usr/local/bin/${HOST}-pkg-config
|
||||
|
||||
# when cross-compiling, some autoconf tests cannot be run:
|
||||
|
||||
# --enable-malloc0returnsnull
|
||||
export xorg_cv_malloc0_returns_null=yes
|
||||
|
||||
build() {
|
||||
url=$1
|
||||
commit=$2
|
||||
config=$3
|
||||
|
||||
name=$(basename ${url} .git)
|
||||
|
||||
if [[ $commit =~ ^[[:xdigit:]]{1,}$ ]]
|
||||
then
|
||||
git clone ${url} ${name}
|
||||
git -C ${name} checkout ${commit}
|
||||
else
|
||||
git clone --depth 1 --branch ${commit:-master} --recurse-submodules -c advice.detachedHead=false ${url} ${name}
|
||||
fi
|
||||
|
||||
pushd ${name}
|
||||
NOCONFIGURE=1 ./autogen.sh || ./.bootstrap
|
||||
./configure ${config} --host=${HOST} --prefix= --with-sysroot=/usr/${HOST}/
|
||||
make -j$(nproc)
|
||||
DESTDIR=/usr/${HOST} make install
|
||||
|
||||
popd
|
||||
rm -rf ${OLDPWD}
|
||||
}
|
||||
|
||||
build 'https://gitlab.freedesktop.org/pixman/pixman.git' 'pixman-0.38.4'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/pthread-stubs.git' '0.4'
|
||||
# we can't use the xorgproto pkgconfig files from /usr/share/pkgconfig, because
|
||||
# these would add -I/usr/include to CFLAGS, which breaks cross-compilation
|
||||
build 'https://gitlab.freedesktop.org/xorg/proto/xorgproto.git' 'xorgproto-2024.1' '--datadir=/lib'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libXau.git' 'libXau-1.0.9'
|
||||
build 'https://gitlab.freedesktop.org/xorg/proto/xcbproto.git' 'xcb-proto-1.14.1'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxcb.git' 'libxcb-1.14'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxtrans.git' 'xtrans-1.4.0'
|
||||
# the default value of keysymdefdir is taken from the includedir variable for
|
||||
# xproto, which isn't adjusted by pkg-config for the sysroot
|
||||
# Using -fcommon to address build failure when cross-compiling for windows.
|
||||
# See discussion at https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/913
|
||||
CFLAGS="-fcommon" build 'https://gitlab.freedesktop.org/xorg/lib/libX11.git' 'libX11-1.6.9' "--with-keysymdefdir=/usr/${HOST}/include/X11"
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxkbfile.git' 'libxkbfile-1.1.0'
|
||||
# freetype needs an explicit --build to know it's cross-compiling
|
||||
# disable png as freetype tries to use libpng-config, even when cross-compiling
|
||||
build 'git://git.savannah.gnu.org/freetype/freetype2.git' 'VER-2-10-1' "--build=$(cc -dumpmachine) --with-png=no"
|
||||
build 'https://gitlab.freedesktop.org/xorg//font/util.git' 'font-util-1.3.2'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libfontenc.git' 'libfontenc-1.1.4'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libXfont.git' 'libXfont2-2.0.3'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libXdmcp.git' 'libXdmcp-1.1.3'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libXfixes.git' 'libXfixes-5.0.3'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxcb-util.git' 'xcb-util-0.4.1-gitlab'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxcb-image.git' 'xcb-util-image-0.4.1-gitlab'
|
||||
build 'https://gitlab.freedesktop.org/xorg/lib/libxcb-wm.git' 'xcb-util-wm-0.4.2'
|
||||
|
||||
# workaround xcb_windefs.h leaking all Windows API types into X server build
|
||||
# (some of which clash which types defined by Xmd.h) XXX: This is a bit of a
|
||||
# hack, as it makes this header depend on xorgproto. Maybe an upstreamable
|
||||
# fix would involve a macro defined in the X server (XFree86Server?
|
||||
# XCB_NO_WINAPI?), which makes xcb_windefs.h wrap things like XWinsock.h
|
||||
# does???
|
||||
sed -i s#winsock2#X11/Xwinsock# /usr/${HOST}/include/xcb/xcb_windefs.h
|
||||
|
|
@ -1,220 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
# Packages which are needed by this script, but not for the xserver build
|
||||
EPHEMERAL="
|
||||
libcairo2-dev
|
||||
libexpat-dev
|
||||
libgles2-mesa-dev
|
||||
libxkbcommon-dev
|
||||
x11-utils
|
||||
x11-xserver-utils
|
||||
xauth
|
||||
xvfb
|
||||
"
|
||||
|
||||
# Add bullseye-backports for the newer linux-libc-dev & meson packages
|
||||
echo 'deb http://deb.debian.org/debian bullseye-backports main' >> /etc/apt/sources.list
|
||||
apt update
|
||||
|
||||
apt-get install -y \
|
||||
$EPHEMERAL \
|
||||
autoconf \
|
||||
automake \
|
||||
bison \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
ccache \
|
||||
dpkg-dev \
|
||||
flex \
|
||||
gcc-mingw-w64-i686 \
|
||||
git \
|
||||
libaudit-dev \
|
||||
libbsd-dev \
|
||||
libcairo2 \
|
||||
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 \
|
||||
libpango1.0-0 \
|
||||
libpango1.0-dev \
|
||||
libpciaccess-dev \
|
||||
libpixman-1-dev \
|
||||
libselinux1-dev \
|
||||
libspice-protocol-dev \
|
||||
libsystemd-dev \
|
||||
libtool \
|
||||
libudev-dev \
|
||||
libunwind-dev \
|
||||
libwayland-dev \
|
||||
libx11-dev \
|
||||
libx11-xcb-dev \
|
||||
libxau-dev \
|
||||
libxaw7-dev \
|
||||
libxcb-damage0-dev \
|
||||
libxcb-dri2-0-dev \
|
||||
libxcb-dri3-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-sync-dev \
|
||||
libxcb-util0-dev \
|
||||
libxcb-xf86dri0-dev \
|
||||
libxcb-xinput-dev \
|
||||
libxcb-xkb-dev \
|
||||
libxcb-xv0-dev \
|
||||
libxcb1-dev \
|
||||
libxcursor-dev \
|
||||
libxdamage-dev \
|
||||
libxdmcp-dev \
|
||||
libxext-dev \
|
||||
libxfixes-dev \
|
||||
libxfont-dev \
|
||||
libxi-dev \
|
||||
libxinerama-dev \
|
||||
libxkbcommon0 \
|
||||
libxkbfile-dev \
|
||||
libxmu-dev \
|
||||
libxmuu-dev \
|
||||
libxpm-dev \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
libxres-dev \
|
||||
libxshmfence-dev \
|
||||
libxss-dev \
|
||||
libxt-dev \
|
||||
libxtst-dev \
|
||||
libxv-dev \
|
||||
libxvmc-dev \
|
||||
libxxf86vm-dev \
|
||||
libz-mingw-w64-dev \
|
||||
linux-libc-dev/bullseye-backports \
|
||||
mesa-common-dev \
|
||||
meson/bullseye-backports \
|
||||
mingw-w64-tools \
|
||||
nettle-dev \
|
||||
pkg-config \
|
||||
python3-attr \
|
||||
python3-jinja2 \
|
||||
python3-mako \
|
||||
python3-numpy \
|
||||
python3-six \
|
||||
valgrind \
|
||||
weston \
|
||||
x11-xkb-utils \
|
||||
xfonts-utils \
|
||||
xkb-data \
|
||||
xtrans-dev \
|
||||
xutils-dev
|
||||
|
||||
.gitlab-ci/cross-prereqs-build.sh i686-w64-mingw32
|
||||
|
||||
cd /root
|
||||
|
||||
# Xwayland requires drm 2.4.116 for drmSyncobjEventfd
|
||||
git clone https://gitlab.freedesktop.org/mesa/drm --depth 1 --branch=libdrm-2.4.116
|
||||
cd drm
|
||||
meson _build
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf drm
|
||||
|
||||
# xserver requires libxcvt
|
||||
git clone https://gitlab.freedesktop.org/xorg/lib/libxcvt.git --depth 1 --branch=libxcvt-0.1.0
|
||||
cd libxcvt
|
||||
meson _build
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf libxcvt
|
||||
|
||||
# xserver requires xorgproto >= 2024.1 for XWAYLAND
|
||||
git clone https://gitlab.freedesktop.org/xorg/proto/xorgproto.git --depth 1 --branch=xorgproto-2024.1
|
||||
pushd xorgproto
|
||||
./autogen.sh
|
||||
make -j${FDO_CI_CONCURRENT:-4} install
|
||||
popd
|
||||
rm -rf xorgproto
|
||||
|
||||
# wayland-protocols requires wayland-scanner 1.20, but Debian bullseye has 1.18 only
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland.git --depth 1 --branch=1.21.0
|
||||
cd wayland
|
||||
meson -Dtests=false -Ddocumentation=false -Ddtd_validation=false _build
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf wayland
|
||||
|
||||
# Xwayland requires wayland-protocols >= 1.38, but Debian bullseye has 1.20 only
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git --depth 1 --branch=1.38
|
||||
cd wayland-protocols
|
||||
meson _build
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf wayland-protocols
|
||||
|
||||
# Install libdecor for Xwayland
|
||||
git clone https://gitlab.freedesktop.org/libdecor/libdecor.git --depth 1 --branch=0.1.1
|
||||
cd libdecor
|
||||
meson _build -D{demo,install_demo}=false
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf libdecor
|
||||
|
||||
# Install libei for Xwayland
|
||||
git clone https://gitlab.freedesktop.org/libinput/libei.git --depth 1 --branch=1.0.0
|
||||
cd libei
|
||||
meson setup _build -Dtests=disabled -Ddocumentation=[] -Dliboeffis=enabled
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
cd ..
|
||||
rm -rf libei
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git
|
||||
cd piglit
|
||||
git checkout 265896c86f90cb72e8f218ba6a3617fca8b9a1e3
|
||||
cd ..
|
||||
|
||||
git clone https://gitlab.freedesktop.org/xorg/test/xts
|
||||
cd xts
|
||||
git checkout 12a887c2c72c4258962b56ced7b0aec782f1ffed
|
||||
./autogen.sh
|
||||
xvfb-run make -j${FDO_CI_CONCURRENT:-4}
|
||||
cd ..
|
||||
|
||||
git clone https://gitlab.freedesktop.org/xorg/test/rendercheck
|
||||
cd rendercheck
|
||||
git checkout 67a820621b1475ebfcf3d4f9d7f03a5fc3b9769a
|
||||
meson build
|
||||
ninja -j${FDO_CI_CONCURRENT:-4} -C build install
|
||||
cd ..
|
||||
|
||||
rm -rf piglit/.git xts/.git piglit/tests/spec/ rendercheck/
|
||||
|
||||
echo '[xts]' > piglit/piglit.conf
|
||||
echo 'path=/root/xts' >> piglit/piglit.conf
|
||||
|
||||
find -name \*.a -o -name \*.o -o -name \*.c -o -name \*.h -o -name \*.la\* | xargs rm
|
||||
strip xts/xts5/*/.libs/*
|
||||
|
||||
apt-get purge -y \
|
||||
$EPHEMERAL
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
find build/ -regex ".*\.[1-9]$" -exec grep -E \
|
||||
@vendorversion@\|\
|
||||
@xorgversion@\|\
|
||||
@xservername@\|\
|
||||
@xconfigfile@\|\
|
||||
@projectroot@\|\
|
||||
@apploaddir@\|\
|
||||
@appmansuffix@\|\
|
||||
@drivermansuffix@\|\
|
||||
@adminmansuffix@\|\
|
||||
@libmansuffix@\|\
|
||||
@miscmansuffix@\|\
|
||||
@filemansuffix@\|\
|
||||
@logdir@\|\
|
||||
@datadir@\|\
|
||||
@mandir@\|\
|
||||
@sysconfdir@\|\
|
||||
@xconfigdir@\|\
|
||||
@xkbdir@\|\
|
||||
@XKB_DFLT_RULES@\|\
|
||||
@XKB_DFLT_MODEL@\|\
|
||||
@XKB_DFLT_LAYOUT@\|\
|
||||
@XKB_DFLT_VARIANT@\|\
|
||||
@XKB_DFLT_OPTIONS@\|\
|
||||
@bundle_id_prefix@\|\
|
||||
@modulepath@\|\
|
||||
@suid_wrapper_dir@\|\
|
||||
@default_font_path@\
|
||||
'{}' + && { echo "Missing manpage substitutions detected!" >&2 ; exit 1; }
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# This script is sourced from here:
|
||||
# https://gitlab.freedesktop.org/whot/meson-helper
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Usage:
|
||||
# meson-build.sh
|
||||
# [-C directory] ... change to directory before doing anything
|
||||
# [--skip-build] ... skip the compilation
|
||||
# [--skip-test|--run-test] ... skip or explicitly run meson test
|
||||
# [--skip-dist|--run-dist] ... skip or explicitly run meson dist
|
||||
# [--skip-install|--run-install] ... skip or explicitly run meson install
|
||||
#
|
||||
#
|
||||
# Environment variables:
|
||||
# If the .meson_environment file exists in $PWD, it is sourced at the start of the script.
|
||||
# This file is sourced before the -C directory option takes effect.
|
||||
#
|
||||
# MESON_BUILDDIR
|
||||
# MESON_ARGS, MESON_EXTRA_ARGS:
|
||||
# Args passed to meson setup. The MESON_EXTRA_ARGS exist to make it easier for
|
||||
# callers to have a default set of arguments and a variable set of arguments.
|
||||
# MESON_TEST_ARGS, MESON_DIST_ARGS, MESON_INSTALL_ARGS:
|
||||
# Args passed directly to the respective meson command. If these args are set it implies
|
||||
# --run-$cmd. Use --skip-$cmd to skip.
|
||||
# NINJA_ARGS - args passed to ninja via meson compile
|
||||
|
||||
set -x
|
||||
if [[ -f .meson_environment ]]; then
|
||||
. .meson_environment
|
||||
fi
|
||||
|
||||
# If test args are set, we assume we want to run the tests
|
||||
MESON_RUN_TEST="$MESON_TEST_ARGS"
|
||||
MESON_RUN_INSTALL="$MESON_INSTALL_ARGS"
|
||||
MESON_RUN_DIST="$MESON_DIST_ARGS"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-C)
|
||||
directory=$2
|
||||
shift 2
|
||||
pushd "$directory" || exit 1
|
||||
;;
|
||||
--skip-setup)
|
||||
shift
|
||||
MESON_SKIP_SETUP="1"
|
||||
;;
|
||||
--skip-build)
|
||||
shift
|
||||
MESON_SKIP_BUILD="1"
|
||||
;;
|
||||
--skip-test)
|
||||
shift
|
||||
MESON_RUN_TEST=""
|
||||
;;
|
||||
--run-test)
|
||||
shift
|
||||
MESON_RUN_TEST="1"
|
||||
;;
|
||||
--skip-dist)
|
||||
shift
|
||||
MESON_RUN_DIST=""
|
||||
;;
|
||||
--run-dist)
|
||||
shift
|
||||
MESON_RUN_DIST="1"
|
||||
;;
|
||||
--skip-install)
|
||||
shift
|
||||
MESON_RUN_INSTALL=""
|
||||
;;
|
||||
--run-install)
|
||||
shift
|
||||
MESON_RUN_INSTALL="1"
|
||||
;;
|
||||
*)
|
||||
echo "Unknow commandline argument $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$MESON_BUILDDIR" ]]; then
|
||||
echo "\$MESON_BUILDDIR undefined."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# emulate a few gitlab variables to make it easier to
|
||||
# run and debug locally.
|
||||
if [[ -z "$CI_JOB_ID" ]] || [[ -z "$CI_JOB_NAME" ]]; then
|
||||
echo "Missing \$CI_JOB_ID or \$CI_JOB_NAME".
|
||||
CI_PROJECT_NAME=$(basename "$PWD")
|
||||
CI_JOB_ID=$(date +%s)
|
||||
CI_JOB_NAME="$CI_PROJECT_NAME-job-local"
|
||||
echo "Simulating gitlab environment: "
|
||||
echo " CI_JOB_ID=$CI_JOB_ID"
|
||||
echo " CI_JOB_NAME=$CI_JOB_NAME"
|
||||
fi
|
||||
|
||||
if [[ -n "$FDO_CI_CONCURRENT" ]]; then
|
||||
jobcount="-j$FDO_CI_CONCURRENT"
|
||||
export MESON_TESTTHREADS="$FDO_CI_CONCURRENT"
|
||||
fi
|
||||
|
||||
if [[ -n "$MESON_EXTRA_ARGS" ]]; then
|
||||
MESON_ARGS="$MESON_ARGS $MESON_EXTRA_ARGS"
|
||||
fi
|
||||
|
||||
echo "*************************************************"
|
||||
echo "builddir: $MESON_BUILDDIR"
|
||||
echo "meson args: $MESON_ARGS"
|
||||
echo "ninja args: $NINJA_ARGS"
|
||||
echo "meson test args: $MESON_TEST_ARGS"
|
||||
echo "job count: ${jobcount-0}"
|
||||
echo "*************************************************"
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z "$MESON_SKIP_SETUP" ]]; then
|
||||
rm -rf "$MESON_BUILDDIR"
|
||||
meson setup "$MESON_BUILDDIR" $MESON_ARGS
|
||||
fi
|
||||
meson configure "$MESON_BUILDDIR"
|
||||
|
||||
if [[ -z "$MESON_SKIP_BUILD" ]]; then
|
||||
if [[ -n "$NINJA_ARGS" ]]; then
|
||||
ninja_args="--ninja-args $NINJA_ARGS"
|
||||
fi
|
||||
meson compile -v -C "$MESON_BUILDDIR" $jobcount $ninja_args
|
||||
fi
|
||||
|
||||
if [[ -n "$MESON_RUN_TEST" ]]; then
|
||||
meson test -C "$MESON_BUILDDIR" --print-errorlogs $MESON_TEST_ARGS
|
||||
fi
|
||||
|
||||
if [[ -n "$MESON_RUN_INSTALL" ]]; then
|
||||
meson install --no-rebuild -C "$MESON_BUILDDIR" $MESON_INSTALL_ARGS
|
||||
fi
|
||||
|
||||
if [[ -n "$MESON_RUN_DIST" ]]; then
|
||||
meson dist -C "$MESON_BUILDDIR" $MESON_DIST_ARGS
|
||||
fi
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from pathlib import Path
|
||||
from dataclasses import dataclass
|
||||
|
||||
import argparse
|
||||
import itertools
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
@dataclass
|
||||
class WhitespaceError:
|
||||
message: str
|
||||
lineno: int
|
||||
nlines: int = 1
|
||||
column: None | int = None
|
||||
ncolumns: int = 1
|
||||
|
||||
|
||||
def test_tab_indent(lines: list[str]) -> list[WhitespaceError]:
|
||||
errors = []
|
||||
for idx, l in enumerate(lines):
|
||||
if re.match("^\t+.*", l):
|
||||
errors.append(
|
||||
WhitespaceError(
|
||||
"Tab indent", idx, ncolumns=2
|
||||
)
|
||||
)
|
||||
return errors
|
||||
|
||||
|
||||
def test_duplicate_empty_lines(lines: list[str]) -> list[WhitespaceError]:
|
||||
errors = []
|
||||
for idx, (l1, l2) in enumerate(itertools.pairwise(lines)):
|
||||
if not l1 and not l2:
|
||||
errors.append(WhitespaceError("Duplicated empty lines", idx, nlines=2))
|
||||
return errors
|
||||
|
||||
|
||||
def test_tab_after_space(lines: list[str]) -> list[WhitespaceError]:
|
||||
errors = []
|
||||
for idx, l in enumerate(lines):
|
||||
index = l.find(" \t")
|
||||
if index > -1:
|
||||
errors.append(
|
||||
WhitespaceError(
|
||||
"Tab after space", idx, nlines=index, column=index, ncolumns=2
|
||||
)
|
||||
)
|
||||
return errors
|
||||
|
||||
|
||||
def test_trailing_whitespace(lines: list[str]) -> list[WhitespaceError]:
|
||||
errors = []
|
||||
for idx, l in enumerate(lines):
|
||||
if l.rstrip() != l:
|
||||
errors.append(WhitespaceError("Trailing whitespace", idx))
|
||||
return errors
|
||||
|
||||
|
||||
def test_empty_line_between_braces(lines: list[str]) -> list[WhitespaceError]:
|
||||
errors = []
|
||||
for idx in range(len(lines) - 3):
|
||||
l1 = lines[idx]
|
||||
l2 = lines[idx + 1]
|
||||
l3 = lines[idx + 2]
|
||||
if l1.strip() == "}" and l3.strip() == "}" and l2.strip() == "":
|
||||
errors.append(WhitespaceError("Empty line between closing braces", idx + 1))
|
||||
return errors
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Whitespace checker script")
|
||||
parser.add_argument(
|
||||
"files",
|
||||
metavar="FILES",
|
||||
type=Path,
|
||||
nargs="+",
|
||||
help="The files to check",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
have_errors: bool = False
|
||||
|
||||
if os.isatty(sys.stderr.fileno()):
|
||||
red = "\x1b[0;31m"
|
||||
reset = "\x1b[0m"
|
||||
else:
|
||||
red = ""
|
||||
reset = ""
|
||||
|
||||
for file in args.files:
|
||||
lines = [l.rstrip("\n") for l in file.open().readlines()]
|
||||
|
||||
errors = []
|
||||
errors.extend(test_tab_indent(lines))
|
||||
errors.extend(test_tab_after_space(lines))
|
||||
errors.extend(test_trailing_whitespace(lines))
|
||||
if any(file.name.endswith(suffix) for suffix in [".c", ".h"]):
|
||||
if not file.parts[0] == "include":
|
||||
errors.extend(test_duplicate_empty_lines(lines))
|
||||
errors.extend(test_empty_line_between_braces(lines))
|
||||
|
||||
for e in errors:
|
||||
print(f"{red}ERROR: {e.message} in {file}:{reset}", file=sys.stderr)
|
||||
print(f"{'-' * 72}", file=sys.stderr)
|
||||
lineno = max(0, e.lineno - 5)
|
||||
for idx, l in enumerate(lines[lineno : lineno + 10]):
|
||||
if e.lineno <= lineno + idx < e.lineno + e.nlines:
|
||||
prefix = "->"
|
||||
hl = red
|
||||
nohl = reset
|
||||
else:
|
||||
prefix = " "
|
||||
hl = ""
|
||||
nohl = ""
|
||||
print(f"{hl}{lineno + idx:3d}: {prefix} {l.rstrip()}{nohl}")
|
||||
|
||||
print(f"{'-' * 72}", file=sys.stderr)
|
||||
|
||||
if errors:
|
||||
have_errors = True
|
||||
|
||||
if have_errors:
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
************************************************************************
|
||||
* This is the now defunct 'master' branch of the xserver repository. *
|
||||
* Ongoing development has moved to the 'main' branch instead. *
|
||||
************************************************************************
|
||||
|
||||
|
||||
X Server
|
||||
--------
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ project('xserver', 'c',
|
|||
)
|
||||
release_date = '2021-07-05'
|
||||
|
||||
error('\n This is the now defunct "master" branch of the xserver repository.',
|
||||
'\n Ongoing development has moved to the "main" branch instead.')
|
||||
|
||||
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue