Commit graph

114 commits

Author SHA1 Message Date
Robert Mader
9364282ebd gitlab-ci: Bump mesa from 25.3.0 to 25.3.2
The new color-representation-drm test occasionally crashes Mesa. Update
to the latest point release in case it helps.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-12-19 18:52:26 +01:00
Robert Mader
f7aa35e9d2 gitlab-ci: Bump wayland-protocols to 1.46
Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-12-19 17:08:29 +01:00
Marius Vlad
1e55fd2449 gitlab-ci: Bump CI to Trixie and LTS to bookworm
This includes a few changes, but given that we still want to bisect
things when they break I'm pulling some of the changes into a bigger change.

Here's a list of most noticeable that I had to address in order to make
this switch:

- added a PACKAGES_SPECIFIC env variable to able to pass different
  packages to each version. Some packages basically changed their names
  and need to pass a different name
- added USE_DEBIAN_BACKPORTS and use it when adding -backport apt
  sources for each Debian version
- llvm-19 now requires some additional packages for trixie
- add imghdr for sphinx for trixie
- had to keep use_tls=0 and modified the notes to point now to Trixie
  instead of Bookworm

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2025-12-16 11:46:39 +00:00
Robert Mader
42aeea2220 gitlab-ci: Bump kernel to 6.18
The first stable release with everything required to let our tests pass.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-12-10 13:18:14 +01:00
Marius Vlad
4b61e44ad1 gitlab-ci/leak-sanitizer: Add libpangoft2/glib to leak suppression
With the future bump to Trixie we have a few more leaks outside of the
Weston test suite. Add them to leak suppresion file.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2025-12-02 18:27:15 +02:00
Marius Vlad
87d2d3e442 gitlab-ci: Build mesa without GLX
And implicitly remove the need to build autoconf and libx11. Removed wget
and xutils-dev as those are not needed anymore.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2025-11-19 14:49:12 +02:00
Robert Mader
8da9b0baec gitlab-ci: Bump Mesa to 25.3.0
Let's use a stable release again, now that we can.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-11-17 16:39:10 +01:00
Daniel Stone
ec6c67780e ci: Quieten seatd output
seatd is working well, so the debug spew serves only to annoy people
trying to read the logs.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2025-10-14 19:10:27 +01:00
Robert Mader
5e7835bf2b ci: Bump kernel and Mesa version
1. Bump the kernel version to the drm-misc-next-2025-09-04 tag, fixing
   various issues required for vkms testing.

2. Use /sys/bus/faux/devices/vkms/drm/ instead of /sys/devices/platform/vkms/drm/
   for the card basename.

3. Bump Mesa to the commit needed for vkms+lavapipe. This also needs another
   leak workaround, so the code got a small cleanup.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-09-26 14:12:04 +02:00
Robert Mader
516e86222f gitlab-ci: Bump Mesa to 25.2.2
Notably including
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35915
which is needed for some upcoming MRs.
Returning to a proper release also makes it easier to understand
what we are testing against.

Mesa 25.2 requires Meson >= 1.4 and libX11 >= 1.8. The later requires
autoconf >= 2.70.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-09-09 11:14:41 +02:00
Robert Mader
68d036e2b1 gitlab-ci: Collapse Vulkan-Headers installation
Fixes: 7bc103e5a (gitlab-ci: Build Vulkan-Headers for CI)

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-09-09 11:14:41 +02:00
Leandro Ribeiro
3a1101be34 gitlab-ci: drop outdated comments related to virtme
Since "gitlab-ci: Use virtme-ng for running our tests" we no longer use
a hacky fork of virtme. Also, wee no longer use "--script-dir", as
virtme-ng properly supports "--script-sh".

So drop outdated comments.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
2025-08-01 11:30:23 -03:00
Erico Nunes
7bc103e5a1 gitlab-ci: Build Vulkan-Headers for CI
The version in Debian 11 (bullseye) is only slightly too old to build
vulkan-renderer.
We already build our own Mesa drivers to a newer version anyway, so it
should be possible to test vulkan-renderer in bullseye if it builds.
The actual Vulkan-Headers version here could actually be older and still
build, but was chosen to be same as in Debian 12 (bookworm) for now as
it is a tested version which has also been available for a while.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2025-07-21 12:09:54 +00:00
Deborah Brouwer
5db61f07aa gitlab-ci: Bump kernel from 6.3 to 6.14
Update the kernel used in CI from version 6.3 to 6.14.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-07-17 10:42:30 +03:00
Deborah Brouwer
624d8b2d3d gitlab-ci: Format gitlab logs for build-and-test.sh
Use the FDO_CI_BASH_HELPERS functions from ci-templates to format the
gitlab ci logs for build-and-test.sh. This adds collapsible sections to make
the overall log easier to read.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-07-17 10:42:30 +03:00
Deborah Brouwer
675bb24a57 gitlab-ci: Move build-and-test script to separate file
Move the script from the build-and-test job to a separate bash file.
This makes it easier to read the .gitlab-ci.yml file and to edit the bash
script.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-07-17 10:42:30 +03:00
Deborah Brouwer
a1360d72f4 gitlab-ci: Format gitlab logs for build-deps.sh
Use the FDO_CI_BASH_HELPERS functions from ci-templates to format the
gitlab ci logs for build-deps.sh. This adds collapsible sections to make
the overall log easier to read.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-07-17 10:42:30 +03:00
Deborah Brouwer
28f1dfae95 gitlab-ci: Remove CONFIG_DRM_KMS_FB_HELPER config
CONFIG_DRM_KMS_FB_HELPER was removed in v5.14, it doesn't hurt to have
it here, but removing it makes the code clearer.

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
2025-07-17 10:42:30 +03:00
Derek Foreman
e91eccd709 lua-shell: Add lua-shell
lua-shell is a new meta-shell for Weston. It does nothing in and of
itself, but is defined to be user-scriptable and configurable. A
supplied Lua script will be interpreted and executed by Weston, allowing
full control over window management in response to events.

This includes a shell.lua example script which behaves as a tiling WM.

Co-authored-by: Michael Tretter <m.tretter@pengutronix.de>
Co-authored-by: Marius Vlad <marius.vlad@collabora.com>
Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
2025-06-04 15:47:06 +03:00
Erico Nunes
df8af39a2a gitlab-ci: Create some jobs for Vulkan build coverage
Adjust the no-GL jobs to also do no-Vulkan and only create a couple more
to cover disabling the individual renderers.
Copy the hack for obscure LLVM leak reports so that tests can pass in CI
with lavapipe for a Vulkan driver.
Disable vulkan-renderer build on debian lts for now as unsupported.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2025-05-23 20:36:05 +01:00
Erico Nunes
60f7b59d8f gitlab-ci: Prepare base CI images for Vulkan build and tests
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2025-05-23 20:36:05 +01:00
Robert Mader
e476276bf6 gitlab-ci: Bump wayland-protocols to 1.44
Which we'll need soon, so reuse the image bump in the previous
commit.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-05-15 15:08:18 +03:00
Robert Mader
244f930365 gitlab-ci: Build with llvmpipe multiplanar YCbCr support
As well as fixes for broken packed YUYV variants.

Latest Mesa requires Meson >= 1.3.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-05-15 15:08:18 +03:00
Robert Mader
682d420b50 gitlab-ci: Build kernel with udmabuf support
With udmabuf we can write test for dmabuf paths in a similar
manner to shm. It's available by default in most recent distros
and thus works OOTB on developer setups.

Drop vgem as it isn't needed any more and makes the CI use
kms_swrast (instead swrast), which isn't compatible with the
llvmpipe dmabuf implementation yet.
Using swrast also streamlines CI with running tests locally,
making debugging easier.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-04-08 21:53:45 +00:00
Robert Mader
57f48ab91c gitlab-ci: Update Mesa for llvmpipe dmabuf support
llvmpipe now supports EGL_EXT_image_dma_buf_import, allowing
us to test zwp_linux_dmabuf_v1 on CI.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-04-08 21:53:45 +00:00
Robert Mader
9675ef49f2 gitlab-ci: Update Meson
And clean up accordingly. This is required for the following commit.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-04-08 21:53:45 +00:00
Robert Mader
9f21128d78 gitlab-ci: Rebuild image with libdisplay-info to 0.2.0
Next we are going to make libdisplay-info 0.2.0 a hard requirement.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-03-06 18:34:57 +00:00
Robert Mader
de6f0b870a gitlab-ci: Bump wayland-protocols to 1.41
Disable tests as they require wayland-scanner 1.23.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
2025-02-17 17:42:13 +00:00
Derek Foreman
bdfe7a3e58 libweston: Add support for perfetto profiling
This borrows heavily from the Mesa project's perfetto instrumentation, and
for now just adds perfetto to the build and a collection of useful macros
for adding trace points.

The atomics have been cargo culted in - Weston currently has no need of
such things, but I guess they're harmless for now and could be useful if
we consider threads in the future.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
2025-01-24 12:22:13 +00:00
Marius Vlad
fe35be5013 gitlab-ci: Bump libdrm to 2.4.118 to add NV{15,20,30} fmts
And add ifndef guards for cases were do have support for it.

While at it I need to change how we build it due to:

'meson.build:21:0: ERROR: Value "false" (of type "string") for combo
option "Enable support for vc4's KMS API." is not one of the choices.
Possible choices are (as string): "enabled", "disabled", "auto".'

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2024-11-04 16:40:46 +02:00
Benjamin Herrenschmidt
89f3a8a71e Add support for FreeRDP 3.x
With this, Weston can build against either FreeRDP 3.x or 2.x depending
on what has been detected by meson (3.x takes priority).

The main source of changes is the settings are now opaque and require the
use of accessors. That was pretty mechanical and seems to work on 2.x as
well.

There are a few changes around constants getting a WINPR_ prefix, the UTF
conversion functions we used are obsolete, so use the proper "new" ones,
and other fairly minor things.

The key & cert management changed rather completely, libfreerdp won't load
files for us, we have to use the helpers to do so, and I *think* the RDP RSA
key and SSL key use the same setting location. Seems to work with SSL at
least.

There was also a minor glitch with keyboard input, KBD_FLAGS_DOWN is basically
never set. It appears to be an upstream FreeRDP change in 3.x, it was being
set incorrectly (always on any key down) while it should only be set on
repeats. However the fastpath input code has no way to set it from what I
can tell, so it's just loss. We instead ignore it.

Note that the screen size is odd (and different between freerdp client and
remmina), it also won't adjust dynamically when the window is resized. I
don't think this relates to my port though, I observe the same behaviour
with the packaged FreeRDP 2 based Weston, but I can try to look into it
later

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2024-08-14 12:29:28 +10:00
Marius Vlad
6449ee9dae gitlab-ci: Use virtme-ng for running our tests
virtme-ng is the an update version of virtme, and this patch uses
that instead of the one we had partially modified.

Besides that this partially reverts ad039cdfd2, 'backend-drm: Enable
atomic async flip support' and makes our CI happier. Specifically
ad039cdfd2 updated our kernel version from 6.3 to 6.9 but did not do
a FDO bum,p and with that, no container images were rebuilt. Effectively
we were still using 6.3.

Now, with the FDO bump, in this patch, we noticed that the drm-writeback
test is failing with linux kernel version 6.9.

So far, only 6.3 and 6.4 kernel versions seems to be working, that is,
without that drm writeback test timing out. The safest bet for the
time being, would be to keep our CI just use 6.3 kernel, until we
have proper version to update to.

Signed-off-by: Daniel Stone <daniel.stone@collabora.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2024-08-02 20:06:25 +03:00
Naveen Kumar
ad039cdfd2 backend-drm: Enable atomic async flip support
Since DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP capability is available in the
mainline kernel, now we should enable back tearing support.

v2:

 - Bump kernel version to 6.9
 - include the fallback definitions

Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Derek Foreman <derek.foreman@collabora.com>
Signed-off-by: Naveen Kumar <naveen1.kumar@intel.com>
2024-05-28 09:33:51 +00:00
Daniel Stone
a7b54706b5 CI: Add another thread leak
This pops up on Fedora 40 for me, caused by the change to ignore TLS for
LSan.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2024-04-16 15:19:10 +01:00
Pekka Paalanen
3179e0f0e0 CI: work around LeakSanitizer crashes with use_tls=0
Without this fix, we have randomly been getting CI failures due to
LeakSanitizer itself crashing after all the tests in a program have
succeeded. This has been happening randomly for a long time, but
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1486
made it very reliably repeatable in the job x86_64-debian-full-build
(and no other job) in the test-subsurface-shot program.

--- Fixture 2 (GL) ok: passed 4, skipped 0, failed 0, total 4
Tracer caught signal 11: addr=0x1b8 pc=0x7f6b3ba640f0 sp=0x7f6b2cc77d10
==489==LeakSanitizer has encountered a fatal error.

I was also able to get a core file after twiddling, but there it ended
up with lsan aborting itself rather than a segfault.

We got some clues that use_tls=0 might work around this, from
https://github.com/google/sanitizers/issues/1342
https://github.com/google/sanitizers/issues/1409
and some other projects that have cargo-culted the same workaround.

Using that cause more false leaks to appear, so they need to be
suppressed. I suppose we are not interested in catching leaks in glib
using code, so I opted to suppress g_malloc0 altogether. Pinpointing it
better might have required much more slower stack tracing.

wl_shm_buffer_begin_access() uses TLS, so no wonder it gets flagged.

ld-*.so is simply uninteresting to us, and it got flagged too.

Since this might have been fixed already in LeakSanitizer upstream, who
knows, leave some notes to revisit this when we upgrade that in CI.

This fix seems to make the branch of
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1486
in my quick testing.

Suggested-by: Derek Foreman <derek.foreman@collabora.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2024-04-09 17:29:00 +03:00
Leandro Ribeiro
39ada71cb3 gitlab-ci: build and install LittleCMS version 2.16
When using some features from LittleCMS in our CI, we are seeing some
crashes on the address sanitizer. Bumping the LittleCMS version fixes
that. So build and install a more recent version of LittleCMS on our CI.

We chose version 2.16 because it introduces the function
cmsGetToneCurveSegment(). We already make extensive use of that in our
codebase, so it is a good idea to have that on our CI as well.

Now color-curve-segments.c will start to get build on the CI, as
HAVE_CMS_GET_TONE_CURVE_SEGMENT will be true. So we also fix a minor
issue in which we were comparing int with uint in this file, what was
caught after experimenting bumping the LittleCMS version.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
2024-02-14 12:13:04 -03:00
Robert Mader
be201fc204 gitlab-ci.yml: Bump wayland-protocols to 1.33
Signed-off-by: Robert Mader <robert.mader@collabora.com>
2024-01-19 18:59:22 +01:00
Philipp Zabel
8895b15f3d ci, backend-vnc: update to Neat VNC 0.7.0
Neat VNC 0.7.0 supports desktop resizing.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2023-10-05 11:00:12 +02:00
Derek Foreman
754562fb52 Revert "launcher: Remove launcher-logind"
This reverts commit 55bf6b5046.

This accidentally removed things that should have stayed - libseat
can still use the logind API, even if weston doesn't directly use
it.

Note that the logind-launcher does not actually build anymore
because breaking changes landed before this revert.

Since we're removing it again right away, I've not taken care to
fix that.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
2023-09-29 09:46:48 -05:00
Derek Foreman
55bf6b5046 launcher: Remove launcher-logind
This has been deprecated and non-default for a full release cycle, so
we're going to remove it now.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
2023-09-28 06:47:06 +00:00
Daniel Stone
68fd41a719 CI: Remove per-test-asan wrapper
Now that we've concluded the Xwayland/fontconfig stuff, we don't
actually need a per-test wrapper; we can just set the options globally.

It turns out that we don't need to set the options at all anyway, since
the previous commit adds the LSan suppressions to all test runs, and
LSan is enabled by default, so we can just bin it.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-22 14:31:57 +01:00
Daniel Stone
7c8685769d CI: Enable ASan memory-leak checking
Now that we clean up everything to do with wet_process, we can enable
memleak checking in CI.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 21:32:47 +01:00
Daniel Stone
2a9f7aabdb CI: Require wayland 1.22 for wl_client_add_destroy_late_listener
We need this in coming patches.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 21:32:46 +01:00
Daniel Stone
0e4aa29e4b CI: Upgrade Mesa and kernel
Debian bookworm needs a newer version of Mesa to build against LLVM 15.
Upgrade Mesa and the kernel whilst we're at it, just to make sure that
things keep working.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 20:09:03 +00:00
Daniel Stone
64ae26702d CI: Bump virtme snapshot version
Apparently qemu upstream has deprecated -watchdog and just uses the more
generic -device now.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 20:09:03 +00:00
Daniel Stone
c2d5199937 CI: Force pip to install packages
Newer versions of Debian make you pass --break-system-packages to pip in
order for it to install packages. Since we do want to keep using pip for
controlled versions rather than the distribution packages, add this
flag.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 20:09:03 +00:00
Daniel Stone
ef55d79727 CI: Parameterise LLVM version
Signed-off-by: Daniel Stone <daniels@collabora.com>
2023-06-19 20:09:03 +00:00
Marius Vlad
f043ad3647 virtme-scripts: Add LSAN_OPTION
In preparation of turning mem leak detection on in CI, this patch adds
LSAN_OPTIONS to be able to pass the suppression file.

This *does not* turn the mem leak detection on yet, as we still
need some additional mem leak fixes.

This removes fast unwind set to zero as well, as that will add a massive
runtime penalty to some of our tests, and we'll no longer need it as
we've included the entire libfontconfig as a mem leak source in the
suppression file.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2023-06-07 13:44:15 +03:00
Marius Vlad
55a6216a5d gitlab-ci/leak-sanitizer.supp: Suppress entire libfontconfig
As we can't really use `cleanup_after_cairo()` in our headless backend,
add more leak suppression entry, found while running the entire
test suite.

FcConfigSubstituteWithPat was already added (which seems to be main
source) but found a couple of more while running the entire suite.

The issue is that we need to set fast unwind to zero in order track
those leaks but that would result into some massive runtime penalty and
we get into the issue of timing out some of the tests.

So rather than doing that, just add the entire libconfig library and be
done with it. With it, this removes any pango/cairo former symbols as
that seems to catch all other leaks as well.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2023-06-07 13:38:31 +03:00
Pekka Paalanen
1605a6a747 CI: install libdisplay-info
DRM-backend will want to use this.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2023-04-28 15:57:46 +03:00