Commit graph xserver/.github/scripts/hurd
Author SHA1 Message Date
Enrico Weigelt, metux IT consult
a3b152c165 CI/hurd: pin git/git-man to unreleased when the sid toolchain is unresolvable
Some checks failed
Build X servers / drivers-build-ubuntu (video-siliconmotion:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sis:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sisusb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg14:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
debian-ports can briefly hold an inconsistent sid/unreleased state for
hurd-amd64: the arch:all git-man moves ahead (currently 2.55.0-1) while the
hurd git binary lags (2.51.0-1 in sid, 2.53.0-1+hurd.1 in unreleased). Plain
`apt-get install git` then fails hard:

    git:hurd-amd64=1:2.53.0-1+hurd.1 Depends git-man (< 1:2.53.0-.)
    but none of the choices are installable
    E: Unable to satisfy dependencies.

apt picks the newer arch:all git-man from sid over the coherent unreleased
pair, so git's `git-man (<< 1:2.53.0-.)` constraint can never be satisfied.
This breaks every xserver-build-hurd run until the ports buildd catches up
(affects all PRs, not any specific change).

Work around it: retry the toolchain install with git/git-man pinned to
unreleased when the plain install fails. Remove this fallback once the ports
buildd rebuilds git for hurd-amd64.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-08-04 13:30:25 +02:00
Enrico Weigelt, metux IT consult
06d4b6d0cc licensing: add SPDX AGPL-3.0-or-later headers to .github/ files authored by Enrico Weigelt
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
All 47 files in .github/ (actions, arch, docker, scripts, workflows)
that were originally authored by Enrico Weigelt and don't end up in
the final X server binary now carry SPDX-License-Identifier headers.

File .github/scripts/ubuntu/run-pyxtest-valgrind.sh already had the
AGPL-3.0-or-later header — left as-is.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-28 17:53:55 +02:00
Enrico Weigelt, metux IT consult
b37fd20a2d hurd: build every Hurd-capable X server by default in CI
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
The GNU/Hurd lane added earlier built only the virtual DDXes (Xvfb +
Xnest). The other servers that build on GNU/Hurd have since been
confirmed in CI, so make them all part of the lane's FATAL build, in one
meson run in the existing xserver-build-hurd job (parallel with the other
platform lanes, no separate workflow; ~12 min in the VM):

  - Xvfb, Xnest  virtual DDXes
  - Xorg         the physical xfree86 server (libpciaccess has a Hurd
                 backend, so the PCI layer configures/links)
  - Xephyr       kdrive server running as an X client over XCB
  - glx          the GLX extension (builds without libdrm)

A regression breaking any of them now fails CI. All five link cleanly
(hw/xfree86/Xorg, hw/kdrive/ephyr/Xephyr, hw/vfb/Xvfb, hw/xnest/Xnest,
hw/xfree86/dixmods/libglx.so).

Kept off because Hurd has no DRM kernel interface:
  - dri1/dri2/dri3 — libdrm's <drm.h> pulls a nonexistent
    mach/x86_64/ioccom.h
  - glamor — glamor_egl.c needs DRM_FORMAT_MOD_INVALID + GBM, and GBM
    needs DRM; confirmed non-buildable on Hurd
And Xfbdev (kdrive fbdev): it builds hw/kdrive/linux, which needs Linux
VTs (<linux/vt.h>) and would require a dedicated Hurd kdrive backend.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-01 09:57:08 +02:00
Enrico Weigelt, metux IT consult
18d94c4ced .github: add GNU/Hurd VM build lane (Xvfb + Xnest)
Some checks failed
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / xserver-build-arch (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
There is no vmactions GNU/Hurd VM, so this hand-rolls one on the ubuntu
runner: it fetches Debian's pre-installed Hurd amd64 image, injects an
ssh key and routes the guest console to serial, then boots it in QEMU
and builds the X server inside via ssh.

Key gotchas baked into the scripts:

  - The amd64 Hurd image uses rumpdisk for SATA, so the disk must be
    attached via q35 + an ich9-ahci AHCI controller (the default i440fx
    IDE disk yields an ext2fs I/O error and never boots).
  - gnumach only boots single-CPU (no -smp).
  - GRUB and gnumach log to VGA only; the grub.cfg is patched to add a
    serial console so the boot is visible under -nographic.
  - /dev/kvm exists on GH runners but isn't accessible to the runner
    user; chmod 666 it (falls back to TCG if unavailable).
  - VM boot can flake transiently, so boot is retried up to 3x.

Inside the VM the toolchain (git, meson, ninja, pkg-config) install is
fatal; the X protocol libs are best-effort, and the server is configured
for the parts that build on Hurd today: -Dxvfb=true -Dxnest=true with
xorg/xephyr/glx/dri/udev/logind disabled.

Runs in ~10.5 min and is wired into the primary "Build X servers"
workflow alongside the other platform lanes.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-30 14:08:02 +02:00