24 Apr 2019

feedPlanet GNOME

Christian Hergert: Builder 3.33.1

Our first 3.33 release has landed as we move towards 3.34. There is a lot to do this cycle in case you're interested in contributing. The best way to get started is to dive into the code. We can help you with that on IRC.

Lots of this release is code behind the scenes, so screenshots won't do them justice. But there are some visible goodies too.

We got a DBus Inspector inspired by D-feet. The long term goal is to merge that new code into D-feet itself.

Occasionally we got issues filed about not being able to half-tile Builder. The smaller your screen size, the more unrealistic of an expectation that is, but we can certainly do a little better. The new search box takes up less space and animates in as necessary.

We gained some initial Podman support so long as your system has support for podman exec --preserve-fds. You can even debug inside the containers if they have gdb in the container.

Some users were surprised by how Builder auto-downloaded SDKs and Runtimes to build projects. So we've added a confirmation dialog to that process so the user can make informed decisions.

I've also moved Git integration out of process. Both the Git and Flatpak plugins previously used git in process which had a number of drawbacks. We created some new API and the gnome-builder-git daemon which provides access to common git operations using libgit2-glib and DBus serialization over stdin/stdout. We have push, stage, and signed commit support, but that currently lacks UI in this release.

24 Apr 2019 12:36am GMT

Christian Hergert: GtkSourceView moved to Meson

The master branch of GtkSourceView (what will become 4.4) has moved to meson for development. I branched gtksourceview-4-2 for patch releases of 4.2.x which will remain autotools. Today's release of gtksourceview-4.3.1 contains both autotools and meson. However 4.3.2 will remove autotools entirely.

I also landed some code to speed up line number drawing which was a non-trivial amount of the render cost while kinetic scrolling.

24 Apr 2019 12:06am GMT

23 Apr 2019

feedPlanet KDE

Bundle Up, It's Time To Discover Some Apps

The Short Of The Long

(or tl;dr)

Would you like to try out Discover's AppImageHub integration? Sure you do! You'll need Discover from git master, and you'll want to install the storekdeapps.knsrc file (which you for now can get by installing the bits found in this scratch repository). Then all you need to do is start up your shiny, new Discover and navigate through Applications to the KDE Store Apps category. Early days, but there you go!

The Long of the Short

(or gimme all that juicy stuff)

And now the long version with me writing about history and stuff, accompanied by a bunch of screenshots and old videos and doodads and whatnot!

2009: The Gluon Years

Once, in the long ago times, before i had finished attending university, i and a few others got together to describe what we then called Gaming Freedom (thanks archive.org for providing us with a functioning link, there, as we've shut down the original site). Some of you reading this will remember a project called Gluon, which was designed as a (primarily) 2D game engine, which would use QML as both the UI language and the internal scripting system, and envisioned as a way to easily create, distribute, play and interact with games, as both creators and players of games. Have a video of me talking about this idea for a while:

Social Games Presentation at Akademy 2010 from Dan Leinir Turthra Jensen on Vimeo.

2010: The Age of Bretzn

Later on, straight out of university, i was hired by then opendesktop.org front person Frank Karlitschek to work with him and a few others on Project Bretzn, which was envisioned as being a way to close the loop and provide a fix for the questionmark on the number two step in the following three-step process:
  1. Build app using some IDE
  2. ?
  3. have users download app from e.g. opendesktop.org's software categories

You might notice a similarity between this and the concepts we described in Gluon's vision. In this project, however, we did indeed achieve the goal, at least for some Linux distributions, by using the then newly renamed Open Build Service to do the heavy lifting of actually building packages. We did this through creating a plugin for Qt Creator which created a set of basic OBS instructions, upload sources, and then once OBS had created packages, distribute those automatically using the Open Collaboration Services API, for which we created an extension supposed to interact with OBS directly. You might be forgiven for not having heard too much about this effort; while it did in fact work, it was perhaps a little more like a proof of concept than an actual, finished product, and after six months of work, we ran out of funds and i had to find somewhere else to pay my rent.

2016: Splitting Frameworks

Since then, i have been working on Open Collaboration Services and KNewStuff on and off, and in the autumn of 2016 i fronted a project to split KNewStuff's UI logic from the logic of its core. Initially this was aimed at allowing the use of KNewStuff entirely without having to link to QWidgets and the like, but it also resulted in a much more sleek engine, which reduced the requirements of the KNewStuffCore to a strict minimum (that is to say, while the KNewStuff Framework is Tier 3, if you only require KNewStuffCore, you can consider it effectively a Tier 2 Framework).

As a result of this work, in addition to being able to build store support into the Peruse comic book reader, it meant that the shiny new software manager Discover was able to finally start allowing users a central location to manage the Plasma extensions and addons which were previously managed in all sorts of varied locations throughout the Plasma Desktop UI. It further, and very rapidly, ended up also showing literally all Application extensions provided by any KNewStuff configuration file found on the system, again in one central location.

2017-2018: Folksonomic Adaptations

One thing which has, arguably, been missing from the Open Collaboration Services API is the ability to filter on types of information which are highly tied to the specific type of content found in some category. The reason this feature has been missing is that OCS itself is designed very explicitly to be content type agnostic. What that means is that if some piece of information is not generally applicable to the vast majority of content, then it isn't exposed through the API.

A couple of examples describe fairly simply how this might be less than great: Say you have a category which is supposed to contain electronic books. This might cause problems for clients consuming this content, as while that might be interpreted to mean anything like epub, mobi, cbz, cbr, dejavue, pdf or indeed any other number of assorted formats used to distribute electronic book content, not all clients are going to be able to actually consume that content. So, being able to filter out bits that you don't support would be very handy.

Since the end of 2018, both the KDE Store, and the Attica and KNewStuffCore frameworks support filtering by a variety of bits of information which are defined per category, rather than directly in the API. See also this maniphest task for the proposed OCS extension (and if anybody reading can help me get my fdo account credentials back so we can get it ratified, do get in touch ;) ).

2019: Bundles of Discoveries

With the ability to filter things based on any arbitrary number of things, it was finally time to get all of this tied together and put a nice bow on top. We had always had the ability to show the applications in Discover, ever since the KNewStuffCore split, but they would invariably show up in a huge bunch listed simply under the name of the configuration file representing them, and underneath the Application Addons category rather than Applications, and you would also get shown literally everything in the categories as well, rather than only the applications you'd be able to actually download and run on your particular device, as well as a few other little annoyances (like the Launch button saying Use instead).

As of now, while things are not rosy and there is certainly more work to be done, we are a very great deal of the way there, and i think it's time i did that thing where i ask people to try it out and tell me which bits are absolutely totally wrong and where i can then see who is wrong (likely me) and how to fix it (hopefully easily).

Thank you to the one or two people who've read until now, and i hope you've enjoyed reading about my personal journey through software distribution :D

You promised me screenshots!

I absolutely did, and here you go! The culmination of ten years of scheming and plotting has come to fruition, and we finally have a way to deliver software in a more social fashion. Now, I realise you are going to scream at us all and say distributions are great at this. They totally are, and that's not the point here, and i would like if we could aim that discussion elsewhere (you will notice how Discover still very much has all the distribution packages up front and centre, particularly in the last screenshot).

That's a whole lot of applications there, in a whole lot of nicely nested categories, you might say, and you'd be right, thank you so much for noticing that!
Oh look, SuperTux, i know that game! Nice screenshots there, think I might just click install on that one.

Oh hey, now that it's installed, guess I'll just click launch...

Nice, let's do this thing, time to do a bit of running and jumping with our favourite, lovable chubby penguin mascot!

Hey, look, it's right there alongside all the other bits of software I've installed, how handy!

The word of the day is: Sunshine. Because we seem to have it now, yay! :)

23 Apr 2019 2:23pm GMT

feedPlanet GNOME

Richard Hughes: Remember the extra metadata if you change a desktop ID!

This is important if you're the upstream maintainer of an application: If you change the desktop ID then it's like breaking API. Changing a desktop ID should be done carefully and in a development branch only - and then you need to communicate it and give the distros a chance to adapt to the new name.

If you're just changing the desktop ID and not forking development, you also need to add something like this in your metainfo.xml file:


GNOME Software gets lots of bugs about showing "duplicate" search results, but there's no reliable way it can know that calibre-gui.desktop is the same app as com.calibre_ebook.calibre without some help. If you're a packager building an application for something like Flathub you only need to include the extra provides line if you're adding a new metainfo.xml file rather than just using rename-appdata-file in the JSON file.

23 Apr 2019 11:51am GMT

22 Apr 2019

feedPlanet KDE

[Some] KDE Applications 19.04 also available in flathub

The KDE Applications 19.04 release announcement (read it if you haven't, it's very complete) mentions some of the applications are available at the snap store, but forgets to mention flathub.

Just wanted to bring up that there's also some of the applications available in there https://flathub.org/apps/search/org.kde.

All the ones that are released along KDE Applications 19.04 were updated on release day (except kubrick that has a compilation issue and will be updated for 19.04.1 and kontact which is a best and to be honest i didn't particularly feel like updating it)

If you feel like helping there's more applications that need adding and more automation that needs to happen, so get in touch :)

22 Apr 2019 10:40pm GMT

Kdenlive 19.04 released

We are happy and proud to announce the release of Kdenlive 19.04 refactored edition concluding a 3 year cycle in which more than 60% of the code base was changed with +144,000 lines of code added and +74,000 lines of code removed. This is our biggest release ever bringing new features, improved stability, greater speed and last but not least maintainability (making it easier to fix bugs and add new features).

New refactored timeline

Split Audio/Video

We have changed the way timeline tracks work. Each track is now either audio or video, and will only accept audio and video clips respectively. When dragging an AV clip from the project bin in timeline, the clip will be automatically split, the video part going on a video track, and the audio part on an audio track.

Configurable layout

Tracks can be individually resized. (Holding down shift makes all video or audio tracks change in height simultaneously.)

Switch live between two different layout modes (Mixed or Split).

Keyboard Navigation

You now have the possibility to move clips and compositions with your keyboard. To do it, select a clip in timeline and use the "Grab Current Item" (Shift+G) function from the Timeline menu.

You can then move the item with your arrow keys. Keyframes can also be moved individually. Just click on a keyframe in timeline, then move it left/right with arrows, change its value with + and -. Alt+arrow to go to another keyframe.

Improved keyframe handling

  • Add a new keyframe by double clicking in timeline.
  • You can move a keyframe without altering it's value by using the vertical line that appears when you are above or below a keyframe.
  • Remove a keyframe by dragging it far above or below the clip limits.

Audio Recording

An option in track headers allows you to have audio record controls. This enables you to play your project while recording a voice over comment. Very handy for making tutorials. (Not available in the AppImage version yet.)

Other improvements

  • Configurable thumbnails for each track. You can choose to display between In frame, In/Out frames, All frames or No thumbnails.
  • Improved workflow due to keyboard shortcuts and track targets.
  • Added group hierarchy (group of groups).
  • You can now copy/paste timeline clips between different projects (if you have 2 running instances of Kdenlive or after opening a different project) using the standard copy/paste.
  • Clip name always displayed when scrolling.
  • Individual clips can now be disabled while still in the timeline but with no audio and no video - (works for all clip types)
  • Faster timeline preview with support for hardware accelerated encoding.
  • Improved feedback on move/resize.
  • Automatic timeline color switch when changing the color theme.
  • When using the Razor tool (x), you can now press shift while moving the mouse cursor over a clip to preview the cut frame.

Project Bin

  • Improve management of proxy clips (can now be deleted for each clip).
  • Shortcut icon to drag only the audio or only the video of a clip in timeline.
  • Improved management of audio/video streams, also allowing to enable/disable audio or video for a clip.


  • Monitor toolbar: move with the mouse to the upper right corner of the monitor to access the toolbar.
  • Support multiple guide overlays.
  • Shortcut icon in clip monitor to drag only the audio or only the video of a clip in timeline.
  • Support for external monitor display using Blackmagic Design decklink cards.

Effects and Compositions

  • Major improvements to the Speed effect.
  • Added back the Motion Tracker. (For compiled MLT versions with OpenCV support only.)
  • You can now define preferred effects and compositions. These will appear in the timeline context menus and in the effect/composition baskets for easier access.
  • Organized effects under 3 categories, "Main" (which contains the most important audio/video effects), "Video effects" and "Audio effects".
  • Tested and removed all effects which are not working.
  • When dragging a composition from the list into timeline, it will automatically adjust its duration (to fit the entire clip or the duration of a clip overlap depending on the context).
  • Move the whole Rotoscoping mask at once. Moving all points in the mask: A cross is displayed at the center of all points that allows moving the whole mask.
  • 1 click transitions


  • Added configurable visual guides.
  • Visualize missing elements, allowing to move or delete them.
  • A combobox allows you to choose the default background, between checkered, black and white.
  • Align buttons now cycle to allow you to align to safe margins and frame border instead of just frame border.


  • Added support for HW accelerated render profiles. (Experimental)
  • Added support to render with a transparent background for export formats that support alpha channel. (Experimental)


Since a long time, Kdenlive allowed users to download extra user contributed resources from the KDE Store. These download options have now been moved to more logical places instead of the "Settings" menu. Title templates can be downloaded from the Titler dialog, Render profiles from the Render dialog, Luma compositions from the Composition list and Shortcut layouts from the Shortcuts dialog.


There is still work to be done! We concentrated on stability (finding and fixing as many crashes as possible) and that the most important functionality for a slim editing workflow works. There are still known issues in which we will dedicate the next 3 monthly releases of the 19.04 cycle to finish polishing the rough edges.

So why release? Well, this version is much better than the old one. Having it out in the wild will help us test it under various situations. We now have a stable platform allowing us to fix issues quicker in order to move on to adding new features.

What's next?

For 19.08 we hope to merge the refactoring of the Titler, a GSOC project, and begin implementing the professional features in our roadmap starting with advanced trimming tools. Work also has started to improve OpenGL support (better GPU usage) so this year is promising to be the foundation for entering into professional video editing waters. Stay tuned!

22 Apr 2019 8:00am GMT

15 Apr 2019


Robert Foss: Running Android and Wayland on Embedded Devices

A previous post introduced the SPURV Android compatibility layer for Wayland based Linux environment.
In this post we're going to dig into how you can run an Android application on the very common i.MX6 based Nitrogen6_MAX board from Boundary Devices.

Build SPURV for Nitrogen6_MAX

Build Android

mkdir android; cd android
repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r10
git clone https://gitlab.collabora.com/zodiac/android_manifest.git .repo/local_manifests/
repo sync -j15
. build/envsetup.sh
lunch spurv-eng
make -j12
cd ..

Build Linux Kernel

git clone https://gitlab.collabora.com/zodiac/linux.git -b android-container
cd linux
sh ../android/device/freedesktop/spurv/build-kernel.sh
cd ..

Create root filesystem

Just a kernel does not make an OS, so we're using Debian …

15 Apr 2019 1:44pm GMT

10 Apr 2019


Hans de Goede: Fix dbus-broker failing to start with status=226/NAMESPACE after F30 upgrade

After upgrading my main workstation to F30 a while ago (soon after it branched) dbus-broker failed to start, making my machine pretty-much unusable. I tried putting selinux in permissive mode and that fixed it, so I made a note to revisit this later.

Fast-forward to today, I applied all updates, did a full-relabel for good measure and things were still broken. Spinning up a fresh F30 vm does not exhibit this problem, so the problem had to be something specific to my machine. After lots of debugging I found bug 1663040 which is about the same thing happen on the live media and only on the live media, the problem turns out to be the selinux attributes on the mount-points (/dev, /proc, /sys) in / which cannot be updated by a relabel because at that time they already have a filesystem mounted on them.

I created the problem of the wrong labels myself when I moved from a hdd to a ssd and did a cp -pr of the non mount dirs and a straight forward mkdir to create the mount-points on the ssd. Zbigniew gives a need trick to detect this problem from a running system in bug 1663040:

mkdir /tmp/foo
sudo mount --bind / /tmp/foo
ls -lZd /tmp/foo/* | grep unlabeled

If the output of the last command show any files/dirs with unlabeled_t as type then your system has the same issue as mine had. To fix this boot from a livecd, mount your / on /mnt, cd into /mnt and then run:

chcon -t device_t dev
chcon -t home_root_t home
chcon -t root_t proc sys
chcon -t var_run_t run

Then umount /mnt and reboot. After this your system should be able to run in enforcing mode again without problems.

10 Apr 2019 1:08pm GMT

06 Apr 2019


Bastien Nocera: Developer tool for i18n: “Pseudolocale”

While browsing for some internationalisation/localisation features, I found an interesting piece of functionality in Android's developer documentation. I'll quote it here:

A pseudolocale is a locale that is designed to simulate characteristics of languages that cause UI, layout, and other translation-related problems when an app is translated.

I've now implemented this for applications and libraries that use gettext, as an LD_PRELOAD library, available from this repository.

The current implementation can highlight a number of potential problems (paraphrasing the Android documentation again):

- String concatenation, which displays as one message split across 2 or more brackets.
- Hard-coded strings, which cannot be sent to translation, display as unaccented text in the pseudolocale to make them easy to notice.
- Right-to-left (RTL) problems such as elements not being mirrored.

Our old friend, Office Runner

Testing brought some unexpected results :)

06 Apr 2019 10:41am GMT