Enabling gitlab CI across all the X.Org repos

Alan Coopersmith alan.coopersmith at oracle.com
Tue Aug 2 22:19:12 UTC 2022


Since late last year, I've been going through the Xorg projects on gitlab
and making sure they have a basic CI setup for incoming merge requests.
Mostly they run "gmake distcheck" (or the equivalent), some basic checks
on the commit message & merge request, and the static analysis provided by
gitlab (which varies by source code language).  I think I've finished this
now for all the repositories that it should be done for (and probably some
that didn't really need it).

By my count, there are currently 265 non-archived gitlab projects in the Xorg
namespace (not counting the "meta" project which has no git repo) - a list is
at https://gitlab.freedesktop.org/-/snippets/6834 .

These projects do not have gitlab CI set up yet:

app/constype               - requires either SPARC or Solaris/x86 to build
app/fdclock                - appears abandoned, no commits since 2007
app/mdm                    - appears abandoned, no commits since 2008
app/quartz-wm              - requires MacOS to build
app/xresponse              - appears abandoned, no commits since 2007
app/xshowdamage            - appears abandoned, no commits since 2006
driver/xf86-input-vmmouse  - merge request !1 submitted
driver/xf86-video-armsoc   - appears abandoned, no commits since 2016
driver/xf86-video-freedreno - appears abandoned, no commits since 2017
driver/xf86-video-geode    - build requires 32-bit, our CI is 64-bit - see !2
driver/xf86-video-glint    - doesn't build due to the removal of ramdac - see !1
driver/xf86-video-impact   - doesn't build due to the removal of XAA - see !2
driver/xf86-video-intel    - I believe Intel runs their own CI outside gitlab
driver/xf86-video-newport  - doesn't build due to the removal of XAA  - see !1
driver/xf86-video-opentegra - doesn't build due to multiple API breaks - see #1
driver/xf86-video-s3       - doesn't build due to the removal of ramdac - see !1
driver/xf86-video-tga      - doesn't build due to the removal of ramdac - see !1
driver/xf86-video-vmware   - merge request !2 submitted
driver/xf86-video-wsfb     - requires headers available only on NetBSD & OpenBSD
                              to build - see !1
lib/libAppleWM             - requires MacOS to build - see !1
lib/libXrandrUtils         - appears abandoned, no commits since 2012
util/install-check         - appears abandoned, no commits since 2007
util/modular               - does not have build process to run in CI

(See https://lists.freedesktop.org/archives/xorg-devel/2022-January/058800.html
  for more info on the driver subset.)

Of those with CI setup, these do not include the Security/SAST.gitlab-ci.yml
template to enable static analysis:
data/* & most of font/*    - data & font files, not source code, thus
                              nothing to analyze
driver/xf86-video-amdgpu   - submitted in !78
lib/libxcvt                - I'm not quite sure how to add it here given
                              the unusual CI template setup for this repo
xserver                    - submitted in !947

Unfortunately, without the expensive version of gitlab, the CI results are
just provided as "gl-sast-report.json" files to download & parse, not in a
human-friendly format, but they are at least available to those who want to
take a look.

Partway through this effort, a discussion on #xorg-devel IRC led me to stop
including the check for Signed-off-by: tags in the commits, but I've not
gone back to remove it from all the ones I'd done by that point - it's still
in 163 of the .gitlab-ci.yml files, but it's easy to remove when needed:
https://gitlab.freedesktop.org/xorg/driver/xf86-video-nv/-/commit/adbd442a21ab67

As long as I'm running stats against all these repos, some more interesting
numbers for our 265 projects:
- 255 have a configure.ac file to build with GNU autotools
-  13 have a meson.build file to build with meson
       (5 are meson only, 8 have both meson & autotools support)
-   3 just have Makefiles (mdm, install-check, xshowdamage)
-   2 have no build method (util/modular & xcb-util-m4)

Hopefully having CI setup will help make meson conversions easier.
(For those doing such conversions, see the xproto or libXvMC .gitlab-ci.yml
  for examples on running both builds during the transition period.)

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


More information about the xorg-devel mailing list