Buildability of the Xorg drivers

Alan Coopersmith alan.coopersmith at oracle.com
Mon Jan 31 00:16:00 UTC 2022


I've now finished going through the unarchived drivers under
https://gitlab.freedesktop.org/xorg/driver
to try to get them to all have at least a simple CI build in gitlab.

It will probably not surprise folks that a fair number of the drivers would
not build when I tried this.  Some I got building again with simple fixes
(though I have no hardware to test these, so can only claim that they
build - they may or may not work), others still need some help or may be
ready for archiving if no one wants to make them build again.

There are currently 62 repos there - 9 input & 53 video. Of those,
46 (8 input, 38 video) now have at least basic CI set up in gitlab,
where "basic" is "builds on Arch Linux against stable Xorg package".
(For those who want more, see the xf86-video-ati & xf86-video-amdgpu
  repos for examples of doing a variety of different builds, or the
  xf86-input-keyboard & -mouse drivers for building on FreeBSD instead.)

These did not get CI added yet:

xf86-input-vmmouse
xf86-video-vmware
   - do not allow merge requests

xf86-video-armsoc
xf86-video-freedreno
xf86-video-intel
   - I wasn't sure what the status of these was

xf86-video-geode
   - CI doesn't build - it appears this is because our CI environment is 64-bit,
     but this driver has assembly that only builds 32-bit:
     https://gitlab.freedesktop.org/alanc/xf86-video-geode/-/jobs/17946381
     (which as I recall makes sense, given the hardware was embedded in 32-bit
      x86 CPUs)

xf86-video-glint
   - Doesn't build due to the removal of ramdac drivers from Xorg:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-glint/-/issues/1

xf86-video-impact
   - Doesn't build due to the removal of XAA in January 2012(!), but there is
     a pending MR to fix that:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-impact/-/merge_requests/1

xf86-video-mach64
   - Doesn't build due to the rename of bool to boolean in OptionInfoRec, but
     there is a pending MR to fix that:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-mach64/-/merge_requests/4

xf86-video-newport
   - Doesn't build due to the removal of XAA in January 2012 / Xorg 1.13, as
     reported in August 2012:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-newport/-/issues/1
     Time to archive?

xf86-video-omap
   - Doesn't build since CI can't find libdrm_omap (presumably because it's not
     enabled by default in the libdrm build, but only on request)

xf86-video-opentegra
   - Doesn't build due to multiple API breaks:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-opentegra/-/issues/1
     Seems abandoned since last release in July 2014.

xf86-video-qxl
   - Doesn't build due to the rename of bool to boolean in OptionInfoRec in
     Xorg 21, but there is a pending MR to fix that:
     https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/-/merge_requests/6

xf86-video-s3
   - Doesn't build due to the removal of ramdac drivers from Xorg, including
     "IBM.h" and "TI.h"

xf86-video-tga
   - Doesn't build due to the removal of ramdac drivers from Xorg, including
     "BT.h"

xf86-video-wsfb
   - This requires system headers available only on NetBSD & OpenBSD, but
     the only BSD we have a build template for so far is FreeBSD.

Most of those have a CI setup in the merge requests ready to go once someone
gets them to build properly.

_________________________________________________________________________________

These were not building when I first tried, but are building now after some
simple fixes (again, untested so may not run/work well!), and have CI set up
now:

xf86-video-suncg14
xf86-video-suncg3
xf86-video-suncg6
xf86-video-sunffb
xf86-video-sunleo
xf86-video-suntcx
xf86-video-xgixp
   - Either removed the #include of "xf86RamDac.h" as unneeded or replaced it
     with a direct include of "xf86Cursor.h" that it had indirectly included.

xf86-video-s3virge
   - Created a patch based on ajax's fix to the rendition driver to stop using
     maxHValue and maxVValue from ScrnInfoRec that were removed in Xorg 1.20.

xf86-video-tseng
   - Applied patch submitted in a bug report to stop using maxHValue and
     maxVValue from ScrnInfoRec that were removed in Xorg 1.20.

xf86-video-xgi
   - Added "extern" to variable declarations in xgi_accel.h to resolve multiple
     declaration errors since CI uses a gcc new enough to default to -fno-common

That these build today is of course not a promise of ongoing maintenance, and
some of these may still be candidates for archiving.

-- 
         -Alan Coopersmith-                 alan.coopersmith at oracle.com
          Oracle Solaris Engineering - https://blogs.oracle.com/solaris


More information about the xorg-devel mailing list