This week in Mir (15th June, 2018)

We’re now in the final stages before the Mir 0.32 release. @sophie-w and I have been ensuring that Mir builds and works successfully for various configurations on Ubuntu, Fedora and Arch. (The Mir packaging effort on Arch is still in progress, but all the known Mir issues for Arch are resolved on our release-candidate branch.)

We’ve created a release candidate branch. This still lacks the last few pieces of @raof’s logind work but is otherwise complete. Our draft changelog read as follows:

- ABI summary:
  . mirclient ABI unchanged at 9
  . miral ABI unchanged at 3
  . mirserver ABI bumped to 47
  . mircommon ABI unchanged at 7
  . mirplatform ABI unchanged at 16
  . mirprotobuf ABI unchanged at 3
  . mirplatformgraphics ABI bumped to 15
  . mirclientplatform ABI unchanged at 5
  . mirinputplatform ABI unchanged at 7
  . mircore ABI unchanged at 1
  . mircookie ABI unchanged at 2
- Enhancements:
  . [Wayland] Implement subsurface support
  . [Wayland] Initial support for copy, cut and paste
  . [libmiral] Update miral::Keymap to get the default keymap from udev
  . [libmiral] Extend the logic for launching apps to support Wayland apps
    and provide it as an API for servers to use it. (Fixes #300)
  . logind support
  . libinput backend: Support running without root privs
  . [miral-shell] Options to use toolkit libmirclient support in
    miral-desktop, miral-app and miral-run
  . [miral-shell] Fix default font on Ubuntu 18.04 and Arch
  . [wlcs] Fixes to test framework, more test coverage
- Bugs fixed:
  . [Wayland] Implement subsurface support for touches. (Fixes #347)
  . [Wayland] Implement Input regions. (Fixes #306)
  . [Wayland] Implement/correct implementation of window state changes in
    xdg-shell V6. (Fixes #297)
  . [Wayland] Implement the common state changing logic in
    WlAbstractMirWindow. (Fixes: #311)
  . [Wayland] Don't hold a lock in mf::WlShmBuffer while potentially
    destroying an object that uses it. (Fixes #355)
  . [Wayland] Disconnect a sink when its target window is destroyed
    (Fixes #357)
  . [Wayland] Send frame notifications even if there is no buffer,
    this fixes the gedit lockup when subsurfaces are dismissed.
  . Don't synthesize pointer events during gestures. (Fixes #179)
  . Notify the compositor of surfaces that have content before they are
    added to the scene. (Fixes #328)
  . Retry drmSetMaster() a few times and if it doesn't work die.
    (Fixes #373)
  . Defer initializing DefaultServerConfiguration::reports until any
    subclasses have been fully constructed. (Fixes #361)
  . Ensure ExternalInputDeviceHub::remove_observer() synchronizes memory
    across threads. (Fixes #359)
  . Correct the glm matrix used for software cursor transformation
    (Fixes #322)

The release candidate is available from ppa:mir-team/rc. Vis:

sudo apt-add-repository ppa:mir-team/rc && sudo apt update

I’ve also been looking more closely at the issues involved in deploying Wayland clients and Mir (Wayland) servers as snaps. That work has led to a few updates to the “Graphical Snaps for IoT Devices” tutorials to cover use cases we’d not previously mentioned. At the time of writing these can be previewed here and here.

We’ve also been planning work for the following release, but more on that in due course.