This is the alpha release for Weston 10.0.0. It's been a while since the previous release, so Weston 10.0.0 will contain a whole bunch of new features and improvements. Here are some highlights:
- Add building blocks for color management: color transformations, gamma correct blending, color profiles. - Add feedback to linux-dmabuf-unstable-v1, enabling zero-copy scanout in more situations. - libseat support has been added. It will supersede all launchers in a future release. - The test suite has been expanded. - All example clients have been converted to xdg-shell. - Weston can now automatically launch a client after startup. Notes for packagers: - libdrm 2.4.95, libwayland 1.18.0 and wayland-protocols 1.24 are now required. - libpipewire 0.3 is required for the PipeWire remoting plugin. - Support for the deprecated wl_shell interface is now disabled by default (it will be removed in a future release, re-enable it with the Meson option -Ddeprecated-wl-shell=true). - A KMS driver supporting universal planes is now required for the DRM backend. Thanks to all contributors! Full commit history below. Alexandros Frantzis (4): input: Use cursor surface dimensions to evaluate presence of content tests: Store the pointer event serial tests: Add shot test for pointer cursor behavior backend-drm: Clear drm_output cursor_view when view is destroyed Alvarito050506 (3): gitignore: Ignore the build/ directory. compositor: Move `child_process_list` from global to `wet_compositor`. compositor: Added autolaunch support. Alyssa Ross (2): terminal: use /bin/sh as the default shell clients: don't use deprecated fontconfig aliases Ambareesh Balaji (1): pipewire: fix null deref in 0.3 API Anurup M (4): desktop-shell: Add missing weston_config_destroy() for desktop.config doc: Avoid weston install useless documentation files compositor: Fix possible memory leak when wl_display_create() fails launcher: Add more error logging to launcher backends Bastian Krause (1): backend-drm/state-propose: print format instead of *pixel_format_info address Chen Qi (1): backend-wayland: fix incorrect header Christian Rauch (1): destroy shm, pointer, keyboard, touch and seat on exit Damian Wrobel (1): compositor: Improve logging message Daniel Stone (54): drm/state-propose: Remove unused planes_region member drm/state-propose: Remove special casing for cursor plane drm/state-propose: Reduce variable scope drm/state-propose: Fix fix typo typo drm/state-propose: Flatten and clarify control flow CI: Run Pages build on main drm/state-propose: Remove unnecessary check CI: Use larger timeout multiplier for ASan tests CI: Quieten virtme kernel output CI: Use FDO_CI_CONCURRENT xdg-shell: Move check for surface having buffer earlier xdg-shell: Fail xdg_surface creation when surface has role ci: Switch to using new rules syntax drm/vaapi: Fix pointer-size confusion Bump wayland-protocols dependency to 1.19 CI: Use appropriate parallelism for container builds CI: Build wayland-protocols in container CI: Don't rebuild when running tests CI: Document the build and container process CI: Rename job names to keep parameters first CI: Deduplicate $PATH CI: no-test jobs don't need KVM CI: Start parameterising for OS/architecture CI: Consolidate kernel/Mesa dependency installation CI: Split OS-independent section from debian-install.sh ci: Bump Meson to 0.57.1 CI: Use Meson to build Wayland CI: Use 'needs' to make dependencies more clear CI: Parameterise kernel build a bit more CI: Add initial AArch64 support CI: Add full AArch64 KVM support CI: Add ARMv7 support CI: Separate build types out into stages gl-renderer: Fix sign confusion in format/modifier query backend-headless: Fix pointer vs. int confusion with EGL tests: Bump alignment for test structures to 64 bytes ci: Work around PipeWire build warning with Clang ci: Remove erroneous extension from .build-no-test ci: Add clang build jobs ci: Clean up Wayland build directory ci: Use a non-conflicting directory for PipeWire clone CI: Upgrade kernel to v5.14 ci: Move Debian from Buster to Bullseye remoting: Fix warnings for multi-planar interface backend-x11: Fix EGL compile warning simple-egl: Avoid 30bpc configs tests: Serialise drm-smoke-test against everything else content-protection: Don't leak update timer on shutdown backend-drm: Free scanout format table after use backend-drm: Early-out in plane assignment for unimportable buffers backend-drm: Move drm_fb reference to state-propose backend-drm: Move fb -> buffer reference to plane state backend-drm: Cache drm_fb for each weston_buffer backend-drm: Cache fb<->plane format compatibility list David Fort (2): rdp-backend: unify creation of pixman_renderer_output rdp-backend: require FreeRDP >= 2.2 to remove all the version hacks Dennis Tsiang (1): gl-renderer: Don't require buffer age when using partial update Denys Dmytriyenko (1): tests: include fcntl.h for open(), O_RDWR, O_CLOEXEC and O_CREAT Derek Foreman (8): ci: Fix pull rate limit errors drm: Ignore timestamp for monitor shut-off input: fix keyboard focus crash launcher-logind: Try the user's primary session if not in a session gl-renderer: Add EGL_IMAGE_PRESERVED_KHR to our attributes gl-renderer: Don't re-import dmabufs compositor: Allow disabling default flight recorders xwayland: Fix copy and paste error Emmanuel Gil Peyrot (7): backend-wayland: Abort early when wl_shm isn’t advertised compositor: Add suggestion when colord is enabled but not LCMS Fix indentation all through the project simple-touch: Use true/false instead of 1/0 for bool type simple-touch: Remove unused include simple-touch: Exit on xdg_toplevel::close pipewire: Drop support for 0.2 API Erik Kurzinger (1): desktop-shell: don't run fade animation if compositor is inactive Harish Krupo (3): gl-renderer: Requirement based shader generation gl-renderer: Add debug scope for shader generator gl-renderer: implement intermediate framebuffer (shadow) Harsha M M (1): ivi-shell: clean up remaining ivisurface during de-init Heiko Thiery (2): libweston/backend/drm: might need EGL Add EGL_NO_PLATFORM_SPECIFIC_TYPES to avoid Xlib.h via EGL headers Igor Matheus Andrade Torrente (4): tests: Add a way to write a Weston.ini inside the test tests: Convert ivi-shell-app-test.c to use `weston_ini_setup` backend-drm: Reuse drmModeRes in drm_backend_create backend-drm: Drop support to non universal plane drivers James Hilliard (2): pipewire: add support for 0.3 API Update gitlab-ci pipewire to version 0.3.31 John Good (1): Allow programmatically closing xwayland window Jonas Ådahl (4): xdg-shell: Add support for popup repositioning ci: Update ci-templates to newer version ci: Use ci-fairy to check for Signed-off-by desktop-shell: Damage subsurfaces when minimizing Jonathan Marler (4): launcher: fix socket message race condition launcher: remove unused field launcher: remove unused enum value data-device: cleanup after touch drag Kenny Levinsen (7): libweston-desktop: Disable xdg_shell_v6 libweston/launcher: libseat backend libweston/launcher: Allow VT switch without get_vt ci: Build with libseat enabled ci: Set timeouts on various stages ci: Test using seatd instead of direct launcher docs: Describe libseat for weston launch Leandro Ribeiro (53): drm-backend: move CRTC data from struct drm_output to new struct drm_crtc drm-backend: drop unused_crtcs from struct drm_backend drm-backend: move code to init/deinit planes to specific functions drm-backend: cosmetic changes to make the code easier to read drm-backend: do not set output->crtc to NULL in drm_output_init_planes() failure drm-backend: free old connector props before replacing it with newer data drm-backend: move connector data from struct drm_head to struct drm_connector drm-backend: cache drmModeObjectProperties for connectors drm-backend: reduce number of drmModeGetConnector() calls drm-backend: move drm_head management from drm_connector_assign_connector_info() to drm_head_update_info() drm-backend: update description of drm_head_create() and drm_head_update_info() drm-backend: rename drm_backend_update_heads() to drm_backend_update_connectors() drm-backend: add helper function resources_has_connector() drm-backend: add function drm_backend_add_connector() to create drm_head for connectors that appear drm-backend: add support for writeback connectors tests: add mechanism to change Weston's behavior when running certain tests libweston: drop opaque struct wet_testsuite_data tests: remove destroy_listener when destroying test-desktop-shell tests: remove has_wl_drm from struct client tests: change type of int buffer_copy_done to bool screenshooter: rename some functions to avoid conflicts tests: start to use Weston's default screenshooter in the test suite tests: drop test suite screenshooter implementation and protocol extension compositor: move tests quirks initialization to weston_compositor_create() libweston: do not forget to check if test_data is NULL backend-drm: set plane format to gbm_format at the appropriate time backend-drm: move check that skips cursor planes for views that don't use wl_shm buffer libweston: add struct weston_drm_format tests: add unit tests for struct weston_drm_format backend-drm: move code that creates gbm surface to a separate function backend-drm: fix slightly wrong comment about allocating with no modifiers backend-drm: add DRM_FORMAT_MOD_INVALID to modifier sets when no modifiers are supported backend-drm: ignore formats without modifiers from IN_FORMATS backend-drm: do not import dmabuf buffers with no modifiers to KMS backend-drm: document that we allow to import wl_drm buffers to KMS with no modifiers gl-renderer: do not expose query_dmabuf_formats and query_dmabuf_modifiers gl-renderer: always add DRM_FORMAT_MOD_INVALID to EGL formats backend-drm: simplify compile time array copy shared/helpers: fix ARRAY_COPY macro shared/helpers: use ARRAY_COPY where possible libweston: do not forget to destroy temporary drm_format_array tests: fix leaks in drm-formats-test ci: replace kvmconfig with kvm_guest.config drm-formats: save result of intersection in the first array drm-formats: remove create() and destroy() from the API CI: bump mesa and wayland-protocol versions for dma-buf feedback drm-formats: add weston_drm_format_array_count_pairs() libweston: assert that renderer->get_supported_formats() is set libweston: add initial dma-buf feedback implementation backend-drm: keep track of the reason why promoting view to a plane failed backend-drm: add KMS plane's formats to per-surface dma-buf feedback clients: add client to test the dma-buf feedback implementation clients/simple-dmabuf-feedback: pretty print format/modifier pairs Link Mauve (1): renderer-gl: Allocate buffer on the stack Lujin Wang (2): libweston: Remove source repaint_timer in weston_compositor_shutdown clients: Free output->make/model in output_destroy Manuel Stoeckl (7): compositor: avoid setting WAYLAND_DISPLAY=wayland-0 pixman-renderer: track Pixman formats in pixel format table backend-wayland: replace a nested wl_display_roundtrip call backend-wayland: clean up wayland_input structs gl-renderer: add support for (a|x)bgr2101010 shm formats gl-renderer: add support for (a|x)bgr16161616f shm formats simple-egl: only force config buffer size for 16bpp Marek Vasut (1): screen-share: Add option to start screen sharing on weston startup Marius Vlad (55): plug-ins: Migrate pipewire and remoting plug-ins headers to public header kiosk-shell: Keep track of seats created and destroy them at end remoting,pipewire: Use the connector and the output name for the head name gitlab-ci.yml: Have a doc job backend-drm: Fix ignoring config 'require-input' option libweston/libinput-device: Enable/Set pointer capabilities only on pointer movement doc: Add running-weston.rst file kiosk-shell: Give keyboard focus when mapping the surface libweston/backend-drm: Re-order gbm destruction at DRM-backend tear down kiosk-shell: Enable screenshooter in kiosk-shell kiosk-shell: Add transform_handler to correctly position xwayland surfaces kiosk-shell: Read background-color from ini file backend-drm/state-propose: Check the surface buffer dimensions for cursor case backend-wayland: Avoid iterating over un-intialized lists backend-wayland: Avoid spinning forever if dispatching failed compositor: Prevent an invalid access against content protection xwayland/window-manager: Handle theme destruction xwayland/window-manager: Handle weston_wm_window's name/class destruction weston-debug: Handle destruction of stream description backend-drm: Clean-up minor leak when destroying the DRM-backend gl-renderer: Avoid destroying an egl image if known import failed gl-renderer: Assume num images the same as the no of planes pixel-formats: Add human readable format modifier gitlab-ci.yml: Use same container source as the docs input: Handle correctly failure to compile XKB keymaps libweston/data-device: Don't crash when doing dnd operations w/o a keyboard desktop-shell: Use weston_surface_destroy() directly desktop-shell: Keep track of seats desktop-shell: Clear out missing listeners simple-egl: Bail out if xdg-shell was not found simple-touch: Convert to xdg-shell multi-resource: Convert to xdg-shell gitlab-ci: Check merge request for allowing edits gitlab-ci: Use the same name as for check-commits kiosk-shell: Swap green with blue for the background-color desktop-shell: Remove no-op de-activation of the xdg top-level surface desktop-shell: Rename gain/lose keyboard focus to activate/de-activate desktop-shell: Embed keyboard focus handle code when activating desktop-shell: Remove keyboard_focus_listener libweston: Rename weston_view_activate() to weston_view_activate_input() shared/shell-utils: Create common helpers functions for shells desktop-shell, kiosk-shell: Migrate helpers to create a view to shell-utils kiosk-shell: Allow to retrieve surface labels desktop-shell: Don't crash on when attemping to switch backend-rdp: Correctly tear down the RDP back-end kiosk-shell: Embed keyboard focus activation code kiosk-shell: Handle child top-level windows at destruction kiosk-shell: ignore additional seats kiosk-shell: Remove keyboard_focus and seat_caps listeners desktop-shell: Guard against invalid seats in get_shell_seat() libinput-seat: Cascade errors and bail out in case of failure .gitlab.ci: Enable debug for libsteat and for the DRM backend kiosk-shell: Add a border fill to non-fullscreen views clients/simple-damage,simple-shm: Use calloc instead of malloc .gitlab-ci: Retrieve return value before any other command Maxime Roussin-Bélanger (6): tests: fix typos shared: fix typos protocol: fix "assigne" typo backend-drm: fix typos libweston: fix typos doc: fix typos Michael Olbrich (3): compositor: update scissor region before using it compositor: clip the opaque region with the scissor area wayland-backend: forward seats with the correct name Michael Tretter (1): ivi-shell: bring back reference weston.ini Nicholas Niro (1): clients/desktop-shell: Add 24H support to the clock format. Pekka Paalanen (188): drm-backend: fix deinit_planes Bump libdrm dependency to 2.4.95 compositor: delete segv_compositor libweston: constify data_source_interface libweston: bump major version to 10 CI: expose built docs preview CI: store test images in artifacts tests: do not save PNG on success config-parser: use zalloc() tests: re-order drm-smoke in test list tests: constify fill_image_with_color() tests: factor out verify_image() tests: add alpha-blending test launcher-direct: allow non-root on non-seat0 launcher-direct: warn when opening devices non-root gl-renderer: require GL_EXT_unpack_subimage tests: add yuv-buffer test CI: expose test results as junit build: bump Meson requirement to 0.52.1 tests: switch to TAP libweston: move TYPEVERIFY macro into shared tests: introduce struct fixture_metadata tests: refactor into fixture_setup_array_get_arg() tests: use fixture names in reports tests: --list lists individual fixture setups tests: clarify --help CONTRIBUTING: no more emailed patches CONTRIBUTING: make S-o-b mandatory but pseudonym ok tests: add drm_screenshot_no_damage drm-backend: do not skip renderer if capturing screen libweston: do not damage on screenshot gl-renderer: assume pbuffers preserve contents tests: add output damage test gl-renderer: bikeshed GL version handling gl-renderer: split into gl-shaders.c gl-renderer: move vertex shader into new file gl-renderer: rewrite fragment shaders gl-renderer: rename shader debug flag to green_tint gl-renderer: dump failed shader source gl-renderer: simplify shader replacement in draw_view() gl-renderer: send protocol error on shader failure gl-renderer: add fallback shader gl-renderer: add missing glActiveTexture calls libweston: add color ops cap and bool renderer shadow buffer pixman-renderer: share region_global_to_output() compositor: add weston.ini option use-renderer-shadow CI: bump Mesa to 20.3.1 tests: extend output-damage to GL shadow framebuffer gl-renderer: drop R8 and GR88 definitions drop MOD_INVALID, MOD_LINEAR definitions Add weston-drm-fourcc.h gl-renderer: support XYUV8888 wl_shm format tests: add XYUV8888 to yuv-test gl-renderer: rename color uniform to unicolor gl-renderer: move alpha pre-mult from YUV to RGB gl-renderer: move magic constants into yuva2rgba() gl-renderer: drop redundant texture lookups gl-renderer: factor out sample_input_texture() gl-renderer: move view alpha out of sample_input_texture() gl-renderer: doc YCbCr-RGB conversion gl-renderer: whitespace style clean-up gl-renderer: add compositor shorthand pointer gl-renderer: log shader deletions too gl-renderer: garbage-collect old shaders gl-renderer: print use time with gl-shader-generator debug CI: add test coverage results CI: work around Gitlab Cobertura parsing quirk compositor: move colon in capability printing compositor: print all existing capability bits libweston: add required_capabilities test suite quirk tests: let output damage skip without color ops tests: define ENABLE_JUNIT_XML to 1 or 0 libweston: fix #ifdef ENABLE_EGL build: add -Wundef tests: add build option to force skips as failures CI: test skips are failures doc: fix udev rule in calibration-helper.bash gl-renderer: move functions into gl-shaders.c gl-renderer: move gl_renderer_send_shader_error() upwards gl-renderer: pass 'gr' from draw_view() gl-renderer: move shader list destroy to gl-shaders.c gl-renderer: rework uniform value assignments gl-renderer: gl_surface_state has only shader_variant gl-renderer: remove redundant 'target' gl-renderer: add note about fallback shader color CI: a new style for LCOV reports libweston: assert frame times never go backwards libweston: choose only monotonic software presentation clocks drm-backend: require DRM_CAP_TIMESTAMP_MONOTONIC compositor: fix UAF on text-backend tear-down CI: use address sanitizer without leak checks CI: turn BUILDDIR and PREFIX into CI variables CI: put coverage-html output into file CI: shorten job names libweston: remove weston_view::renderer_state libweston: introduce weston_paint_node libweston: per-output z-ordered paint node list pixman-renderer: iterate paint nodes gl-renderer: iterate paint nodes libweston: iterate paint nodes on output repaint libweston: iterate paint nodes in accumulate damage drm-backend: iterate paint nodes libweston: comment places that cannot use paint node lists libweston: add weston_layer_fini() desktop-shell: call weston_layer_fini() ivi-shell: call weston_layer_fini() kiosk-shell: call weston_layer_fini() tests: call weston_layer_fini() libweston-desktop: rename weston_desktop_client_destroy() libweston-desktop: introduce weston_desktop_client_destroy() libweston-desktop: add weston_desktop_xwayland_fini() tests: destroy subcompositor in alpha-blending tests: destroy screenshooter tests: proper weston_test_surface_create() clients/window: fix leaks on start-up failure keyboard: free stuff on exit clients/window: move code into global_destroy() clients/window: destroy remaining globals Add leak sanitizer suppressions tests: allow client_destroy() after expect_protocol_error() tests: clean up after viewporter-test desktop-shell: destroy weston_desktop desktop-shell: rename output_listener to shell_output desktop-shell: clean up shell_output better shared/cairo-util: fix leak from load_cairo_surface() clients/window: clean up xkb compose data clients/keyboard: free input_panel_surface pixman-renderer: draw_view -> draw_paint_node gl-renderer: draw_view -> draw_paint_node libweston: introduce CMS component architecture color: add output color transform API color: add from sRGB to output color transformation color: add from sRGB to blending color transformation libweston: begin color-lcms plugin compositor: add weston.ini option to enable color management tests: ensure color-lcms plugin loads gl-renderer: do not unbind the context on output destroy Revert "gl-renderer: Make dummy surface current after all outputs are gone" gl-renderer: require GL ES 3.0 for color management gl-renderer: define fragment shader compile_const gl-renderer: use shadow framebuffer automatically Revert "compositor: add weston.ini option use-renderer-shadow" libweston: remove weston_output_set_renderer_shadow_buffer() tests: fix refname leaks tests: fix leaks in bad-buffer tests: fix leak in events tests: fix leaks in internal-screenshot-test tests: fix leaks in ivi-layout-test-client tests: add destroy listener in ivi-layout test plugin ivi-shell: destroy desktop tests: fix leak in ivi-shell-app-test compositor: fix leaking log_scopes tests: destroy client in keyboard-test tests: destroy client in pointer-test tests: fix leak in surface_commit_color() in pointer-shot tests: fix leaks in presentation-test gl-renderer: add shader bit input_is_premult gl-renderer: fragment shader precision to high gl-renderer: implement SHADER_COLOR_CURVE_LUT_3x1D gl-renderer: implement 3 x 1D LUT color pre-curve gl-renderer: color transform censor fill and triangle fan gl-renderer: color transform output borders gl-renderer: color transform in blit_shadow_to_output() color-lcms: use sRGB EOTF tests/alpha-blending: refactor into get_middle_row() tests/alpha-blending: reference blending tests/alpha-blending: add sRGB linear light case tests: clean up in roles-test tests: fix all leaks in subsurface-test tests: reduce subsurface-test verbosity tests: fix some leaks in subsurface-shot-test tests: fix all leaks in linux-explicit-synchronization-test tests: fix all leaks in surface-test tests: fix all leaks in surface-global-test tests: fix all leaks in text-test tests: fix all leaks in touch-test tests: free pixman image in yuv-buffer-test tests: fix all leaks in devices-test doc: fix doxygen warnings shared: add str_printf() libweston: fix crash on never used output's tear-down ci: bump test timeouts color: introduce weston_color_profile color: add weston_compositor_load_icc_file() libweston: refactor into weston_output_set_color_transforms() libweston: add weston_output::color_profile compositor: add icc_profile weston.ini option for outputs CI: emit cobertura artifact from only one job Peter Hutterer (1): CONTRIBUTING: update IRC mention to oftc Samu Nuutamo (1): libinput-seat: update leds when a new device is added Scott Anderson (2): backend-drm: start to use weston_drm_format in drm_plane gl-renderer: query DRM device given an EGLDisplay Sebastian Krzyszkowiak (1): xdg-shell: Rephrase the "geometry larger than fullscreen state" error Simon Ser (12): build: re-open master for regular development releasing: make sure to add release artifacts to wayland.fdo clients/simple-dmabuf-egl: add format option clients/simple-dmabuf-egl: don't add INVALID to modifier list clients/window: atomically update pointer cursor libweston-desktop: introduce a deprecated-wl-shell option tests/roles: switch to xdg-shell ci: upgrade seatd to 0.6 ci: export ASAN_OPTIONS ci: use seatd-launch readme: advertise the doc website build: bump to version 9.0.91 for the alpha release Stefan Agner (1): backend-rdp: release seat on peer disconnect Takuro Ashie (3): desktop-shell: Fix wrong initial position of input panel weston-keyboard: Enable to set as overlay panel Fix crash on activating a text area without a real keyboard Tanmay Shah (1): clients: Fix shell background image setting. Veeresh Kadasani (3): pipewire/meson: fix option in user_hint desktop-shell:change expiration of minute and sec weston.ini.man :remove tablet shell related things Vitaly Prosyak (1): tests: refactoring alpha-blending Vlad Zahorodnii (2): xwayland: Pass -listenfd instead of -listen <fd> libweston/compositor: Drop weston_frame_callback ahe (1): libweston/renderer-gl/gl-renderer.c: use glDeleteTextures() and update gs->num_textures if num_textures is decrased bnlrnz (1): backend-headless: NULL check after wl_event_loop_add_timer nerdopolis (3): launcher-direct: handle seat0 without VTs launcher-logind: handle any seat without VTs Fix TTY switching after failed failed repaint with legacy mode set. xndcn (1): screen-share: fix possible memory leak for `out_pixman_error` case yj1231.heo (1): fullscreen-shell : fullscreen-shell doesn't support the screenshooter git tag: 9.0.91 https://wayland.freedesktop.org/releases/weston-9.0.91.tar.xz SHA256: 6bc9dbd33b445c1c091e550e8ff2a2dec74e1dc30d8c844f0908d4581bb92f19 weston-9.0.91.tar.xz SHA512: 799911a00e16a0dccce689b32465dd5b690f06a9fb3c62a4ab118548fd212d331f805bd1368188c81765034457679063ebbb6bc7cc5b4cb4be5697f8a780f03c weston-9.0.91.tar.xz PGP: https://wayland.freedesktop.org/releases/weston-9.0.91.tar.xz.sig