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

 
 
 

Looking for the Audio-only version

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

button away -->

News and Update

Presenting this time were Florian, Marius, Dalton and Alfred.
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.

Axolotl app

Fla has asked for help for our Axolotl client for Signal. It needs a lot of help because Signal is currently booming. Golang, HTML and CSS are the languages used. There are group chat protocols which we urgently need to implement.

Lomiri on desktop

Alan wrote about using desktop Lomiri. The UBports repository supports a 16.04 environment. As we all know, that is end of life. What is the X86 support in Lomiri for newer versions of Ubuntu? There are some patches for 18.04 but is that all? Progress has already been made through the joint project with Manjaro but of course we want to do something similar with Focal2. For now though there is still a lot of potential in primarily pursuing the Manjaro approach. It moves very quickly there and being ahead of the Ubuntu curve means we can test packages even before they find their way into Ubuntu. Manjaro even has Qt 6 already. Marius plans to write some more about this collaboration but be aware that this is very much bleeding edge stuff.

Dalton commented that 16.04 still has its uses as a test platform for apps, even though it is not suitable as a user platform. Dalton intends to write more on that subject soon. Developing that idea could be useful to developers who are thinking of making UI changes. We are skipping 18:04 so don’t use that but 20.04 packages are coming. Thank you to Rachanan for the work he is doing on that.

PinePhone

Joelandsonja asked whether the PinePhone could be made the main focus of development, since it is new and specifically designed for the needs of our community. If we were starting completely from scratch and devices like the PinePhone became available, the answer would be simple. We would not bother with Android at all. But we have hybris, it works well and we have a lot more people who currently use it. Actually the situation is a bit more complicated since there are ‘old’ Android devices and ‘newer’ ones. Android 9 porting in particular is turbo-charged, so we have in effect three classes of phones. On top of that, the Volla and Pro 1X phones are actually ‘new’ – so make that four classes. 2021 seems likely to add even more to the mix! Florian commented that he knows of projects that are making progress behind the scenes, so this is not just speculation… [was the reference to sunglasses a cryptic clue? Ed.]

There were more questions about the PinePhone, especially about needed kernel changes. This work has been impacted by the limits on our resources but it is firmly in the queue.

November hackhathon

Thatoo asked about any progress made during the November hackathon? Unfortunately the planned hackathon was affected by the Covid situation. An attempt was made to go online instead and to have a porting theme rather than a Cardav focus but honestly that doesn’t suit the dynamics of a hackathon and we will have to wait for a return to some kind of normality before we can get going with those events again.

Sailfish OS plugins

Mardy has been doing some interesting work on Sailfish OS, using Contacts plugins. We could borrow from that work maybe.

Desktop Lomiri preference

Gizmochicken commented on a blog post by Marius where he asked what distro users would prioritize, for a Lomiri flavor? Gizmochicken said Ubuntu but was surprised at the number of requests for Fedora Silverblue. Not about immediate plans of course but could you consider bringing Lomiri to Ubuntu Core sometime? Well there is no graphical session of any kind yet that runs on Ubuntu Core, so we can say the far distance on this one. There are so many other pressing priorities. Mir team are looking at kiosks etc. so there probably will be more stuff that we can build on, eventually. In any event, our role would not be to adapt Lomiri for other distros but to function as an upstream, which others can draw from. As is well known, we are being assisted to move our work into Debian, which will greatly facilitate that. We will be doing a bit with indicators though, to make those more of a finished product, ready for adoption.

Sponsors were thanked.

Installer news

Jan has sent through some installer news on 0.8.3 and 0.8.4. They add steps for installing Asteroid OS (yes, the watch operating system!)  For anyone out there who is the developer of an Android ROM, we are interested in modifying the installer to run that too. Our intention is to have a Swiss army knife approach, no longer limiting ourselves to UT installs. Reach out to Jan on any of his accounts to discuss. Look for Neothethird.

We are aiming for 100% test/diagnostic coverage of installer operations. It is all written in java-script. Getting involved in further development of the installer is a fantastic educational opportunity for developers because it covers so many bases. Writing test routines once you have got to grips with the underlying code is a great way to learn! Nodejs Electron is a very nice, readable application.

For those who hadn’t noticed yet, the installer is now able to unlock the bootloader of some devices automatically, in fastboot mode.

Infrastructure upgrades

Over the holidays when other things were quiet, infrastructure got some major upgrades. All of the device ports are now building on brand new servers. Jenkins pipelines are very hard to write but they are immensely useful when you have built them right. System Image Server has been moved to a new server. This distribution server now stands completely separate from the rest of our infrastructure, so it will not now be impacted when other parts are experiencing problems. The infrastructure is now using Python 3.8. It turns out that Busybox cannot open .tar files generated by 3.8, which unfortunately caused some obscure bugs. It can be fixed manually by setting to GNU mode. For some reason, GNU is no longer the default on 3.8 :( the switch was brought about by the adoption of a ‘new’ standard from 2001 :)))

Marius playing over holidays and Qt upgrades

Marius has been playing with C++ and QML over the holidays. His focus has been Lomiri running on Manjaro but almost everything will find a place running on other systems. There are lots of systemd fixes, so they will be very relevant for the move to 20.04. There are apps which now start reliably, which didn’t do before. X11 works after a fashion. That involved a lot of buffer matching. Some KDE apps were creating extra windows. The workaround was for Lomiri to ignore them unless they were started by the session. Unfortunately, every X11 app is grouped under the same window, so everything defaults to Xwayland.

Another strand towards 20.04 is the Qt 5.12 upgrade. Lomiri is not yet in the Xenial archive. Every time we upgrade our Qt version it gets faster, as there is a huge amount of optimization going on. Our problem is that our testing regime takes finite amounts of time and each element runs so much faster that our tests now bump into each other. Of course we can just introduce wild loops to slow it down for testing… Dalton showed a test rig of Lomiri running in Xforwarded mode, without Mir, all on its own. Doing that in segments can help easily identify where things are going wrong.

It should already be possible to start rebuilding your apps again, to account for the Qt upgrade. Crossbuilder is probably still a problem but you should be okay with Clickable. Apologies that this process has taken so long but it turned out to be more challenging than it appeared.

Qt 5.15 will be a wait. We really need to reach 20.04 before we start to implement that.

NFCD

Alfred and Erfan came across a very interesting branch on the Sailfish Gitlab, giving peer-to-peer communication for NFCD. What that means is that something like Android Beam functionality could potentially be implemented on UT. There are still issues about how the UI should interact with NFC devices but Erfan has imported the fork and it seems to work okay. For app developers it has the potential to enable NFC functionality into their apps quite soon. As an aside, this would be a great help to Nymea’s home automation functionality.

20.04 upgrade 

Coming up (hopefully in this first half of the year) will be the work on the 20.04 upgrade. That is now our top priority. It is unlikely that we will see an overnight switch of everything from 16.04. We expect a transition to allow people to catch up, so don’t panic. Also, don’t panic about the security aspects of this being late in the LTS cycle. There are upstream changes which address weaknesses in 16.04 but more than 90% involve packages which we don’t even use in UT. Remember that our sandboxing architecture provides an additional layer of security, making irrelevant many of the risks that affect the desktop OS.We will not have everything done in April, so we will breach the LTS cycle. That isn’t a major concern though and we don’t expect much of a gap.

On the Mir and Wayland front

There are currently two versions of Mir – 1.x and 2.x. We are still on 1.x, which supports the old mirclient and Mir server (which is an API type thing). 2.0 has unpublished Mir server and mirclient. Not everything in API terms is in Miral or has been moved over, so Alan has made something called Miroil, which will provide the missing features. It will provide the bare minimum for Qtmir to work. Fortunately there are only two components that still rely on Mir server – Qtmir and Lomiri System Compositor. A new compositor is being worked on and there should be no problem with that. Qtmir is the difficult one and will require Miroil to run, for some time.We want to move the hybris devices over to Wayland at some point but they are working okay at the moment so there is no big pressure for that. Mir on hybris will probably stay on 1.x for a little longer. PinePhone and desktop are likely to get 2.x sooner.

Indicators

As mentioned above, there is a project to develop our indicators so they can be run on other than UT. We will be shifting their namespaces to reflect that. MATE is interested. Indicators are quite strange things so by expanding their user base we hope to gain more involvement in tidying them up, streamlining the building process and improving localisations. Every indicator has a different library and a different language. They really are a mess. Manjaro are using our indicators already, in our joint Lomiri project and actually they work great despite being so diverse.

UI changes ideas 

There was a lot of comment in the live chat about ideas for major UI changes in UT. As with comment in our messenger groups, those get quickly lost and need to be raised in a more permanent form, in a structured discussion. We have a forum for subject debates and urge people with concrete ideas to create mock-ups to illustrate them, then post  those on the UBports forum. We have no interest in looking ‘more like iOS’ or ‘more like Android’. We are not them. We haven’t made huge changes to UT visually since Canonical days but bear in mind that they brought substantial professional expertise to bear when deciding on their design. 

Broadly, we see no reason not to trust that they knew what they were doing. It may be a little dated perhaps but at least it is professional and we don’t have access to similar expert resources. Our UI has a lot of fluidity in use and that is a characteristic feature that we don’t want to lose. As we evolve the UI, we want to build on that, not scrap it. Persist with it for a while. Most users find Android perplexing and frustrating after using UT.

See you next time :-)

Ubuntu Touch Q&A 91
An awesome look back at UBports in 2020