KDiagram 3.0.0

KDiagram is two powerful libraries (KChart, KGantt) for creating business diagrams.

Version 3.0.0 is now available for packaging.

It moves KDiagram to use Qt 6. It is co-installable with previous Qt 5 versions and distros may want to package both alongside each other for app compatibility.

URL: https://download.kde.org/stable/kdiagram/3.0.0/
SHA256: 6d5f53dfdd019018151c0193a01eed36df10111a92c7c06ed7d631535e943c21

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell jr@jriddell.org

KWeatherCore 0.8.0

KWeatherCore is a library to facilitate retrieval of weather information including forecasts and alerts.

0.8.0 is available for packaging now

URL: https://download.kde.org/stable/kweathercore/0.8.0/
SHA256: 9bcac13daf98705e2f0d5b06b21a1a8694962078fce1bf620dbbc364873a0efeS
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

This release moves the library to use Qt 6. It is not compatible with older Qt 5 versions of the library so should only be packaged when KWeather is released or in testing archives.

qqc2-breeze5-style 6 Alpha

qqc2-breeze5-style is a theme used by Plasma Mobile. This alpha release is a re-bundling of the Plasma/5.27 branch of qqc2-breeze-style. It is for use by distros shipping alpha releases of Plasma 6 so that Qt 5 apps continue to be themed appropriately.

URL: https://download.kde.org/unstable/qqc2-breeze5-style/

SHA256: 813f9da4861567e70d1eccf3a3a092d802ac9475a91070fb47fa

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

Oxygen Icons 6 Alpha Released

Oxygen Icons is an icon theme for use with any XDG compliant app and desktop.

It is part of KDE Frameworks 6 but is now released independently to save on resources.

This is the first (and likely only) pre-release, versioned 5.245.0, and it will have a stable release alongside KDE Frameworks 6 in February.

Distros which ship this version can drop the version released as part of KDE Frameworks 5.

sha256: b082a1a9a6d06cdeee2863555951609e95dd499f133035d04719a16f8500497f

URL: https://download.kde.org/unstable/oxygen-icons/

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

KDSOAP WS-Discovery Client 0.3.0

This project is trying to create a WS-Discovery client library based on the KDSoap

The name is short for Klarälvdalens Datakonsult AB Simple Object Access Protocol Web Services Addressing Discovery Client

It is used by the SMB KIO worker from kio-extras.

kio-extras will have two releases as part of KDE’s 6th Megarelease, one for Qt 5 and one for Qt 6. Distros should build and ship both versions of kio-extras but the Qt5 build should use an internal static copy of kdsoap-ws-discovery-client so does not need to be built separately. The Qt 6 build of kio-extras does need this external build of kdsoap-ws-discovery-client. Distros will need an up to date copy of KDSoap library https://github.com/KDAB/KDSoap/tags.

SHA 256: 5007747f1ce607639bb63244f8894c03a15194c0a891b8d85e10d76dbdf79188
URL: https://download.kde.org/unstable/kdsoap-ws-discovery-client/
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

XWayland Video Bridge 0.3

# XWayland Video Bridge (xwaylandvideobridge)

The first stable release of XWayland Video Bridge is out now for packaging.


sha256 f8da6e8fe0ec3bd5ea797af8aad8fe1daab36fc3c77e2d36bb7443832cdfcffa

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

# About

By design, X11 applications can’t access window or screen contents for wayland clients. This is fine in principle, but it breaks screen sharing in tools like Discord, MS Teams, Skype, etc and more.

This tool allows us to share specific windows to X11 clients, but within the control of the user at all times.

# How to use

xwaylandvideobridge should autostart on login. It will run in the background. Next time you try to share a window a prompt will appear.
The previously selected window should now be available for sharing. The title will always be “Wayland to X11 bridge” no matter what window is selected.

The system tray icon provides finer control.

# Use outside Plasma

This should work on any desktop that supports the Xdg desktop portals and Pipewire streaming and have a working system tray.

# Future

Ideally this should be more automatic, but this tool aims purely to serve as a stop-gap whilst we wait for these clients to get native wayland support and for the surrounding wayland protocols to be better. How much more it gets developed depends on feedback and how the surrounding ecosystem evolves.

KUserFeedback 1.3.0

KUserFeedback is a library for collecting user feedback for apps via telemetry and surveys.
Version 1.3.0 is now available for packaging.

This version adds the option to build it for Qt 6. It can also be built for Qt 5 and distros may want to package it twice, however this will mean handling some overlapping files and most apps which use it will be ported to Qt 6 as part of the KDE 6 MegaReleases in February so distros may prefer to drop Qt 5 builds then.

sha256 252308b822dd4690ea85ab1688c9b0da5512978ac6b435f77a5979fc1d2ffd13

URL https://download.kde.org/stable/kuserfeedback/

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

* new release 1.3
* Add CC0-1.0 license
* Do not look for QtHelp if docs are disabled
* Remove unneeded setting of CMake policies, implied by requiring 3.16
* Add flatpak CI
* Bump minimum cmake version to 3.16
* Add explicit moc includes to sources for moc-covered headers
* Remove Designer&#39;s &quot;.&quot; normaloff file data from icon properties in .ui files
* Use latest-kf6 branch for Qt6
* In qt6 plugin name is KUserFeedbackQmlQt6
* PHP 8 compatibility
* Fix Qt 6 build of PHP-dependent unit tests
* categoryaggregationmodel
* Fix include form (use &quot;&quot; instead of &lt;&gt;) for provider.h
* Remove forward declaration as include is already defined
* Fix debug message
* Autogenerate debug categories
* Create logging_p.cpp directly
* Fix show headers in qtc6
* Compatibility is not necessary now
* kuserfeedback_version.h was not installed
* Fix compatibility (install temporary include in KUserFeedBack too)
* Add warning about removing compatibility
* Show all headers in includes
* KUserFeedbackConsole is an internal static lib too
* Not necessary here as it&#39;s an internal static lib
* Fix install target file
* Allow to co-install
* Port to new syntax
* Add Qt 6 Android CI
* typos–
* Add Qt6 windows CI support
* Hide finding docs dependencies behind ENABLE_DOCS
* Install translations
* qtversionsource: fix Qt 6.5 build
* avoid invalid lastX times
* .gitlab-ci.yml: enable static builds
* add it to CI qt6 bsd
* Fix cmakename in metainfo.yaml
* Tell no data has been sent if no data has been sent
* Give the dialog an actual title
* Remove duplicate header between cpp/h files
* Add windows CI

libqaccessibilityclient 0.5.0

libqaccessibilityclient 0.5.0 is out now. The release adds Qt 6 support. libqaccessibilityclient is used by KMag and KWin both of which have forthcoming releases that are ported to Qt 6 so there should be no need for distros to build two versions.


Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

* new release: new version and new ECM URL
* Bump min required Qt6 to 6.5
* Port away from deprecated operator+(Qt::Modifier modifier, Qt::Key key
* Port away from deprecated QVariant::Type
* Add explicit moc includes to sources for moc-covered headers
* Use ECMDeprecationSettings
* Have export macros header include version header (Qt6-only)
* Use QAccessibilityClient6 as package name for Qt6 version
* Use variable to hold CMake config name, also targets file name
* Install headers into QAccessibilityClient/ visibility layer
* Move version setup into src/ subdir
* Use generic target name for generated library
* Move library target property setting next to declaration
* Move CMake config template file into src/ subdir
* Remove unimplemented methods
* Use ECM master when building for Qt6
* Use CamelCase includes
* Fix finding the unit test helper executable
* Add FreeBSD Qt6 CI support
* Add Gitlab CI
* Remove duplicate header between cpp/h files
* We depend against qt5.15
* Use -qt6 when we build against qt6
* Fix find_package
* Fix signals
* Adapt build system for building against qt6
* It&#39;s already define in ecm
* Make compile with strict compile flags
* Make building without deprecated methods
* Fix some compile error
* Add CI definitions information for seed job
* Use more target-centric cmake code
* Use GenerateExportHeader
* Remove module prefixe from Qt includes
* Do not use deprecate QFlatgs(nullptr) constructor
* Fix member init order to match definition order
* Clean up include dirs
* Convert license statements to SPDX expressions
* Add support for AccessibleId property
* Update README.md a bit
* Support API documentation generation with kapidox
* Remove the references to projects.kde.org
* Fix qstring minor optimization
* Port setMargins
* Use only undeprecated KDEInstallDirs variables
* KDECMakeSettings already cares for CMAKE_AUTOMOC and BUILD_TESTING
* Fix use in cross compilation
* more complete release instructions

Phonon 4.12.0 and Phonon-VLC 0.12.0

Phonon 4.12.0 and Phonon-VLC (phonon-backend-vlc) have new releases today which add Qt 6 support. These tars will by default build Qt 5 and 6 at the same time and we advise distros to ship both builds.

Phonon GStreamer (phonon-backend-gstreamer) is deprecated and we do not advise to use it.




  • Future-proof build fix for clang > 16
  • Allow build against Qt6 when also built against Qt5
  • Mark Qt6Core5Compat as REQUIRED for Qt6 builds
  • let the user opt out of qt 5 or 6 builds
  • bring back includes dir
  • build qt5 and 6 at the same time
  • be explicit about default values
  • fix build for qt6
  • Omit legacy CMake variables when building with Qt 6
  • fix build with clang-16
  • Don’t install legacy includes when building against Qt 6
  • Allow to build against last kf6
  • Add Windows Qt 6 CI
  • Update the translations folder name
  • Don’t redefine CMAKE_MODULE_PATH
  • .gitlab-ci.yml: enable static builds
  • Port away from deprecated INSTALL_TARGETS_DEFAULT_ARGS
  • Add FreeBSD Qt6 CI support
  • We depend against qt5.15 now
  • Add Windows CI
  • Add Android Qt5 and Qt6 CI
  • Take out empty deprecated registerMetaTypes() method in Qt6 builds
  • We need const char * (make compile qt6 apps)
  • Qt::AA_UseHighDpiPixmaps is enabled by default in qt6
  • Add Qt5 and Qt6 Linux CI
  • Fix the Qt6 build
  • Fix phonon lib name
  • Fix coding style + increase ecm
  • Adapt build system for building against qt6
  • Adapt code for building against qt6
  • Make it compiles without deprecated methods
  • Add KDE CI configuration for Phonon
  • Fix typos found by codespell
  • Update IRC network name in Doxygen main page
  • Allow to compile with unity support
  • Port away from deprecated Qt methods
  • Remove module prefixes from Qt includes
  • Port away from deprecated QList::swap(i, j)
  • Port away from deprecated qVariantFromValue()
  • Use Q_DECLARE_OPERATORS_FOR_FLAGS in same namespace as flags definition
  • Use more nullptr
  • Improve metainfo.yaml
  • Use NO_POLICY_SCOPE with KDECompilerSettings
  • Remove explicit use of ECM_KDE_MODULE_DIR, is part of ECM_MODULE_PATH
  • Remove “virtual” where “override” is used; add missing virtual in destructors
  • Revert “Port deprecated qVariantFromValue method”
  • Port deprecated qVariantFromValue method
  • bump to 4.11.1 for release
  • Remove phonon from the include directory
  • throw out the qml demo
  • import gpl2 for new settings source code
  • Reorder cmake macro includes




  • drop support for libvlc 2.x
  • support qt5/6 multibuild
  • mediaobject new can throw but does not return null
  • .gitignore ignore /compile_commands.json
  • Add Linux Qt 5 CI
  • Update the translations folder name
  • Remove explicit use of ECM_KDE_MODULE_DIR, is part of ECM_MODULE_PATH
  • Make compile against qt6
  • Add override keyword + use nullptr
  • Show all headers in qtc6
  • Adapt build system for building against qt6
  • Use Qt::end
  • Remove obsolete include
  • Use override keyword
  • Use QStringLiteral (QLAtin1String is deprecated)
  • Fix typos found by codespell
  • debug vmem format setup
  • use picture_t to calculate pitch lines
  • Update the obsolete projects.kde.org URL
  • Revert “Port deprecated QLatin1Literal -> QLatin1String”
  • Port deprecated QLatin1Literal -> QLatin1String
  • preliminary vlc4 port
  • only set xwindow when the qt platform actually is xcb (on unix)

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>

OpenUK Awards 2023 Open for Nominations

The OpenUK Awards are open for nominations for 2023.

Awards timetable

  • Nominations open 28th July 2023
  • Nominations close midnight UK 19th September 2023 (this will not be extended)
  • Shortlist of up to 3 nominees per category announced 18th October 2023
  • Winners Announced 20th November 2023: Black Tie Awards Ceremony and dinner at House of Lords sponsored by Lord Vaizey, 6-10.30pm, tickets limited 

Self nominations are very welcome. If you know fit into the categories or have a project or company which does or know anyone else who does then fill in the form and say why it’s deserved. You might get fame and glory or at the least a dinner in the house of lords.

Insulating a pre-1919 stone built Scottish House, Esk Tower

Here is a Twitter thread I posted in January 2021 about insulating a Scottish stone house. There’s seemingly no knowledge in the industry or in government agencies about how to do this so we had to research and project manage it myself including most of the labour (lockdown and budgets ment we could hire one guy to help but not all the time). You can’t get grants or loans for self build projects. The Scottish government plan for mass home insulation (the only proven way to reduce household greenhouse emotions) is pretty much a failure from my experience. Anywhere here’s how..

See also Esk Tower – Retrofit Insulating a pre-1919 Scottish Stone Built House video (YouTube) and Keeping Stone Dry, a French Drain on pre-1919 Scottish House Esk Tower blog.

This is my tower. It’s an old engine room for a coal mine to pump water out the mine. But these days it’s a house. The walls are 1m thick. How do you keep a house like this warm?
Start by removing the plaster board and frame. I’m sure everwarm are lovely when working with modern builds (and not breaking lock down) but their suggestion to add an extra 5cm boards inside it would block air flow and remove space.
We found an old fire place. We scrubbed the walls with metal brushes and an industrial hoover. It took an age

In one of the rooms we found an old fire place

The we lifted some floor boards and put gutex wood fibre around the edge of the outside walls. Can’t find a pic so you’ll need to imagine it

Gutex thermofibre goes between the skeilings which are the 45° roof slopes. It’s wood fibre which feels a bit like wool insulation.
And the Gutex Multitherm to cover the coombs
Next it’s time for the @lime_products
plaster, it needs two coats and a mesh cut and pushed into the first. Plaster can be smoothed after but if you don’t then it looks more authentic like a French farm house.
Buy an oak mantel piece, fancy wallpaper and lining, some classic furniture and a real wool carpet, use decent underlay but be warned it’s slow to fit it in. Voila, tower room now insulated and looks good and stone work will remain solid for many more years.

Keeping Stone Dry, a French Drain on pre-1919 Scottish House Esk Tower

Here is a Twitter thread I made in February 2021 about keep the stone on our house dry by digging a French drain. I don’t want to be locked into Twitter so I’m re-posting it here to keep it alive.

See also Esk Tower – Retrofit Insulating a pre-1919 Scottish Stone Built House video (YouTube) and Insulating a pre-1919 stone built Scottish House, Esk Tower blog.

This is my home. Esk Tower. Built as.a pumping house it’s now my house. Every new owner has added a new layer around the outside to make the grounds look more pretty. This is a story about a French drain we dug.
It has its own culvert which probably used to keep the pumping engines cool. It’s how water should be around a building, all channeled and not likely to affect the stone.
As the pandemic spread last march I was high above the world repainting the dormer windows looking down on the ground below pondering what was under it and how the stone was keeping.
So one day with nothing much to do except stay at home we took an SDS drill, pick axe and many shovels and dig around a corner. Layers of ornamental stones and plastic sheeting gave way to layer of brick, coal and finally clay. It was hard work.but the stone could breath again.
The next weekend we tried another corner, this was cemented in so the sds drill came out. It hardly touched it.
Fortunately we had got a Titan stone cutting circular saw with blades the size of dinner plates there is no arguing with this.
Having dug up the cement the stone could breath for the first time in a century and get a good wash down.
Then it needs lots of repointing. Using breathable lime from masons mortars or course, not the cement people in recent decades have used, that just traps in moisture damaging the stone.
I spent a weekend drilling under the doorway, full of rubble, glass and a frog under there.
All of which produces lots of waste, beware of telephone wires when stacking skips three high.
Ah now this corner was tricky, a clay sewage pipe from the neighbouring house, cracked of course so not surprising our stone was reading as more damp than you can burn firewood at. Emergency drains people came out and replaced the pipe.
Ease up ment we could get in help and we got the trench along the front of the house. I’d been wondering how the down pipes connected, it turns out the didn’t.
With the digging near the building done by hand we could hire a digger for the rest, this is a lot more fun than doing it by hand
Alas there a lot of utilities and a digger makes easy work of water pipes. And electric cables. And gas pipes.
There followed a panicked night of young men in yellow jackets and the following day digging in mud to find where water needed reconnecting and make sure electric was ok. This was very much type 2 fun. Maybe type 3.
At last we could replace the rest of the clay sewer and put in the French drain pipe to help water drain away from the walls.
Then make a bund of earth on the right and cover that in fabric to drain more water away from the building. Then connect up the rain water pipes from the roof. lots of measuring and cutting needed here.
Finally fill in above the new drain with pebbles and sort out all the dug up earth to remove stones and lay that back down ready for grass in the new year
And the random hole we cleared out earlier and in years past was a stair case we put a roof on and made into a wood store.
And that is the story of how we made the tower stay strong and dry, with lots of digging and lime and French drains and utilities all over the place.

Removing a Blocking Tree from the River Nith

Towards the end of the gorge in the River Nith, a commonly run whitewater section in south west Scotland, a large tree had blocked the course. Depending on the river level this was not easy to go round or cross and for over a year social media had a steady stream of people warning about it. Kyle Canoe Club even stopped running the section of river because of it.

So I set about trying to work out what it would take to remove it. The first task is to go to the site and assess, images on Facebook only show so much. It was 20m down a steep slope with no easy access and there were at least 4 trees stuck across in the same spot. They ranged from about 50cm to 80cm in diameter. This was not something that could be done with a hand saw and manual lifting.

I had to find someone who knew how to use a chainsaw and winch lifts in difficult environment and got hold of Scot Muir from the Forth Rivers Trust who I had trained up in white water safety the year before. Not only did he have winches and chains and axes, he knew the right fuesl to use in the chainsaw when near water so as not to cause a pollution incident.

I then visited the estate office for the site, which is Richie Scott’s large Buccleuch estate. The local head of forestry was happy for us to go ahead but understandably wanted a risk assessment and to know our qualifications.

Then I applied for money to pay for my travel and a day of Scot’s time from the Andy Jackson Fund for Access, a simple enough application but you do need to be mindful of who is paying and when and what happens if you don’t succeed on your first attempt.

Next it was a case of watching my webpage SCA Where’s the Water for low flows. When they arrived and my dates aligned with Scot’s we met up early in the morning and spent 8 hours with ropes, winches, chains and chainsaws. Every cut needed problem solving to work out what angles we could get a grip on and how we could cut it without ourselves ending up in the water or the trees just getting stuck again. The final trunk was so thick and so waterlogged we had to rotate it several times to be able to cut through and it needed pulled into an eddy when it sank rather than floating away. Some paddlers ascending the river stopped by to say hi and give us their thanks which was lovely.

So for anyone who comes across strainers on the river have a look and consider if you can help remove it. There’s funding available from the Andy Jackson Fund and we’re happy to help with pointers of how to do it, but it’s a process that takes some planning and problem solving and works best in the summer months so let’s get removing those trees pronto.

Getting KDE Apps to our Users

Some time ago, before the world locked down, I pondered that KDE wasn’t very good at getting our apps to our users. We didn’t even have a website that listed our apps with download links. If you were an open source app developer using our tech (Qt and KDE Frameworks) would you come into KDE to build your app or just start a project on Github and do it yourself? KDE has community which means some people to help look over your work and maybe contribute and translate and some promo and branding mindshare and there’s teams of people in the distros who specialise in packaging our stuff. But successful projects like Krita and Digikam and indeed my own Plasma release scripts still have to do a lot on top of what KDE communally gives them.

So I launched apps.kde.org and made the All About the Apps goal which was selected in the hope of getting KDE to support taking our apps to the users more slickly. I didn’t manage to make much progress with the goal which I will readily take the blame for. After some fighting I managed to get our announcements linking to the app stores directly but I didn’t manage to get much else slicker.

What my dream still is would be for apps to have a button that…

  • Bumps the version number in the source
  • Makes the tar and uploads it to a secret place
  • Tells the Linux distros to package it
  • Packaging for Windows/Mac/Android/Snap/Flatpak/Appimage would be in the Git repo and our CI would now build them and upload to the relevant test sites
  • OpenQA style tests would be in the git repo and our CI would now test these packages
  • Another button would make the source and packages public in Microsoft Store/Appimagehub/SnapStore/Flathub/download.kde.org and somehow tells the Linux distros and send the announce to the Discuss group and start off a blog post for you

I just released KDE ISO Image Writer (another project I didn’t make much progress with for too many years) and had a chance to see how it all felt

There’s no nice buttons and while we have a tool to make the tar and I have a tool to add the release to the AppStream file, there’s nothing to bump version numbers in cmake or add releases to AppStream or make templates for pre-announcements and announcements.

How’s the packaging and app store situation?

Windows and Microsoft Store

I had to go out and buy a laptop for this, there’s virtual machines available for free which should work but I didn’t trust them with the hardware needed here and they’re time limited so I’m a bit wary of setting up Craft then having to do it again when the time runs out. Craft does a lot of the hard work building for Windows and binary-factory and elite Craft dev hvonreth is often around to give help.

Getting access to the Microsoft Store takes a sysadmin request and working out what to ask for then working out what to upload. I uploaded the wrong thing (a .appx file) when it should have been a .appxupload file and that seemed to break the MS Store from accepting it at all. After lots of twiddling and deleting and generally turning it off and on again I got it uploaded and a day later it was rejected with the claim that it crashed. While the app had installed and run fine for me locally using this .appxupload thing to install it locally did indeed cause it to crash. We diagnosed that to the elevated privileges needed and after some Googling it turns out the Microsoft Store doesn’t seem to support this at all. So my dream of having it available to install there has not worked out, but you can get the installer from download.kde.org and use that.

There’s still only 9 KDE apps on the MS Store at a quick “KDE” search which seems far too few.


These have been around for decades and KDE has always had fans of this format (it used to be called Klik at one point e.g. test KOffice). SUSE devs were a big fan at one point. In recent years its gained auto-update, daemons to manage the system integration, build tools, support from top apps like Krita and Digikam and a centralised place to get it in AppimageHub (not to be confused with the other AppimageHub). And yet mass adoption seems as far off as ever.

There’s two ways I found to build it, with appimage-builder which was easy enough to pick up and make a packaging file which uses packages from Ubuntu and neon.

Or you can reuse Craft (used earlier for Windows) to build on Linux for the AppImage. This also allows binary-factory integration but I don’t seem to have got this working yet. It might also be worth exploring openSUSE’s OSB which might allow for other platforms.

I tried to upload it to AppimageHub but that broke the website which needed some back channel chats to fix. Once uploaded it appears shortly, no further bureaucracy needed (which is a bit scary). It doesn’t appear on the KDE Store which seems to be about themes and addons rather than apps. And I put it on download.kde.org.

It’s hard to know how popular AppImage is within KDE, neither of the AppImageHubs seem easy to search and many apps publish their own in various ways. There’s about a dozen (non-Maui) KDE apps with appimages on download.kde.org plus a dozen Maui apps which are developed within KDE and used by the Nitrux distro. I hear complains that AppImage doesn’t support Wayland which will limit them.

Flatpak and Flathub

This format has lots of good feels and mindshare because it integrates well with the existing open source communities.

The flatpak-manifest.json file can be added directly to the repo (which I’m very jealous of, when I suggested it for Snaps it was rejected and caused me to grump off the whole Goal) and that can be added to binary-factory but also to invent.kde.org CI. There’s an active team around to help out. That gets uploaded to a KDE testing repo where you can install and test.

But to get it out to the users there’s a separate process for Flathub the main host for Flatpak packages. That takes a another week or two of bureaucracy to get published (bureaucracy when publishing software for people to install is necessary and important). There’s also a stats website which suggests it has 300 installs.

Searching for KDE on Flathub gives over 130 results.


This works the smoothest if I say so myself. Add the packaging to the snapcraft repo and it builds on the invent.kde.org CI which actually just sends it off to the launchpad builders and it builds for ARM and AMD64. Then you get one of the KDE Snapcraft team (Scarlett, me, Harald) to register it and voila it uploads to candidate channel for testing. It needs manually moved into the stable release channel which can either be done by our team or we can share admin rights. The bureaucracy comes when you need to ask for permissions such ISO Image Writer needing access to disks, that took a week to be accepted. The packages are build using KDE neon for Qt and KDE Frameworks etc and we’ve had troubles before when KDE neon moves onto new versions of Qt but the content Snap has stayed on older ones, but we’re working out when to save a spare snapshot of it. The build tool Snapcraft also has a kde-neon extension which just adds in common parts used by KDE snaps but sometimes that gets out of date too so we’ve had to work out ways around it.

The Snapcraft KDE page has about 140 apps. From the admin page I can see ISO Image Writer has 920 installs around the world (not bad for two days old). The store doesn’t seem great at picking up the AppStream meta data so screenshot and icons are often out of date which I’ve brought up with the devs a bunch of times. It’s centralised around a single Canonical owned store which open source/free software fans can find a bad smell but it is what users want.


I’ve not looked at f-droid, Google Play, Chocolately, or Apple’s App Store. With the probable exception of Apple’s store we should embrace all of these.

I couldn’t find any tools to add release data (the files to download) to AppStream file which is what ends up on apps.kde.org, that feels like a low-hanging-fruit fix. Building pre-release tars which aren’t available publicly seems tricky to do, we have that for KDE neon but none of the app stores have it. Similarly tools to make templates for release announcements can’t be hard, I do that for Plasma already.

So lots of work still to do to make KDE have slick processes for getting our software out there to the users, it’s social and technical challenges and cultural shifts take a long time. Loads of people have put in lots of work to get us where we have today but still lots to do. If you’re up for a challenge and want to help I hope this blog shows the challenges and potential for fixing them rather than sounding too negative. Let’s keep KDE being All About the Apps!

KDE ISO Image Writer beta 0.9.2


73a7079c654a3cec3f7065e5296b1ce34ff565b894247fc7f9799f7c4d0c41c5  isoimagewriter-0.9.2.tar.xz

Windows builds are back

  • update ubuntu and arch key
  • open ISO from current directory
  • claim freebsd support
  • ifdef linux only code
  • add back in Windows support
  • Verify ISO with async API

Release notes:

Ubuntu and Arch ISOs appear not to be verified by gpgme library
AppImage, Flatpak and Microsoft Store packaging needs doing (Snap in progress)
More testing on Windows would be good

isoimagewriter 0.9.1

Just out is isoimagewriter 0.9.1, an unstable alpha release of the ISO image disk writing tool for USB and flash drives.

This adds udisks2 support and drops KAuth support. It also adds Qt6 and KF6 support. However I don’t think Windows support or signature checking is working currently.



Signed with my key https://jriddell.org/esk-riddell.gpg

pub   dsa1024 2001-10-09 [SC]
      13C1 6D03 EDE7 2851 4473  AA73 A506 E6D4 DD4D 5088
uid           [ultimate] Jonathan Riddell <jriddell@ubuntu.com>
uid           [ultimate] Jonathan Riddell <jr@jriddell.org>
sub   elg1024 2001-10-09 [E]
  • Full changelog
  • unistd.h does not appear to be needed and breaks windows build
  • switch to QRegularExpression API for Qt 6 happyness
  • remove build warnings
  • Remove old code and debugging
  • Bump version number Remove use of KAuth now we use udisks2 on Linux
  • Remove KAuth use now that we use UDisks2
  • update copyright
  • do not use O_DIRECT which makes linux stop using my insecure buffer, try O_EXCL instead which stops block devices being used by multiple apps
  • try some debugging but write not working so meh what is going on
  • attempt to open device with udisks but it does not work
  • port physicaldevice to udisks2
  • link to qdbus and use udisks2 to get devices
  • Add FreeBSD Qt6 CI support
  • don’t duplicate search Auth
  • Search kf<version>
  • Window doesn’t have it
  • We need kauth lib
  • Make it compile against last kf6
  • Qgpgme has never been required, restore the status quo so the build on Windows can proceed
  • Show all headers in qtc6
  • Add support for QGpgmeQt6
  • adapt to in tree i18n
  • Use ecm_set_disabled_deprecation_versions
  • Add clickable IsoLineEdit to open file dialog
  • Let craft embed the manifest
  • CMakeLists.txt if condition is identical to elseif condition
  • .gitignore sync with .gitignore from frameworks/kconfig
  • Remove explicit use of ECM_KDE_MODULE_DIR, is part of ECM_MODULE_PATH
  • Allow compilation on FreeBSD
  • Add Qt6 CI
  • Port from QRegExp to QRegularExpression
  • Port away from deprecated install dirs
  • Also adapt nativeEventFilter signatures for Windows and Mac
  • Fix some qt6 compile error
  • Adapt build system for building against qt6
  • Add missing headers
  • Add content rating tag
  • allow kauth to be optional on linux with cmake -DUSE_KAUTH=off
  • set app version and update copyright

Paddlesport Safety and Rescue Course Provider

I did the training to become a provider of the British Canoeing Paddlesport Safety and Rescue Course (PSR or PSRC). This course is a new course which replaces the old Foundation Safety and Rescue Course (FSRT). The training was led by Calum Mcnichol at Pinkston. Here’s some notes for my own reference and anyone else who cares.

Remit is to train 8 people over 6 hours for safety and rescue in sheltered water. That means “Ungraded sections of slow moving rivers where the group could paddle upstream against the flow (not involving the shooting of, or playing on, weirs or running rapids).
Areas of open water (e.g. lakes and lochs) where the paddlers are no more than 200 metres offshore and the wind strength does not exceed Beaufort force 3, avoiding the
group being swept/blown out of the safe working area. Slow moving estuaries (less than 0.5 Knots)”.

This is a mixed craft course where a range of crafts should be available (kayaks, SUPs, open Candians, sit on tops etc of various shapes). However the trainees only need to use their preferred boat. So they might all want to use sea kayaks all day long but it should include trying to rescue other craft from the sea kayaks.

There’s no need for throwbags in this course. No mention of shout-reach-throw stuff. The use of the word “victim” has been replaced with “casualty” for self-team-casualty-equipment.

Point the trainees to the PDFs on British Canoeing Awarding Body website first and the videos on YouTube. Hopefully they will get ideas of what’s involved first which means less direct instruction and more improving their skills.

In the old UKCC coach syllabuses they always emphasises that demos should be given silently. This is nonsense and can be ignored but still be careful what language you’re using during the demos.

Get them to reflect after the course. Possibly not under pressure (he isn’t a fan of e.g. asking for top three learning points from each person).

Providers need an authentication before the event.

I ran a session on unconscious paddler rescues and I ran it in reverse, talking about what to do with unconscious paddler on the land, how to get them out the boat and finally how to get the kayak upright. I could also include how to get them on a SUP to float to the side and I suppose how to swim with an unconscious paddler. I discussed differences if they suspect a spinal injury and if they are not breathing.

Ubuntu Summit 2022 Prague

Arriving for the first session

One of the lovelyest things about open community development is you can do it from home but you also get to travel to fancy places to meet your fellow devs and share ideas. Lockdowns stopped that for two years but with Akademy last month it felt like open tech life could return to a more fun state. Then came the return of a meeting that had last happened a decade ago, the Ubuntu Summit. A bunch of KDE devs were invited, me (who does KDE neon), Ade (who does Calamares installer), Scarlett (who does Snap packages), Aleix (who does Discover app installers), Harald (KDE neon), Luca (OpenRazor and hangs around KDE).

Scarlett Gives a Workshop on KDE apps as Snap packages

Unlike the old Ubuntu Developer Summits this wasn’t aimed at planning the next Ubuntu release, they had already spent the last two weeks in the same hotel doing that. This was just a fun sharing of ideas conference where people gave talks and workshops on what they were working on.

Me and Scarlett gave a lightning talk on KDE Snaps and Scarlett gave a workshop on KDE Snaps. KDE has over 100 apps in the Snap store, a great way to get KDE software promptly.

Ade gave a talk about his Calamares distro installer and compared it to Ubuntu’s installer which is being rewritten in Flutter. Harald gave talks on KDE neon and on secrets of KDE Plasma. Aleix spoke about the KDE community and what we do. Ade also talked about KDE Frameworks.

KDE 1 mascot Kandalf is Harald’s favourite character

There was plenty of talks on Snaps, it’s how Canonical makes money where it’s used in embedded devices, if you can call a 10 ton steel press an embedded device. Adam Szopa works for KDE and also Canonical and he gave a talk on Linux gaming, I hear Canonical has a whole team just to get gaming working well. Canonical also makes money from Microsoft’s Windows Services for Linux (WSL) and there were a bunch of talks showing this off. Using JuJu to set up servers is another large project Canonical works on which had some talks. Flutter seems very fashionable, a rival to Qt that is gaining attention, it uses the Dart programming language and is designed for mobile devices but Canonical has been working with Google to port it to Linux desktops (using GTK).

KDE spods at Ubuntu Summit 2022

It was great to catch up with Erich Eickmeyer who makes Ubuntu Studio and works for Kubuntu Focus selling laptops with Plasma. Ubuntu Studio ships with Plasma of course. I spoke to him about Wayland and he says the next release (for Ubuntu plus Plasma) is looking great for Wayland.

It was also great to meet Simon Quigley (tsimonq2) who does Lubuntu and has worked on Kubuntu. LxQt is a lightweight Linux desktop and probably one of the largest users of KDE Frameworks outside KDE, they use KScreen, KIdleTime, Solid, KWindowSystem and probably other Frameworks.

Head Honcho Shuttleworth

Canonical is reported to be profitable and hiring (after some “brutal times”) and spirits seem to be good. They have a community team now and are keen to engage.

There were also inspiring talks from e.g. a Zimbabwean developer talking about the challenges of taking software development on donkeys here he lives. Geopolitics is an interesting subject but one aspect I’ve not thought about before is how countries with a coastline can connect their internet directly to the world while countries without such as Zimbabwe are dependent on neighbouring countries to pass it through.

Lorenzo’s Music is an open source band who create on Github using Ubuntu Studio and Kdenlive. They gave a great performance on the river boat cruise under the Charles bridge in Prague.

Thanks to Canonical for sponsoring travel and helping us re-engage.