Skip to content
31 changes: 6 additions & 25 deletions .github/workflows/build-xserver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ jobs:
GALLIUM_DRIVER: llvmpipe
PIGLIT_PLATFORM: x11_egl
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
steps:
- name: Check out repository code
uses: actions/checkout@v4
Expand Down Expand Up @@ -89,7 +88,6 @@ jobs:
GALLIUM_DRIVER: llvmpipe
PIGLIT_PLATFORM: x11_egl
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
steps:
- name: Check out repository code
uses: actions/checkout@v6
Expand Down Expand Up @@ -217,7 +215,6 @@ jobs:
GALLIUM_DRIVER: llvmpipe
PIGLIT_PLATFORM: x11_egl
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
steps:
- name: Check out repository code
uses: actions/checkout@v6
Expand Down Expand Up @@ -259,7 +256,6 @@ jobs:
env:
MESON_ARGS: --buildtype=debug -Dprefix=/usr -Dxorg=false -Dxvfb=true -Dxnest=false -Dxephyr=false -Dwerror=true
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
steps:
- name: Check out repository code
uses: actions/checkout@v6
Expand Down Expand Up @@ -470,7 +466,6 @@ jobs:
runs-on: ubuntu-latest
env:
MESON_ARGS: -Dprefix=/home/runner/x11 --cross-file=.github/scripts/mingw32/cross-i686-w64-mingw32.txt -Dwerror=true -Dglx=false -Dlisten_tcp=true -Dxvmc=true -Dxv=true -Dxvfb=true -Dxnest=true -Dxephyr=true -Dxfbdev=false
needs: ubuntu-fetch-pkg
steps:
- name: Check out repository code
uses: actions/checkout@v6
Expand Down Expand Up @@ -566,14 +561,12 @@ jobs:

xserver-build-freebsd:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
timeout-minutes: 90
env:
MYTOKEN : ${{ secrets.MYTOKEN }}
MESON_ARGS: -Dprefix=/usr -Dxephyr=true -Dwerror=true -Dxcsecurity=true -Dxorg=true -Dxvfb=true -Dxnest=true -Dxfbdev=false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ubuntu-pkg-cache

# VM boot / image provisioning flakes transiently; retry the whole
# VM step up to 3x, tearing down the leftover domain between tries
Expand Down Expand Up @@ -623,13 +616,11 @@ jobs:

xserver-build-dragonflybsd:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
timeout-minutes: 90
env:
MESON_ARGS: -Dwerror=true -Dxephyr=true -Dxorg=true -Dxvfb=true -Dxnest=true -Dxfbdev=false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ubuntu-pkg-cache

# VM boot / image provisioning flakes transiently; retry the whole
# VM step up to 3x, tearing down the leftover domain between tries
Expand Down Expand Up @@ -680,26 +671,24 @@ jobs:

xserver-build-netbsd:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
timeout-minutes: 90
env:
MESON_ARGS: -Dwerror=true -Dxephyr=true -Dxorg=true -Dxvfb=true -Dxnest=true -Dxfbdev=false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ubuntu-pkg-cache

# VM boot / image provisioning flakes transiently; retry the whole
# VM step up to 3x, tearing down the leftover domain between tries
# (see .github/actions/libvirt-cleanup).
- name: run in netbsd VM (attempt 1)
id: netbsd-1
continue-on-error: true
uses: vmactions/netbsd-vm@v1.2.3
uses: vmactions/netbsd-vm@v1.5.0
with:
envs: 'MESON_ARGS'
usesh: true
release: '10.1'
run: ./.github/scripts/netbsd/run-xserver-build.sh
sync: rsync

- name: cleanup stale VM before retry
if: steps.netbsd-1.outcome == 'failure'
Expand All @@ -711,12 +700,12 @@ jobs:
id: netbsd-2
if: steps.netbsd-1.outcome == 'failure'
continue-on-error: true
uses: vmactions/netbsd-vm@v1.2.3
uses: vmactions/netbsd-vm@v1.5.0
with:
envs: 'MESON_ARGS'
usesh: true
release: '10.1'
run: ./.github/scripts/netbsd/run-xserver-build.sh
sync: rsync

- name: cleanup stale VM before final retry
if: steps.netbsd-1.outcome == 'failure' && steps.netbsd-2.outcome == 'failure'
Expand All @@ -726,25 +715,23 @@ jobs:

- name: run in netbsd VM (attempt 3)
if: steps.netbsd-1.outcome == 'failure' && steps.netbsd-2.outcome == 'failure'
uses: vmactions/netbsd-vm@v1.2.3
uses: vmactions/netbsd-vm@v1.5.0
with:
envs: 'MESON_ARGS'
usesh: true
release: '10.1'
run: ./.github/scripts/netbsd/run-xserver-build.sh
sync: rsync

# illumos / Solaris build, run in an OpenIndiana VM (vmactions, same
# mechanism as the BSD jobs above). Exercises the Solaris-specific os/ code
# paths (procfs/psinfo, the sunos meson branch) that no other CI covers.
# OpenIndiana packages the full X stack incl. Mesa, so GLX stays enabled.
xserver-build-solaris:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
env:
MESON_ARGS: -Dwerror=true -Dxvfb=true -Dxnest=true -Dxorg=false -Dxephyr=false -Dxfbdev=false -Ddrm=false -Ddri1=false -Ddri2=true -Ddri3=true
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ubuntu-pkg-cache
- name: run in OpenIndiana (illumos) VM
id: vm
uses: vmactions/openindiana-vm@v1
Expand All @@ -763,13 +750,11 @@ jobs:
# (direct rendering needs a working DRM/KMS, n/a in the headless VM).
xserver-build-openbsd:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
timeout-minutes: 90
env:
MESON_ARGS: -Dwerror=true -Dxvfb=true -Dxnest=true -Dxorg=false -Dxephyr=false -Dxfbdev=false -Ddri2=false -Ddri3=false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/ubuntu-pkg-cache

# VM boot / image provisioning flakes transiently; retry the whole
# VM step up to 3x, tearing down the leftover domain between tries
Expand Down Expand Up @@ -816,7 +801,6 @@ jobs:

xserver-build-hurd:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
timeout-minutes: 120
env:
REPO: ${{ github.repository }}
Expand All @@ -832,7 +816,6 @@ jobs:

xserver-build-alpine:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
container:
image: alpine:latest
env:
Expand All @@ -859,7 +842,6 @@ jobs:
# edits the Dockerfile automatically gets a fresh image — no waste and no
# staleness. :latest is only moved by master.
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -905,7 +887,6 @@ jobs:

xserver-build-rhel:
runs-on: ubuntu-latest
needs: ubuntu-fetch-pkg
strategy:
fail-fast: false
matrix:
Expand Down
6 changes: 4 additions & 2 deletions glamor/glamor_transfer.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,14 @@ glamor_upload_boxes(DrawablePtr drawable, BoxPtr in_boxes, int in_nbox,
f->format, f->type,
src_line);
} else {
for (; y1 < y2; y1++, src_line += byte_stride / bytes_per_pixel)
uint8_t *src = (uint8_t*)src_line;
for (; y1 < y2; y1++, src += byte_stride) {
glTexSubImage2D(GL_TEXTURE_2D, 0,
x1 - box->x1, y1 - box->y1,
x2 - x1, 1,
f->format, f->type,
src_line);
src);
}
}
}
}
Expand Down
7 changes: 1 addition & 6 deletions hw/xfree86/os-support/bsd/console_syscons.c
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
/* SPDX-License-Identifier: X11 OR MIT OR AGPL-3.0-or-later */
/* Copyright (C) 2026 Enrico Weigelt, metux IT consult <info@metux.net> */
#if defined(SYSCONS_SUPPORT) && (defined(__FreeBSD__) || defined(__DragonFly__))
#include <xorg-config.h>

#if defined(SYSCONS_SUPPORT)

#if defined(__FreeBSD__) || defined(__DragonFly__)
#include <sys/consio.h>
#include <sys/kbio.h>
#endif

#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
Expand Down
7 changes: 5 additions & 2 deletions include/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -422,8 +422,11 @@ xorg_data.set('WSCONS_SUPPORT',
# macros are kept for backwards compatibility with existing drivers.
xorg_data.set('CONFIG_BSD_CONSOLE', '1')
xorg_data.set('CSRG_BASED', '1')
xorg_data.set('PCVT_SUPPORT', '1')
xorg_data.set('SYSCONS_SUPPORT', '1')
# PCVT and SYSCONS are FreeBSD/DragonFly specific; NetBSD/OpenBSD use wscons
if host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly'
xorg_data.set('PCVT_SUPPORT', '1')
xorg_data.set('SYSCONS_SUPPORT', '1')
endif
# WSCONS_SUPPORT is already set above for netbsd/openbsd

xorg_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h') ? '1' : false)
Expand Down
2 changes: 2 additions & 0 deletions include/xf86_OSlib.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,10 @@
#include <machine/console.h>
#endif /* FreeBSD 4.1 RELEASE or lator */
#else
#if !defined(__NetBSD__) && !defined(__OpenBSD__)
#include <sys/console.h>
#endif
#endif
#endif /* SYSCONS_SUPPORT */
#if defined(PCVT_SUPPORT) && !defined(__NetBSD__) && !defined(__OpenBSD__)
#if !defined(SYSCONS_SUPPORT)
Expand Down
Loading