Mir Release 2.14.0

Mir Release 2.14.0

We’re pleased to announce the release of Mir 2.14.0.

This release brings support for Wayland screenlockers (the ext-session-lock-v1 Wayland extension protocol), support for Drag 'n Drop and a number of bugfixes and enhancements.

Changelog

ABI summary:

  • mirplatform ABI bumped to 26

Enhancements:

  • [Wayland] Support screen lockers (ext-session-lock-v1)
  • [Wayland] Support drag and drop
  • [platforms] Consolidate RenderingPlatform implementations
  • [platforms] aggregate multiple Displays into a combined configuration
  • [platforms] Drop the dispmanx platform
  • [platforms] Drop unused last_frame_on interface
  • [Window management] “attached” windows can be “restored” by drag gesture
  • [Xwayland] Ensure to call connection_is_allowed on xwayland sessions (partial fix for #2830)
  • Add support for cursor drag icons

Bugs fixed:

  • [platforms] Handle libinput device rejections better
  • [platforms] Assume evdev platform is supported (Fixes: #2837)
  • [platforms] Fix naming of outputs on Nvidia cards (Fixes: #2968)
  • server/ShmBacking: Fix leak in install_sigbus_handler
  • [Wayland] flush display before polling (Fixes: #2902)
  • [doc] ignore namespaces that we do not want exported (Fixes: #2365)

Mir 2.14.0 is available as a source tarball and the Mir PPAs .

5 Likes

A Mir based “desktop environment” is available as a snap:

snap install --classic --beta miriway

And select “Miriway” at login.

2 Likes

Hello, I’m not expert at all in Mir but I wanted to try the Snap with the basic DE on my NUC 12 i5.
It works fine, but it doesn’t restart. It gets stuck on the Intel NUC shutdown screen.

I have no need to make it work, but if you want some more information let me know.

P.S. The base system is Kubuntu 23.04

@jupiter hi, thanks for the feedback.

I can’t immediately think of a reason that Miriway would cause a hang during shutdown. Are you able check the system logs to see where things hang and/or answer a few questions?

  • Does it only happen after logging into a Miriway session? Or, having installed Miriway, does it happen after logging into KDE too?
  • Does it happen every time?
  • Which DM does Kubuntu use?

Hello,
I’ve tested it a bit more and the system shuts down, but only after 1m30s. It happens everytime.

On both X11 and Wayland, KDE shuts down immediately so it seems related to miriway.
Anyway, it’s not as critical as I supposed after my first test.

You can get a list of system events starting from the last shutdown and working back in time with the following command:

journalctl -rb -1

It sounds as though you will see a 1m 30s pause before something times out shortly before the end. It would be good to know what that something is.

Hello is there any way to upload a txt file here?

Here below a little part of the jounralctl at the point it “jumps” from 06:29:18 to 06:30:46

> lug 20 06:30:46 enrico-kubuntu NetworkManager[1782]: <info>  [1689827446.3210] manager: NetworkManager state is now CONNECTED_SITE
> lug 20 06:30:46 enrico-kubuntu NetworkManager[1782]: <info>  [1689827446.3208] dhcp6 (enp100s0): state changed no lease
> lug 20 06:30:46 enrico-kubuntu NetworkManager[1782]: <info>  [1689827446.3208] dhcp6 (enp100s0): activation: beginning transaction (timeout in 45 seconds)
> lug 20 06:30:46 enrico-kubuntu NetworkManager[1782]: <info>  [1689827446.3208] dhcp6 (enp100s0): canceled DHCP transaction
> lug 20 06:30:46 enrico-kubuntu NetworkManager[1782]: <info>  [1689827446.3203] caught SIGTERM, shutting down normally.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopping wpa_supplicant.service - WPA supplicant...
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopping NetworkManager.service - Network Manager...
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped target remote-fs.target - Remote File Systems.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped target network.target - Network.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped systemd-user-sessions.service - Permit User Sessions.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: systemd-user-sessions.service: Deactivated successfully.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Received SIGRTMIN+20 from PID 3203 (plymouthd).
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopping systemd-user-sessions.service - Permit User Sessions...
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopping systemd-logind.service - User Login Management...
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped plymouth-quit.service - Terminate Plymouth Boot Screen.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: plymouth-quit.service: Deactivated successfully.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Starting plymouth-poweroff.service - Show Plymouth Power Off Screen...
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Failed to enqueue OnFailure= job, ignoring: Transaction for plymouth-quit.service/start is destructive (poweroff.target has 'start' job queued, but 'stop' is included in transaction).
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Requested transaction contradicts existing jobs: Transaction for plymouth-quit.service/start is destructive (poweroff.target has 'start' job queued, but 'stop' is included in transaction).
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Triggering OnFailure= dependencies.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped sddm.service - Simple Desktop Display Manager.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Failed with result 'timeout'.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Main process exited, code=killed, status=9/KILL
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Killing process 3043 (Xorg) with signal SIGKILL.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Killing process 1872 (sddm) with signal SIGKILL.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: State 'stop-sigterm' timed out. Killing.
> lug 20 06:29:23 enrico-kubuntu systemd-timesyncd[1542]: Initial clock synchronization to Thu 2023-07-20 06:29:23.082965 CEST.
> lug 20 06:29:23 enrico-kubuntu systemd-timesyncd[1542]: Contacted time server 185.125.190.58:123 (ntp.ubuntu.com).
> lug 20 06:29:22 enrico-kubuntu systemd[1]: systemd-fsckd.service: Deactivated successfully.
> lug 20 06:29:18 enrico-kubuntu systemd-journald[888]: Forwarding to syslog missed 416 messages.
> lug 20 06:29:18 enrico-kubuntu systemd[1]: Stopped thermald.service - Thermal Daemon Service.
> lug 20 06:29:18 enrico-kubuntu systemd[1]: thermald.service: Deactivated successfully.
> lug 20 06:29:18 enrico-kubuntu systemd[1]: snap.multipass.multipassd.service: Consumed 2.669s CPU time.
> lug 20 06:29:18 enrico-kubuntu systemd[1]: Stopped snap.multipass.multipassd.service - Service for snap application multipass.multipassd.
> lug 20 06:29:18 enrico-kubuntu systemd[1]: snap.multipass.multipassd.service: Deactivated successfully.
> lug 20 06:29:18 enrico-kubuntu kernel: audit: type=1400 audit(1689827358.012:188): apparmor="STATUS" operation="profile_remove" profile="snap.multipass.multipassd" name="multipass.dnsmasq" pid=3196 comm="apparmor_parser"
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:     
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]: }
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /var/snap/multipass/common/data/multipassd/network/dnsmasq-gTXxnu.conf r,     # conf file
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /var/snap/multipass/common/data/multipassd/network/dnsmasq.hosts r,             # Hosts file
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /var/snap/multipass/common/data/multipassd/network/dnsmasq.leases rw,           # Leases file
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /{,var/lib/snapd/}snap/core18/*/{,usr/}lib/@{multiarch}/{,**/}*.so* rm,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   # CLASSIC ONLY: need to specify required libs from core snap
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /snap/multipass/10167/{usr/,}lib/@{multiarch}/{,**/}*.so* rm,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   /snap/multipass/10167/usr/sbin/dnsmasq ixr,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   # binary and its libs
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   @{PROC}/sys/net/ipv6/conf/*/mtu r,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   # Neighbor Discovery protocol (RFC 2461)
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   # access to iface mtu needed for Router Advertisement messages in IPv6
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   signal (receive) peer=snap.multipass.multipassd,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   # Allow multipassd send dnsmasq signals
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   network inet6 raw,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   network inet raw,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability net_raw,           # for DHCP server ping checks
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability net_admin,         # for DHCP server
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability dac_read_search,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability dac_override,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability setuid,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability setgid,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability net_bind_service,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   capability chown,
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   #include <abstractions/nameservice>
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]:   #include <abstractions/base>
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]: profile multipass.dnsmasq flags=(attach_disconnected) {
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]: #include <tunables/global>
> lug 20 06:29:18 enrico-kubuntu multipass.multipassd[1844]: [trace] [daemon] Removing AppArmor policy:
> lug 20 06:29:18 enrico-kubuntu audit[3196]: AVC apparmor="STATUS" operation="profile_remove" profile="snap.multipass.multipassd" name="multipass.dnsmasq" pid=3196 comm="apparmor_parser"
> lug 20 06:29:17 enrico-kubuntu multipass.multipassd[1844]: [info] [dnsmasq] failed to terminate nicely, killing

@jupiter thanks - that is useful:

> lug 20 06:30:46 enrico-kubuntu systemd[1]: Stopped sddm.service - Simple Desktop Display Manager.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Failed with result 'timeout'.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Main process exited, code=killed, status=9/KILL
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Killing process 3043 (Xorg) with signal SIGKILL.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: Killing process 1872 (sddm) with signal SIGKILL.
> lug 20 06:30:46 enrico-kubuntu systemd[1]: sddm.service: State 'stop-sigterm' timed out. Killing.

The problem you’re seeing is with the interaction between SDDM and Miriway. That should be enough for us to reproduce.

https://github.com/MirServer/mir/issues/2984

One final question: how do you shutdown? From the command-line? From the greeter? Something else?

Hello, I press the top-left button to open the search bar. I type “Shut Down” then I press Enter to confirm.

Can you try two things?

  1. Find out what command your “Shutdown” actually runs:
grep Exec= `grep -iRl Name=Shut /usr/share/applications/`
  1. Shut down by closing Miriway (Ctrl-Alt-BkSp) and then select “Shutdown” in SDDM? That works for me.

I suspect the command you’re running is KDE specific and doesn’t work with Miriway

Hello,

  1. that command doesn’t return anything. After 10 minutes it’s still running and I don’t have a result.
  2. Yes, closing Miriway (Ctrl-Alt-BkSp) and then selecting “Shutdown” in SDDM works. It shuts down immediately

Trying to do this test, I found out few little issues reported below. I don’t know if they are relevant, but I post them here just for your reference.

  1. Synapse Preferences are opened only when relaunching Synapse.
  • Open Synapse clicking the Start Menu
  • Click on the little dot on the top right corner
  • Synapse will close
  • Open again Synapse clicking the Start Menu
  • Move the mouse cursor on the Synapse window.
    Only when the mouse hovers the Synapse window a little menu with the “Preferences” button is shown.
  1. Can’t write text on Firefox when switching window
  • Open Firefox (not full screen, just windowed)
  • Open Konsole or Chromium (not full screen)
  • Focus on a text box of Firefox (e.g. the discourse message compositor I’m using for this message) and try to write. It works
  • move to Konsole with ALT+TAB
  • go back to Firefox (mouse-click on Firefox window, do not use Alt+Tab again)
  • press any letter on the keyboard, you will see the Firefox menu appears. It behaves like if you are keeping the ALT key pressed.
  • I can “release” the fake ALT key pressing the Meta/Super/Windows key on the keyboard and I’m be able to write again.
  1. Synapse plugins help buttons are broken (ADV pages)
  • Open Synapse
  • Go to the preference window
  • Go to the Plugin tab
  • Select a plugin (e.g. System Management) and press the circle button “About this plugin”
    The uBlock Origin browser plugin blocks the page because it’s in the “Easy list” adv list. If you continue, it brings you to a iyfbodn[dot]com page.
    This may not be an issue if this is just “for testing purposes”, but I point it out because I found it.

Oh, sorry! I was making the assumption that grep -iRl Name=Shut /usr/share/applications/ would return something. I guess that is matching a .desktop somewhere else on $XDG_DATA_DIRS. (That has a list of directories in which there are application/*.desktop files. One of which contains the command I’m after.)

Interesting. Thanks! Will file a bug.

Thanks again.

https://github.com/Miriway/Miriway/issues/53

We’ve had to release a 2.14.1 to address some problems we encountered during the release. There are no functional changes to note, it just builds with g+±13 and creates a correct, signed tarball.

Mir 2.14.1 is available as a source tarball and the Mir PPAs .

1 Like

I can reproduce the freeze at shutdown running

qdbus org.kde.Shutdown /Shutdown logoutAndShutdown

from the command line

@jupiter we have a fix for this ready for the next release. It is available on the edge channel:

snap refresh miriway --edge

Thanks for a clear way to reproduce! It helped a lot.

1 Like

Tested the new version and it works fine now, thanks!
I am glad to have been helpful.