Ubuntu Touch Q&A 93
What is Mir, what is Miroil, and why, by very special guest: Alan Griffiths

 
 
 

Looking for the Audio-only version

of the Q&A?  You're just one big orange

button away -->

News and Update

This time round the format was very different. Florian was in dialogue with Alan Griffiths, the Canonical lead on Mir development.
Go to devices.ubuntu-touch.io for info about whether your device is supported.
Questions were taken first this time round.

Questions

The News section of our Forum is the best place to post questions for the Q&A. YouTube live chat, Telegram and Matrix are other places to post a question.

If you didn't know, the Forum questions get priority.

Besides 20.04 developments

Padu asked if we could explain what is happening in userland development, besides 20.04, Lomiri etc. especially in middleware etc e.g Caldev and Carddav support and Nextcloud synch in general? Unfortunately we had to cancel a planned hackathon on that subject, owing to Covid. Alberto has been pulling together a lot of the loose threads.

OTA-17 topics

Gizmochicken asked what will be the main things to come in OTA-17, after the transition to Qt 5.12 in OTA-16? Probably the main function of OTA-17 will be as a stability update. Previous changes are bound to generate some bugs and those will need to be addressed. That doesn’t mean there will be no improvements at all. There are always some with every release.

New features with qtwebengine

Povoq asked what the position is on removing the remnants of Oxide browser and what new features are coming with the complete transfer to qtwebengine? Can we have bookmarks synching with Morph? Honestly that has not been a main focus, so don’t expect anything substantial. As always, if anyone out there has great browser development skills they are very welcome to help out.

Flatpak applications

Kelmes asked when UT is based on 20.04 and using Wayland how easy do you think it will be to get Flatpak applications working? First we need to clear up some routine confusion between a supposed Wayland compositor and Wayland protocol. There is actually no such thing as the ‘Wayland compositor’. Mir is the compositor for Lomiri and UT. It exists in the 1.x series which is what UT uses at the moment and in the 2.x series which is currently under development.

Basing UT on 20.04 actually has little at all to do with using Wayland. Those are two distinct transitions. 20.04 comes first, then Wayland but over quite a long time-scale. In any event, neither of those is in any way related to whether you will be able to run Flatpak on UT. Flatpak applications use a confinement mode but not the same mode as is used by UT applications.

UT uses apparmor as its security barrier but the kernel module used by Flatpaks is SElinux. It does much the same thing but in both cases the protocols are mediated by the kernel, so the kernel version is critical. UT kernels as used with older builds are pretty ancient and those are going to be difficult to adapt. In summary, packaging format is not a major issue here, the question is the interaction with our APIs and the confinement mechanisms used.

20.04 upgrade

How is the development of 20.04 for UT coming along? Well, we have made a start on it but these are very early days so we are not yet able to assess what the main roadblocks are likely to be.

Debian migration?

For the core system will there be a migration to Debian instead? It is true that Lomiri is up-streaming packages to Debian but no we will remain Ubuntu based. The point of the Debian hosting is that it should attract a wide range of developers who will tweak and debug our packages for their own use but in the process will benefit us. Of course in order for our packages to be accepted into Debian, their quality control procedures must be passed and that process itself will lead to improvements.

Camera back-ends

Danqo6 referred to the awesome work being done on Qt 5.12 migration. What will happen with the camera back-ends for PinePhone and devices such as OP3? At the moment they rely on the gstreamer droid fix in order to work. In Halium 7.1 Camera is certainly a problem area. We are looking to make the newer fixes backwards compatible and that is likely a step change for a future OTA – though not in the very short term.

Anbox

Jeremiah asked about Anbox and in particular stability and user support. Maybe it could be backed up by an app system similar to Fdroid? We are still trying to mobilize more resources in order to make progress and are still working to engage a developer to work on this for us. Anbox uses the Anbox container, which is now very old so in order to make any progress at all we need to first update that container. The next big obstacle after that is balancing its background operations, which in its present form are a huge drain on battery and make its use completely impractical in real world situations. 20.04 and Qt 5.12 are our key goals at the moment so Anbox development must necessarily take a back seat for now. Only those who are expert in Android and Linux will be capable of working on Anbox.

Supported devices maturity

Carlod said the list of supported devices is growing very fast and we have made a start on Halium 10 so what plans are there to stipulate the maturity level (functions working reliably) before they can become community devices? We need to develop better ways to gather feedback from users of each device so that we can form a real world impression of how well it is working, without having to rely completely on the assessment given by the device porter. Beyond that, we are thinking that there ought to be a minimum set of features working on a device, before it is accepted into the installer. On the other hand, we need to get new devices over the hurdle of testing and verification, which suggests that they should be in the installer at an early stage. We have to resolve that.

Lomiri documentation

Where is the Lomiri documentation which we have been waiting for since December? Flo has asked Marius about it. It will arrive in due course but as always he has been busy!

Sponsors were thanked.

Mir and Miroil presentation

In the live chat there was a question about Miroil and whether it is a step on the way to Wayland? By chance, that and other questions were exactly why Alan was present to help out :)

Alan opened a presentation on Mir. It showed Mir sitting above the hardware of the device, linked by software. Going off in one direction is a link to newer apps via Wayland. Another branch heads off to Xwayland and then via the X11 toolkit, to legacy applications.

UBports is still using features from proprietary Mir which are not yet available in the latest versions of Wayland. So UBports is still part legacy in that sense. Miroil doesn’t fill that gap completely but it will help with some elements. Some other new fixes for UT will have to be developed alongside Miroil. At the moment, nobody is working on that new ‘stuff’.

Lomiri is one of the things that will run on Mir and it will run on phones, tablets and laptops. At present, it is still much better adapted to running on phones and tablets. It has an additional use in embedded systems, where it manages a screen showing status information.

A German company has started making use of mirrors which run on Ubuntu Kiosk with Mir and Ubuntu Core. They are using a snap which utilizes Mir. A US company is developing something very similar using Mir, in an exercise mirror implementation.

Desktop is coming along quite nicely now, especially with Mate.

One of the key aspects of Mir is that it is designed to cope with a wide range of use cases. Mir is a library, which talks to an array of different servers. It is also designed so that it will work with a range of plugable platforms.

Wayland support for Mir when using Flutter is pretty much complete. Next to be done is providing support for multiple windows.

Miroil is a project which Alan started when he had a few days spare. It is needed for the upgrade from 1.x to 2.0 Mir in Lomiri. It is basically some elements of Qtmir which have been ported across to form ‘Miroil’. It thus provides a stable API.

An important insight which came out of the talk is that Mir is not a special thing just for UT. It has many applications.

There were questions in the live chat about the modifications to allow Flutter to run. It shouldn’t however be assumed that the developments with Mir mean that Flutter will magically begin to work on UT. Those developments might be one part of solving that puzzle but there is no support in Flutter for the Mirclient API, which would be a necessary component.

20.04 upgrade 

Marius popped up on audio half way through the broadcast.

On progress towards 20.04, the biggest gap is the lack of developers to see it through, rather than any technical difficulties. Lots of the Manjaro joint work helps us in taking it forward. We know now that the new Qt works nicely. Systemd works fine, although it will present a lot of different device specific issues which we will need to resolve. All the progress we are making with this is shared with Debian and we are ensuring that their repositories update alongside us. That makes the project a little more complicated and we need to balance between the two but there will be big benefits to doing it that way. Mike is doing a great job on that with us.

There are developments in the pipeline which will be very exciting for UT in 2021 but it is too early to talk publicly about those.

Devices in work

Flo is still working on the port for the Nexus 6P but as well as that he has a Pixel 2XL and a OnePlus 5T! The last two devices were made available by members of the community. Marco and Christian facilitated that.

Alfred has made some progress with recording videos on Halium 7.1. It means that a fix for the problems of the OnePlus 3T is not far off.

Power saving on the Xperia X has been improved. Notifications are no longer held back and charging is possible without turning on the screen !?!! Quite a lot of unseen work has gone in to improve stability too.

Call for Miroil development

Alan is looking for people to assist with Miroil. There is no requirement to have a UT capable device in order to do that. In a few weeks there will be some more documentation written by Alan, to help you along.

Call for helping Marius with documentation

If there are people out there who have particular skills in writing technical documentation, their assistance would be of immense help to Marius and others. It doesn’t need a deep technical knowledge but it does need some familiarity with the specialist terms used.

Our main page on docs.ubports.com has had translations removed where their coverage was very small. There were only a few words of Romanian and Turkish in a sea of English, so for the moment we will take those out. Volunteers for those two languages could help us get a more or less full translation for each and we can then put them back up. On the plus side, Polish has just hit 100% translation. We also have full coverage for Russian.

PinePhone

On the PinePhone front, we have been very aware of concerns in the community that PinePhone has not been getting a lot of support recently. One of the things which made us particularly excited about PinePhone was the expectation that it would draw in a whole layer of new developers. Well it did but largely to other distributions rather than to UT, so we didn’t get the boost we hoped for. Where we differ is that we are dealing not just with the PinePhone but also with legacy devices, Android 9, and Volla etc etc. Other projects are dealing only with PinePhone and don’t need our more demanding cross-platform approach.

Actually PinePhone didn’t stall completely because it just got the general Qt upgrade and hardware acceleration of the camera. Where it has stalled is in the kernel department.

Csharp apps

A final question was whether it will ever be possible to port Csharp apps to UT? Well are there even Qt bindings for Csharp? Alan asked about the graphic stack used with Csharp – what is it? Microsoft developed dotnet core, which is very good for back end services and works natively with Linux. But it has no bindings to a graphics stack. There is some work ongoing which might impact the UI possibilities. Marius confirmed that there are Qt bindings, so potentially there is a way forward. The nice thing about Csharp is that it avoids all the nasty memory leak and memory management problems you can get when working with C++. MultiAppUserInterface (MAUI) is the thing.

Modern UT devices

A repeat (final,final) question was about a ‘more modern UT device’. Notkit has been playing with OnePlus 10 5G, which probably qualifies…

Special Thanks

Marius ended with a special shout out to Rachanan for the amazing work he has done with video recording on the PinePhone. It now flies.

See you next time :-)








Ubuntu Touch Q&A 92
Over the holidays playing and infrastructure upgrades