Akademy 2022 the BoFs

Geeks on a mountain

After two days of talks we have moved to a week of BoF sessions. (I’m not a fan of the term BoF but I’ve never managed to think of anything better.) Here’s some notes I made incase anyone is interested.

The big news is the Frameworks 6 session had some Plasma people there too and voila we have a plan for 6. Most Frameworks and even most Plasma is already working with Qt 6. So the last Frameworks 5 release is due in December and then work will happen to finalise the porting to Frameworks 6 and once that’s solid releases will start again using Qt 6. And for Plasma we’ll make a final Plasma 5 release at the start of next year versioned 5.27. That will be LTS so we’ll stop the 5.24 LTS releases and make further 5.27 releases as long as they are useful. The finalising of the porting to Qt 6 will start in January and we’ll schedule a release whenever that becomes practicle which should be not too far into 2023.

Our BoF sessions are Covid secure

We had a session with App Stores looking at what are the most popular products and what methods are there to make money. My notes say we discussed charging some money on the Windows store for say Okular and monitor how well that goes down. There’s also ideas of bundling games together. Monitoring could be implemented with KUserFeedback. KStars could be worth asking money for but that’s already on the MS store for free. Automatic testing would be very useful for app deployment, possibly with OpenQA or other tech. I asked for help with packaging Kontact and Akonadi in Snaps (Flatpaks need it too).

Chillaxing between sessions

The translations, which have always been kept separate in KDE codebase, are now copied nightly into master by the Scripty script. This should make it easier to make tars although releaseme will continue to copy over the latest translations when run. Some apps need CMake updated for this change. Most importantly this means KTuberling can compile in KDE neon for the first time years.

Speaking of KDE neon, we had a KDE neon session. Nate suggested the idea of making a specification that could be applies to brand any distro spin which would require it to ship up to date KDE software, apply recommended patches prompty, use KDE’s Qt branches, use recommended software suite, not change wallpapers etc. We decided that using the neon branch for this was not the way to go but it could be e.g. a Plasma Distro Experience certified brand. Needs someone to make the spec and the test suite.

Back to neon proper we discussed the rebase on ubuntu 22.04 which is almost nearly ready and David Redondo was good enough to do a live upgrade in the BoF but it broke in various ways so I guess some more fixes needed here. The problems of invent gitlab rejecting our server for Git requests was dicussed, it’s the main thing that drags neon releases when we are slow, more debugging is needed. We pondered added RiscV and concluded “do it”. Moving our infrastructure into invent is still blocking on a service which orders the builds. kdeedu-data builds are still broken (because translations are funny here) and Albert has said he’ll write the code for this.

On Wednesday we had a nice hike up the mountain of Montserrat and then an even longer hike downwards.

KDE went up a mountain

On Thursday David Faure gave us a training on debugging and profiling as sponsored by KDAB. He took us through using strace. rr is for record and replay which lets gdb do a reverse run which is useful for non-deterministic tests that randomly fail. And for gdb he recommends using cgdb the ncurses frontend for it. He took us through gammaway which lets you see lots of interesting Qt goings on such as which signals and slots get run, which settings are set in widgets etc etc. radardoc is a good debugging tool for graphics calls. And he took us through compiler sanitizers which get more debug tooling into gcc and clang and works similar to Valgrid but with some different properties.

Later on we went for pizza on the beach.

My Photo Album

Akademy Talks Day 2

The sun is shining, the beach is busy, the cava is flowing, the record shops are full of hipsters. Akademy is in full swing here in Barcelona, Here’s some scribbled notes I took from some of the talks I went to incase they are any interest to anyone.

The keynote was from Ashai dev Hector Martin. Ashai Linux runs on M1 ARM macs. EFI is a security nightmare, it’s an operating system in itself. Linus said Apple Macs won’t be available for Linux unless Apple opens up its GPU. Macs have a permissive mode to boot custom kernels including XNU (Apple’s open source OS kernel). He got himself a patreon and github sponsorship and enough people fund him to do it as a job. He did lots of impressive things to get Linux working on ARM M1 Macs and voila his video shows a Plasma desktop on a Mac.

Neil Gompa on Fedora and KDE

Neil Gompa spoke on Fedora. See http://fedoraloveskde.org/ . Packages by Fedora KDE SIG. Fedora has Wayland by default (also RHEL). Better graphics performance, less resource usage. For gaming SDL is Wayland native (Simmple Direcmedia Layer), needed replaced with a shim library for SDL 1 to use SDL 2. Fedora is first distro for Pipewire for all audio routing (dropping Pulseaudio and JACK). Btrfs by default, optimised for flash storage, transparent compression, improves space efficiency and IO performance. The flagship variant is Fedora KDE Plasma Spin. It has some minor branding and usability tweaks, Firefox as browser, FirewallD and SELinux. Fedora Kinoite launched last year, minimal default experience, rpm-ostree immutable base, apps as Flatpaks. In RHEL Plasma is in Extra Packages for Enterprise Linux. CentIS Hyperscale and AlmaLinux have Plasma ISOs from RHEL. (AlmaLinux is a RHEL rebuilt and replaces much of what CentOS used to.) In the future they hope to make SDDM use Wayland (needs an SDDM release). Fedora workstation is shipped by Lenovo and more, he wants Fedora KDE on hardware. The out of box experience isn’t great for this yet but he’s working with Nate to do it. Plasma Mobile packages just integrated into Fedora Rawhide so maybe x86 tablets and then ARM device support.
Wayland downside are that it has quirkyness, multi monitor quirky, mixed DPI is quirky, Plasma Wayland is pretty much feature complete. Accessibility not there and input methods not there so no screen readers. Plasma LTS was horrible to maintain as a distro because underlying frameworks and apps not inline. He suggests to spend the energy of Plasma LTS dev fixing normal Plasma releases.

Volker Krause spoke about push notifications, they must be part of the platform and app does not need to run, there’s potential for apps to abuse them but they are crucial for some uses. On proprietary systems (Google, Apple, Windows) you are locked in, they can’t be removed. UnifiedPush standardises interface and DBus, Android etc. Push drivers are Ntfy, NextPush (for NextCloud), Gotify. Android distributors FCM bridge. DBus mostly proof of concept. He shows the distributor in the KCM. He shows an app subscribed to notifications of German weather warnings. There’s legal and privacy risks: storage, authentication and encryption is not standardised. We have all the blocks, the main challenge is hosting the provider service.

Lunch Time

Shyamnath Premnadh (Shyam) spoke on How C++ and Python can thrive together. He’s a Senior Software dev at Qt for Python team. C++ is loved, fast, control, mature etc. Python is also popular, at least from Stackoverflow rankings. You wouldn’t use C++ for something quick and dirty. He gives some exmaples of where Python is easier than C++. Qt for Python is an application suite. Pyside6qmlls, Shiboken, assistant, linguist and others. Shiboken makes the bindings, it uses libclang to parse the Qt headers. He shows a C++Papp with Python plugins which can change the themes and other settings in the C++ app. The code to make this is easy and he shows that too. He shows QtScrypt, a proof of concept for integrating Python inside C++ in the same file. He shows pyside-deploy making a Flatpak package for his app.

Volker Krause spoke about Frameworks 6 porting. At Akademy 2019 they made a plan, do the work in the Qt 5 codebase, branch late, actionable tasks. Now KF builds on Linux, BSD and Android. Windows has 30 of 55 building. CI coverage is good. Plasma platform integration builds and works. QtWidget apps work, QML ones need more work. He shows his desktop running Kate with KF6, then Konsole, then Systemsettings. And he reveals that the whole Plasma desktop and KWin is running with KF6. This is not the out of box experience it requires some modifications for QML. ToDo before we can branch is not much. Still to be decided the scope, just KF6 or Plasma as well.

Pleasingly I tested free of Flu and Covid. Masks are still needed though.

Lydia talks about fundraising with Jean-Baptiste. It was lots of work and not cool. They’re trying project specific fundraising starting with Kdenlive. Jean-Baptiste takes the stage, their workload is increasing, they want a sustainable project. That needs a CI for binaries. For 1 year he’s been working with the e.V. board on a fundraiser. Signed a contract in March for the new fundraising software. Launched September. After 12 days it has now raised over €12,000 which is amazing. Challenges: make it sustainable. Increase presence in schools. Keep having fun. Lydia says contact the board if you want to do the same with your app.

Albert Astals Cid talks about security, 9 people with history in KDE (3 of them accounts so old they don’t know when they started). Needs new blood. When they get an e-mail they reply to say “thanks we will look into it”. Then check if it’s a bug or a feature. Then contact with someone who might be able to fix it. Get a CVE and publish. But you need to be careful when else it’ll go on The Register. They would like help from oss-fuzz adding kfilemetadata, baloo, kmime etc. They want KAuth uses audited.

Healthy Mind Healthy Code talk with Harald

Harald talks about Healthy Mind Healthy Code. He became aware some people had problems and struggles with their KDE contributing. It’s important to have sleep. Learn to say no. Have friendships. Reflect on your state on mind, maybe you’re being stressed out by KDE. You should be mindful you should get something out of it. You don’t want to lose sleep over it. Know your limits, do not stress too much if you can’t fix all the bugs in the world (half might do). Sometimes its OK to take a holiday for a couple of years. Do not over plan your life. He points to a Gitlab activity chart showing gaps, gaps are a good thing as it means you did go on holiday.

Akademy Award Winners

Akademy Awards winners for winning app is KStars, winning developer is Harald, winning non-dev contributions is Aniqa.

Akademy next year will be in Greece! Now onto the week of Birds of a Feather Meetings!

Party Time at the Social Event

Akademy 2022 in Barcelona Day 1 Talks

Akademy Talks in Barcelona

Akademy is back, online and in person. FFP2 masks being the only sign of a pandemic having happened. Barcelona is warm and sunny and we’re meeting at the Universidad Polytechniqua de Catalunya in grand lecture theatres with high def projectors. It’s great to see some old faces and some new and discuss the progress of the last couple of years since we could last meet. Here’s some notes on some talks I went to.

Volker Hilsheimer gives the keynote aschief architect of Qt for last 6 months. We are 2 years into Qt 6 and stuff is still being ported. Qt 6.4 is now out and it adds QtLocation as the last major module to be ported to 6. Qt WebAssembly is an important development, zero deploy, near native performance, Web in Qt and Qt in Web, they consider it to be Docker for Apps. How will KDE use it? Lots of work is happening to make Qt prepared for C++20. C++23 is on its way, stuff like the stack tracing library will be valuable. There’s some C++ successor languages upcoming like cppfront and carbon which they want to see what’s relevant. Python is something they have invested in. People are asking about Rust, they’re not actively doing anything but it’s something they’ll need to look into. Many people think of Qt as a user interface library, that’s not the only aspect but it’s a big part of it. What controls are still missing? QtWidgets they won’t throw much resources at, they will keep it relevant and up to date but QtQuick is where they want to put effort. They have not spent a great deal of time making sure Qt apps look great on the Linux desktop in recent years – they are now looking at that again. HMI, Human Machine Interface, is relevant. Connectivity is interesting for Qt (it’s not just a UI framework). Community is important for the Qt project, there’s a long and good history with the KDE community. Qt now has a community manager Pedro Bessa (who takes the stage). Almost 100% of the real world problems being solved with Qt is done outwith Qt Company so your perspective is important to them. 1/3 of maintainers are outside the Qt Company. Having an ecosystem for Qt. A question about speed recognition in Qt? Yes, contribution was this summer to QtSpeech repo.

This big church looks familiar

Adam Szopa goals talk. Goals initiative was started in the distant past of 2017. In 2019 Wayland, Consistency and All About the Apps kicked off. Then Covid happened.

Aleix talks about Apps: if humanity used more of our apps we would have less wars. It’s hard for us to do all the work. Are we as good as it gets to getting the last mile? On all the stores and all the platforms? We always have a one to one relationship with the app and the user. Snapcraft has most apps and 350k base users, 60,000 installs of Krita and Kdenlive. Flathub has 120 apps with Krita and Kdenlive most popular at about 25,000 installs. On Google Play Krita has 1m active installs (Android and ChromeOS) which KDE Connect has 300k installs. The Craft SDK now works for Android. KDE Connect uses native Java-style code in Android. Windows store has lots of users, 1M Krita installs but otherwise only 8 apps. Apple not convenient, incompatible with GPL in the store.

Snaps give us some stats. 350,000 active installs of the base. 60,000 active installs of the most popular apps Krita and Kdenlive.

Niccolo and The Dawn of Consistency. He gives the example of KHamburgerMenu which should have a similar widget which is a panel, having a common component was something he kept talking of but it was never done. App redundancy, one part of the goal was removing multiple applications. This depends if KDE is an umbrella for any app or if it’s a brand that promotes a set of apps. For example Maui is very much doing the wrong thing with their own design with their own Kit and they have their own shell but MauiShel isn’t part of KDE even though MauiKit is. Maybe we should have a requirement for KDE look and feel as part of being KDE. Some apps are a bit stagnant, in general I’d like to move them to Kirigami because that helps consistency. Kate and KWrite use the same code so congratulations. Band consistency, many apps had their own website, there has been a lot of improvement for this. Consistency within applications has improved.

Méven talks about Wayland goal. In Plasma 5.24 we got the Overview Effect, improved NVidia support (where the distro uses the patches), improved stability too. In Plasma 5.25 we got touch mode for better tablet support and a tonne of stability improvements. In Plasma 5.26 we got improved virtual keyboard support, improved graphical tablet support, xwayland and DPI improvements and a lot of stability improvement. But showstoppers are still missing colour profiles, blurry rendering with fractional scaling and many more. Virtualisation and screen recording still needed before people can switch from X.

Announcing the New Goals for 2022:
KDE For All: Boosting Accessibility with Carl
Automate and systematize internal processes with Nate – make sure people’s processes they know about are automated so when they move on that knowledge is still there, e.g. bug triaging, CI checks, document knowledge, doing off-boarding when people leave,
Sustainable Software with Corelius, see eco.kde.org

Barcelona goes hipster with record store cocktail bars

Tomaz spoke on Terminals. Unix users will use a shell, but terminals are difficult. He got some users to use different terminals with various tasks: how to change text size, how to open another program etc. 5 different universities took part. Changing text size. For xterm etc 0%, gnome-terminal 90% could but the name of option is “zoom”. Konsole 100%. Kitty is a new terminal based on Rust got 70%. Copy and paste didn’t work well as everyone used control-c (except on MacOS) maybe we should allow control-C for copy. One student cried in despair. Thankfully Konsole has sane defaults but we are still far from good. He demos the SSH session panel and the quick commands

Devin Lin and Bhushan spoke about Plasma Mobile. Within Plasma Mobile there’s over 40+ projects, 300+ tickets and 6+ active downstreams (opensuse, fedora, manjaro, postmarketOS etc). He showed the new shell as it will be in Plasma 5.26. He shows the quick settings. In the middle is the pin view with notifications, the same tech as desktop. He shows the audio applet and lock screen notifications. For telephony they switched from ofono to modemmanager. Plasma Dialer is for calls. Spacebar app is for SMS and MMS. callaudiod from Mobian for audio routing. There’s convergent apps like Discover, Elisa, Koko, Kasts, Neochat, KClock etc. Some mobile specific apps like Angelfish, QMLKonsole. Supports Pinephones and postmarketOS supporter devices such as OnePlus 6. It can also be installed anywhere on Linux distros. But there is more vendor lock in coming, a fragmentation between open mobile communities. Coming up: Kontact. Improved tablet support. And a great feature would be full convergence – you can walk up to monitors and plug in mouse and keyboard and get a desktop.

Bhush and Devin talk Plasma Mobile