New Year
A very Happy New Year to all our readers!
It has been three weeks since the last report of Mir news. That is because of the holiday season and nothing happening within the Mir team. But we are back now and starting off the new year.
Distro news
No changes so far this year to the distros carrying Mir in their archives: Ubuntu, Fedora and Arch. Mir has also been built and run on Debian, Alpine Linux, Pop!_OS and Solus.
Fixes from downstreams
We’ve seen a number of issues and fixes from downstreams distributions working to get Mir working for them.
Debian Sid
@tsimonq has been working to bring Mir and Unity8 to Debian. Over the holiday period he reported that:
- Mir fails its tests under Debian Sid and Fedora Rawhide.
Which proved to be a long undetected “double close” in the test fixture fixed by @RAOF.
That was the last issue blocking getting Mir into Debian and @tsimonq is now planning to “upload to Experimental so we’re not locked into a Mir version for Buster.”
Alpine Linux
Alpine Linux is different to Ubuntu and Fedora in that instead of glibc it uses musl. The differences between these mean that Mir doesn’t currently compile or work out of the box.
But the changes are not insurmountable there are a few isolated pieces of code that need rework and we have received a number of patches and bug reports from z3ntu (Luca Weiss) needed to get Mir compiling on Alpine Linux:
- Support libcs with POSIX ioctl arguments
- Only use dlvsym when it’s available
- Compile error on Alpine linux
- <sys/poll.h> include is incorrect, use <poll.h>
- ifdef pthread_getname_np as musl doesn’t have it
- WIP: Adjust some tests for musl, ifdef out thread tests as they don’t work
- Fix “unused parameter ‘type’” warning/error on musl
These have been working their way through the review process and landing (or variants of them landing) on “master”.
If we can land all the changes that are needed for to use Mir on Alpine Linux then pulling them (and the fix mentioned above for Debian Sid) into a bugfix release of Mir would make a lot of sense. That would allow downstreams to use the released source directly.
Graphics stacks
Nvidia and egmde
Before the holidays I noted that my “hobby” project egmde would not work on Nvidia because “Mir only supports Wayland clients on Nvidia (and not those using the legacy mirclient API)” [Mir 1.1.0 Release - Mir - Ubuntu Community Hub]
I found some time over the holiday period to rewrite the code concerned to use Wayland (and not the mirclient API), It now works on Nvidia. This doesn’t yet apply to the egmde snap. The snap only includes the free Mesa drivers: it isn’t obvious how best to deal with the Nvidia stack in this scenario.
Also on the subject of egmde, I updated/added a couple of posts to the Wiki about configuring it to work better on 16.04LTS and how to disable the legacy mirclient support entirely.
Libhybris/Android
This “Android graphics platform” is maintained by the UBports project and we don’t usually report on it here. However, this week UBports “shipped” Ubuntu Touch OTA 7 and the developers have turned their attention to updating it to work with Mir 1.x (which is planned for next month’s OTA 8).
Last weekend, towards the end of Ubuntu Touch Q+A 42, @mariogrip reported that both mirclient API and Wayland clients are working well and that Mir 1.1 is “much faster”, although “for some strange reason Qualcomm devices are ‘not playing’”.
Their aim for this cycle is simply to update their Mir release. The migration of all the Unity8 client processes from the mirclient API to Wayland can follow in the future. They did not find time to explain their plans for supporting “tradition desktop applications” on the phone. (But having Wayland support from Mir opens up more options for this usecase.)
ARM Mali
Last year @RAOF did some work to bring up Mir on the ARM Mali GPU. Integrating that work onto master took a back seat whilst the Nvidia bring-up took priority. But it has resurfaced unexpectedly this week:
<mariogrip> RAOF: I rebased your mali changes on top of 1.1 https://github.com/ubports/mir/commits/xenial_-_edge_-_mir_-_pine2
<mariogrip> We have mir working on pine64!
(From #mir-server
on freenode IRC)