Language Selection

English French German Italian Portuguese Spanish

Kde Planet

Syndicate content Planet KDE
Planet KDE
Updated: 34 min 17 sec ago

Summer 2020 (real short)

Saturday 18th of July 2020 10:00:00 PM

Most summers I go on a bicycle vacation with my family, and we do a couple hundred kilometers and get back and it puts a reasonable-sized dent in Calamares development in the summer months. Like in 2019 2018 2017.

This year, for personal reasons (and limitations on travel, and on campgrounds, and not wanting to put ourselves or others at risk), the bike trip was limited to 200km and a week in a “trekkershut”.

What this means for the rest of the summer is that I’ll occasionally be “on vacation” which will mean “in the front yard, building an awning” or “in the back yard, building a chicken coop”, but no long absences from the Free Software world. In general, the plan is:

  • release Calamares every two to three weeks,
  • track KDE software releases (Frameworks, Plasma, and the release service) on FreeBSD within a few days of release,
  • keep up with KDE-FreeBSD CI failures and bug reports as and when Nate pokes me about it (thanks, Nate, for watching all the things so I don’t have to).

Contributing via GitLab Merge Requests

Saturday 18th of July 2020 05:53:00 PM

KDE switched over to a self-hosted GitLab instance this year: invent.kde.org. Many thanks again to our system administrators and all other contributors to this large effort!

This means, e.g. Kate, KTextEditor and KSyntaxHighlighting are now using the GitLab workflow for all contributions. Whereas there are still some old review requests and tasks on phabricator.kde.org, all new contributions should arrive as merge requests on invent.kde.org.

For the three projects I take care of, you can see what already arrived and is now under discussion or already merged here:

Even this website is located there, regenerated via HUGO every few minutes on the web server hosting it. If you want to write some post about Kate or update some of our pages, please just submit a request here:

I think the current setup is really superior to what we had before. For example, Kate already has now 79 merge requested accepted. It was never easier to contribute than now.

I apologize that sometimes the review speed for merge requests is still lacking, I hope this improves with more people taking care in the development process. But I reelly encourage people that can code to help us out by contributing fixes + features!

We have a rather long backlog of bugs and wishes that are not really taken care of as it should, see the below lists:

We really would appreciate help with this, give it some try.

You want to contribute a new LSP server config? Easy, see this accepted merge request as template.

You want to improve the UI by e.g. having a more “normal” tab bar instead of our LRU variant? Submit a request like this.

It might look in the bug tracker like we are not eager to improve or accept changes, that is not true, we are just not that free to work a lot on our own on larger things, as the team is small and we don’t have that much spare time left to handle it. But if somebody steps up to do it, we will help out to get it in, as can be seen by the already merged stuff.

Still, there might be discussions about what shall go in or not. Please be open to accept the feedback we give and better start early to ask for some, as that might avoid wasted effort on your side.

I think the new infrastructure makes it easier for people to step up and do some work, I really like that. I hope a nice stream of merge requests keep coming in ;=) At least for the projects mentioned above I think scratching your own itch was never easier.

This week in KDE: Get New Stuff fixes and more

Saturday 18th of July 2020 05:09:36 AM

Do you like more features, fewer bugs, and a better UI? I do. So as I look over this week’s update, I smile. In particular, some much-needed fixes for the Get New [thing] system have landed, and more are on the way. We realize this is a pain point and we’re working on it.

In Plasma, we’ve been actually using Bugzilla’s priority feature to prioritize bugfixes, beginning with recent regressions. Every day I triage all new bugs and mark any recent regressions accordingly, then try to try to track down people who can fix things, or do it myself if I’m able to. Hopefully over time we’ll have fewer regressions, and the ones that do slip through will get fixed faster.

New Features

When drawing annotations in Okular, holding down the Shift key now constrains the new annotation to increments of 15 degrees or perfect squares, as in many drawing apps (Luca Citi, Okular 1.11.0)

Okular now has a new hidden action you can put on its toolbar that will toggle right-to-left reading direction for the current document (David Hurka, Okular 1.11.0)

KRunner can now display bookmarks from Falkon too (Alexander Lohnau, Plasma 5.20)

The Properties Dialog can now also display SHA512 checksums for files (Nazar Kalinowski, Frameworks 5.73)

Bugfixes and performance & security Improvements

Dolphin’s selection highlight in Compact and Details modes is no longer too short (Ismael Asensio, Dolphin 20.08.0)

Fixed a recent regression that caused wallpapers downloaded using the Get New [Thing] dialog to not be apply-able (David Edmundson, Plasma 5.19.4)

Fixed a recent regression that caused Plasma to overwrite the system locale settings even if nothing had been changed (Plasma 5.19.4)

When decrypting a Plasma Vault, if the password has been made visible, it now becomes hidden again the moment you submit it so that it doesn’t sit around visible yet un-erasable on the screen for a few seconds (Ivan Čukić, Plasma 5.19.4)

The Plasma Networks System Tray applet no longer crashes when clicked if there is an OpenVPN VPN configured (Lamarque Souza, Plasma 5.20.0)

KRunner’s single runner mode now works (Alexander Lohnau, Plasma 5.20)

The KRunner Plasma widget now respects the list of enabled and disabled runners set in System Settings (Alexander Lohnau, Plasma 5.20)

KRunner no longer crashes when you type anything while the PIM Contact Search plugin is active (Friedrich Kossebau, Frameworks 5.73)

When using the Get New [thing] dialog to download new wallpapers, the “Use” button will now actually apply the wallpaper as it should (Dan Leinir Turthra Jensen, Frameworks 5.73)

When installing something using the Get New [thing] dialog fails, it is no longer incorrectly marked as installed (Alexander Lohnau, Frameworks 5.73)

Get New [thing] dialogs now display the same sort order that the sort order combobox indicates (Dan Leinir Turthra Jensen, Frameworks 5.73)

The URL Navigator in Dolphin and the file dialogs and various other KDE apps now has a saner auto-complete behavior (Noah Davis, Frameworks 5.73)

Plasma widget pop-ups no longer appear in the Task Switcher (me: Nate Graham, Frameworks 5.73)

User Interface Improvements

FUSE mounts are now automatically excluded from the list of disks visible in the Disk Usage widget (Arjen Hiemstra, Plasma 5.20)

The cursor no longer changes in size when hovering over GTK/GNOME app windows (Mikhail Zolotukhin, Plasma 5.20)

After taking into consideration feedback from users and designers, the System Tray icon arrangement options now include a way to return to the old style: one or two rows/columns of small-ish icons that do not scale with panel thickness (me: Nate Graham, Plasma 5.20)

System Tray popups have been made a little bit taller–just a little bit (me: Nate Graham, Plasma 5.20):

The System Tray Battery applet now tells you when the power source you’re plugged into isn’t supplying enough power to charge the battery (me: Nate Graham, Plasma 5.20)

Scrollable pages in Kirigami-based apps can now be scrolled with the arrow keys (Carl Schwan, Frameworks 5.73)

The “Overwrite” action/button used in various places throughout KDE software now has a nice icon (David Hurka, Frameworks 5.73)

When the file type list in open/save dialogs would show multiple entries with the same name, they are now disambiguated by appending the filename extension (Albert Astals Cid, Frameworks 5.73):

The icons-only view buttons in the Get New [thing] dialogs now show tooltips so you can tell what they are (Alexander Lohnau, Frameworks 5.73):

How You Can Help

If you are an experienced developer who would like to make a gigantic impact very quickly, fix some recent Plasma regressions or longstanding bugs. Everyone will love you forever!

Beyond that, have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Kubuntu 19.10 Eoan Ermine reaches end of life

Friday 17th of July 2020 05:19:16 PM

Kubuntu 19.10 Eoan Ermine was released on October 17th, 2019 with 9 months support.

As of July 17th, 2020, 19.10 reaches ‘end of life’.

No more package updates will be accepted to 19.10, and it will be archived to old-releases.ubuntu.com in the coming weeks.

The official end of life announcement for Ubuntu as a whole can be found here [1].

Kubuntu 20.04 Focal Fossa continues to be supported.

Users of 19.10 can follow the Kubuntu 19.10 to 20.04 Upgrade [2] instructions.

Should for some reason your upgrade be delayed, and you find that the 19.10 repositories have been archived to old-releases.ubuntu.com, instructions to perform a EOL Upgrade can be found on the Ubuntu wiki [3].

Thank you for using Kubuntu 19.10 Eoan Ermine.

The Kubuntu team.

[1] – https://lists.ubuntu.com/archives/ubuntu-announce/2020-July/000258.htmll
[2] – https://help.ubuntu.com/community/FocalUpgrades/Kubuntu
[3] – https://help.ubuntu.com/community/EOLUpgrades

Krita, OpenGL and Qt

Friday 17th of July 2020 08:15:42 AM
The Beginning

Adrian Page first coded an OpenGL-based canvas implementation for Krita in 2005. That was back in the Qt3 days. OpenGL was fairly simple back then, but we had to duplicate all our canvas handling code, once implemented in OpenGL, once implemented with QPainter.

Krita’s canvas code executes in three phases. There’s the image projection, that is, the result of combining all the layers, which is drawn first. Then we draw the canvas decorations: that’s the selection outline, the guides, the assistants, the reference images and so on. Then we draw the tool decorations: that’s the outline cursor, the line for the straight line or ruler tool and so on.

Obviously, implementing all of that twice, once in  OpenGL, once with QPainter isn’t ideal.

The Good Days

So we were elated when Qt4 appeared. Qt4 came with an OpenGL based QPainter engine. This was ideal; we could split up our canvas code. The image would be drawn with pure OpenGL on a QGLWidget or with QPainter on a QWidget, and the canvas decorations and tool decorations would be drawn with QPainter on either canvas.

The Qt documentation even came with a nice example showing how this was to be done.

The First Fly in the Ointment

However, the Qt developers apparently saw the OpenGL QPainter engine more as a way to speed up the drawing of QWidgets than something that application developers would use. And the OpenGL QPainter engine never was able to render a complex application completely correctly.

So at some point, the engine stopped working on macOS. Mostly because Apple doesn’t want people to use OpenGL, so they’re starving their drivers from development, but also because the Qt developers thought that the OpenGL QPainter engine was a failed experiment because it didn’t improve performance when painting their widgets: they had forgotten that applications developers are using QPainter in their OpenGL applications. Or even told them not to do that. Though the documentation never reflected that opinion.

That sucked, since we needed it, and in 2016 we had to spend a Summer of Code slot on fixing the OpenGL QPainter engine so it worked on macOS with OpenGL 3.2 Core Profile. That landed in Qt.

R.I.P Touch UI for Krita

With the migration from Qt4 to Qt5 something else happened: Qt4 QML was based on QGraphicsView. I’ve always suspected that QGraphicsView was created for companies that needed mapping software, but in the Nokia days there were several attempts to use QGraphicsView as a basis for a mobile ui framework, DUI (best link I could find; there’s serious loss of history here).

Those attempts failed, until someone came up with QML, which initially was also rendered with QGraphicsView.

We used QML to create Krita Sketch and Krita Gemini. Because it was based on QGraphicsView, the touch ui we created worked seamlessly with our OpenGL-based canvas.

When Qt5 came out, QML was based on OpenGL and a scenegraph. We spent several months and quite a bit of money trying to integrate our OpenGL canvas in in the new scenegraph, but it just did not work. At all. It couldn’t be made to work, and Krita Sketch and Krita Gemini died.

(As an aside: it was much harder than we had expected to port our OpenGL code from Qt4 to Qt5. It was a huge hassle, in fact.)

The Next Episode

And then Google Chrome happened.

The quality of OpenGL drivers on Windows was always variable, sometimes even really bad. We had already encountered that when developing Krita Sketch, when we suddenly had a lot of Windows users.

Google encountered the same problems with Chrome, and they implemented a solution: Angle.

Angle seamlessly translates OpenGL into Direct3D. And once Chrome used that, all their crashes were gone.

And the GPU manufacturers had no reason all anymore to fix their drivers, so they didn’t. Games would use Direct3D, Chrome used Angle, and pretty soon Qt added an option to use Angle, too, because otherwise QML-based applications on Windows would keep crashing.

This was excellent news for us. We started using Angle, and the number of bug reports dropped a serious amount. And when we wanted to support HDR screens on Windows, the fact that we were using Angle already was great, because that enabled us to make HDR work, because on Windows, HDR can only be made to work when the window is rendered using Direct3D.

The HDR patches still haven’t landed in Qt, so we are carrying them, along with a lot of other patches that are needed to make Krita work well.

We regularly port those patches to newer versions of Qt5, but we make all our Krita binary builds with Qt 5.12, because every version of Qt since 5.12 has been too buggy to use. For example: with 5.15, using a QMdiArea in subwindow mode will hang on Windows.

Except for the fact that Krita Sketch was still dead, and we were porting to Android, and a mobile UI would have been nice, everything was fine.

Qt6 Drops Angle

Because, obviously, Qt’s Angle build option only  existed to make sure that QML apps would work on Windows, not for anything, Qt6 has dropped the Angle option…

Because there’s going to be a new framework which will use the various GPU API’s (Metal, Vulkan, Direct3D, OpenGL) directly with a abstraction layer (Rendering Hardware Interface ) above them that will be used to render the QML scenegraph. It looks like that’s all internal to Qt, though.

It’s really hard to find documentation, but it looks like QPainter will render using those modules; but what isn’t clear is what will happen when we’re going to use QPainter on a QOpenGLWidget. Or would we have to implement a Metal canvas, a Direct3 canvas, and an OpenGL canvas? And will we be able to access the HDR functionality on Windows?

Or should we just patch Qt6 so it can be built with Angle again?

Konsole in 2020

Thursday 16th of July 2020 12:00:00 AM

Konsole is having a resurge in the moment, it’s the terminal emulator of choice for the power user that wants to break the 4th wall in *nix systems. Right now it can do almost all the things I want it to do, and a few more.

Since last year you can use splits in Konsole, with full drag & drop support between tabs and windows.

You can also use Konsole to quickly check for thumbnails of anything that dolphin can show you, just by hovering with the mouse (and depending of your configuration) pressing shift/control/alt. To my knowledge Konsole is the only terminal emulator that supports this.

Probably you already used ls to list a file that you need to get the full url, to open in an unrelated program that does not accept the common way to open files via the shell, and you need to paste into a dialog, or you just need to send the full path of a file for a project colleague. I had problems with this untill I snapped and implemented a way for konsole to Copy Location, it copies the full file path of the selected file, and adds this data to your clipboard.

Konsole supported for quite a while a way for you to click in a file and open it in a the default editor (you need to have this configured in the profile) - but sometimes we don’t want to open it in the default file, we wan’t to visualize a image in gwenview or edit it in gimp, so now konsole supports a Open With menu quite helpful when you don’t remember the name of the app you want to use but remember the icon. :)

Now a few features I’m working that I expect that will be ready for the next version of konsole, those are still in review and I don’t know when they will be ready, it’s just a sneak peek:

Configurable dimm stength for inactive terminals - when you are working with split views and many terminals, there’s a option in the profile that makes the terminals without focus darker, so it’s easier to know which terminal you are, but it was not possible to configure the amount of darkening - and different people have different needs, so now you can do this: (not merged yet)

Improved broadcast support - Konsole already supported this, but it did not play well with splits, and it was not really easy to integrate multiple windows. How you can now select what kind of broadcast group a terminal belongs to, any terminal that belongs to the same group will send data to it, there’s also a None group - for terminals that should not send data anywhere, and a Broadcast to All groups, that will push data everywhere - despite being in the group or not. (not merged yet)

Support for URL Escape Codes. There’s a spec that specifies how a terminal application can embbed a URL inside of a block of text, by using the special notation: \e]8;;http://www.kde.org\e\\click here\e]8;;\e\\\n this is equivalent to the html code <a href="http://www.kde.org> click here </a> and there’s a work in progress implementation for that in the works (featuring a VIP list of accepted schemas, currently only file, http and https are allowed, but the user can overrite)

Those are all of the features that I worked (minus tons of bugfixes, security improvements and general rewrites that are unrelated to new features). I hope you all enjoy the new konsole, that is still one of the fastest terminal emulators around, even tough it’s packed with features for the experienced and novice user.

foss-north kdenlive workflow

Wednesday 15th of July 2020 08:21:47 PM

As some of you might already have noticed, we’ve complemented foss-north with a new pod / vod / vlog – I’m not sure what to call it. Basically, it is a video based pod cast (making it available as a audio only pod-cast is high on the todo). Our main focus right now is a series on licenses and copyright, but there is more to come.

As a part of this, I’ve started editing videos in kdenlive on a weekly basis, and I’m very happy with it so far.

In this blog, I want to share my workflow. It is probably far from ideal, but it does the work for me.

I usually start with a set of presentation slides that we’ve used to direct the discussions. These are exported as pdf, which is then converted to 1920×1080 pngs for consumtion in kdenlive.

I do this in two steps using ImageMagick, as the results seems nicer by first rendering too large images and scaling them down.

convert -verbose -density 300 ../open\ projects-1.pdf -quality 100 -sharpen 0x1.0 11.png mogrify -resize 1920x1080 *.png

The session is recorded using OBS from our Jitsi instance, but we also encourage each participant to record their audio separately, as it makes it easier to fix things afterwards. (foss-north now self-hosts a Jitsi instance – check out https://github.com/e8johan/virtual-conf-resources to learn about how to setup virtual conferences).

You would be surprised over how many times we’ve run into issues with one or more sound recordings. We’ve had:

  • Too low volume (inaudible)
  • Too high gain (noisy)
  • Local echo of the rest of the participants in one recording (no use of headphones)
  • No recording (forgot to press record)

I’m sure the list will grow longer as we record more episodes :-)

Before I start cutting the recording, I use one of my favorite features in kdenlive. First I set the Jitsi recording as the audio reference as shown below.

Then for each audio track, I tell kdenlive to align it to the reference. This will position it correctly in relation to the Jitsi recording, meaning that I can fade in and out of individual recordings without having to worry about any time shifts.

Finally, I select all the audio recordings and group them. This means that all editing I do (cuts, movements, etc) is applied to all channels.

Now it is just a matter of listening for trouble (you can spot awkward silence in the visualization of the audio tracks), press i to mark the beginning of a section, press o to mark the end, and then shift+X to cut it out.

In general, I try to edit as little as possible, but tightening some parts by removing silence, and sometimes remove failed parts when we’ve decided to start over a section.

Finally I add the pngs as a video stream, our pre-recorded intro sequence, and a YouTube friendly end-screen and click render and go to bed :-)

Compiling Krita for ARM: an AppImage tale

Wednesday 15th of July 2020 02:15:00 PM
The AppImage running on a Raspberry Pi 3B+. It's slow, but it works

Week 6: GSoC Project Report

Wednesday 15th of July 2020 04:27:29 AM

This week I worked on writing tests for interactions between different parts of Krita and investigated how to update all affected items in the storyboard.

I added two test classes, one for interactions between keyframe channels and animation interface and one for the interaction between keyframe channel and the storyboard docker. This was essential because the interaction is broken up into two stages. First the keyframe channel emits signals to the animation interface of the current image when any changes, such as add, remove, move are made. These signals result in emission of similar signals from the animation interface. These final signals can be connected to any part of Krita if it has a pointer to the current image, which dockers have. The first class of tests passes after some changes. I have completed parts of the second test. Some tests are yet to be implemented.

Updating all affected items in the storyboard would cause the canvas to update slowly if we update all items in the same thread. So we would have to use multi-threading for this purpose. There are some classes that already do that, I will use those classes. As this is a non-trivial task I postponed this to the next week.

I faced some problems due to my laptop having some hardware problems, and I had to give it away for repair

Weekly Report 5

Tuesday 14th of July 2020 12:00:00 AM
GSoC Week 6 - Qt3D based backend for KStars

In the sixth week of GSoC, I worked on adding mouseevents and integrate the custom qt3d window with existing skymap

What’s done this week
  • Shaders for panning and zooming.

  • camera controller in custom window.

The Challenges
  • Integration issues with the original SkyPainter API written to support multiple backends.

  • Use of new custom camera controller and view matrix.

  • Zooming and focus for deep star objects.

What remains

My priorities for the next week include.

  • Adding remaining skymap events.

  • Writing 3d calls for skymapcomposite.

  • Debug deep star objects and get started with other sky objects.

The Code

CMake-Based Qt Creator Snapshots

Monday 13th of July 2020 01:28:32 PM

About a year ago we started porting the build system that we use for building Qt Creator itself from qmake to CMake. Nowadays we are in the state that many Qt Creator developers use CMake for building Qt Creator for their daily work, but the official packages are still based on the qmake build.

Week #6 Progress [MyPaint Engine]

Monday 13th of July 2020 11:40:00 AM
Last week my prime focus was to add more and more settings in the preset editor and so as to make mypaint brushes a bit more customizable. I used KisCurveOptionWidget class which Krita already has and modified it so that it can accomodate the settings and dynamic mypaint brush options. This went on to become a lot more complicated than I anticipated. Although, it works fine there are still a lot of bugs and finishing required to mark this as complete.

Preset Editor  This is the layout of how the preset editor looks like and it is still far from complete. I need to categorise all the settings in the form of a tree view. I am also quite sceptical about the way of handling mypaint settings internally. I will check if that is right or some alternative approach would be a better fit and make the required changes. I will look at all those things this week. If everything goes fine this would be complete by this week's end.
Till then, Good Bye :)

Qt Creator 4.13 Beta released

Monday 13th of July 2020 09:41:49 AM

We are happy to announce the release of Qt Creator 4.13 Beta!

KF6 Progress Report: Almost Bastille Day (July) Edition

Sunday 12th of July 2020 01:30:00 PM

So the world has been hectic lately, dunno if you’ve seen the news, but that means that I didn’t publish an update since my previous KF6 progress report back in February! Now that the lock down has been (temporarily?) lifted where I live and that things are a bit less crazy, it’s time for an update.

An actual Qt 6 is not published yet and we didn’t branch for KF6 yet either. Still as can be seen on the KF6 Workboard there are plenty of tasks in our backlog which can be acted upon now. No need to wait to participate, all the work done now will make the transition to KF6 easier later on anyway.

What has been done since the last post?

On the workboard, we currently have 22 tasks in progress and 4 tasks done. Clearly that’s not a huge activity in more than four months but the state of the world might explain it in part. Obviously with so little tasks done, they mostly revolve around our usual suspects.

If you fancy becoming one of the unsung heroes of KDE, come and help working tasks from the KF6 Workboard! More hands are needed and right now is a good time to discover it and get into it than when Qt6 will be released. Indeed, when Qt6 will be around it will be much less quiet around here. :-)

Let’s see the tasks done during the past couple of months (in no particular order):

Thanks for everyone involved!

KDE Frameworks Community Analytics

Per usual, I will use the opportunity to look at the community analytics for KDE Frameworks itself. That’s why I ran my scripts against the repositories in the frameworks section of the KDE repositories tree. Of course, this means we’ll capture some activity unrelated to the KF6 transition. Still I think it’s interesting to see how KDE Frameworks itself is doing.

Let’s start with the commit activity since the previous KF6 Progress Report.

[KDE Frameworks Activity since the February update, full page version]

During that time frame, we got 126 different committers. That’s quite a lot indeed the biggest amount of committers since I started writing those reports! Admittedly, the longer time spans skews this quite a bit, so I thought I’d add the team size trend for the past ten years to see.

[KDE Frameworks Team Size since January 2010, full page version]

Unsurprisingly we didn’t have a super growth, so the 126 above is really due to the longer time window. That being said it looks like the trend has been going slightly up since the past couple of years, always a good thing.

Now, how does the code contributor network looks like?

[KDE Frameworks Contributor Network since the February update, full page version]

Unsurprisingly, we find our usual suspects again as very central to the network. Like the last couple of times we find a couple of lesser known names in that set of central people… Although at that point I can stop saying this, it’s been a few times clearly they’re part of the team now. Well done!

How You Can Help

Next time, your name could be in visualizations like the ones above!

Check out the KF6 Workboard and pick a task to help us toward this great transition. If you need help to get started, feel free to contact us on the #kde-devel IRC channel on Freenode.

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

20.08 releases branches created

Saturday 11th of July 2020 10:16:00 AM
Make sure you commit anything you want to end up in the 20.08 releases to them

We're already past the dependency freeze.

The Feature Freeze and Beta is this Thursday 16 of July.

More interesting dates
    July 30, 2020: 20.08 RC (20.07.90) Tagging and Release
  August  6, 2020: 20.08 Tagging
  August 13, 2020: 20.08 Release

https://community.kde.org/Schedules/release_service/20.08_Release_Schedule

Cheers,
  Albert

May/June in KDE PIM

Saturday 11th of July 2020 08:00:00 AM

Following Dan here’s the summary of what happened around KDE PIM in the last two months. While the focus was mainly on the 20.04.x maintenance releases and KDE’s source code hosting and review systems migrated to a Gitlab instance during that time, development continued at full steam with more than 1,800 changes by 34 contributors.

KMail
  • Fix parsing email headers with a name that is a prefix of a well-known header.
  • Fix an extra space character being added to UTF-8 encoded attachment file names (bug 362650).
  • Add support for displaying generic Apple Wallet passes, rather than crashing when encountering one as an attachment (bug 422325).
  • Fix configuration changes in maildir accounts not being propagated (bug 415922).
  • Fix HTML replies being broken in some cases (bug 421908).
  • Allow to show the folder an email is in message list and message tool tips (bug 420644).
  • Fix empty envelope From in some outgoing emails (bug 420766).
KOrganizer
  • Display recurring to-dos on their due date/time in the agenda view.
  • Display all-day to-dos on their due date in the agenda view (bug 417982).
  • Show correct icon names for recurring to-dos.
  • Fix serialization of recurring to-do’s start date (bug 345565).
  • Fix crash when deleting an event template (bug 421873).
  • Show all available holiday regions in KOrganizer configuration dialog.
Holiday region selection now also showing multiple regions per country.
  • Improve tool tips for to-dos (bug 360730).
  • Remove time-of-day from Event Viewer display of all-day to-dos.
  • Ask to set a default events folder if none is set yet.
  • On first run, show alarms from the last 10 days.
Kleopatra
  • Do not accept rich text in notepad (bug 421216).
  • Fix help access in configuration dialog on Windows.
Common Infrastructure
  • The CalDav/CardDav access framework KDAV is now finally part of KDE Frameworks with the 5.72.0 release.
  • Compatibility issues with QtWebEngine from Qt 5.15 have been fixed in KMail and Akregator.
  • Data and settings import/export has been significantly extended, also covering identities, mail transports and filters now for example.
  • Fixed Akonadi searching for file mysql-global.conf at wrong path (bug 422079).
General Work

There’s also a number of global (and ongoing) tasks aimed at the long-term maintenance and maintainability. Considering some of the code still in active use today can be traced back to the late 90s this needs continuous attention as well.

  • One of the obstacles in making the KDE PIM codebase more accessible to new developers are some of the historically grown mixed-purpose libraries and modules that can make it somewhat unpredictable where to find a certain bit of code. In order to address this and ideally reduce the amount of such modules a number of components have been moved around to clean this up and to untangle dependencies.
  • Preparation for the Qt6/KF6 transition in the near future continued by porting away from various bits of deprecated API in Qt5 and KF5.
  • There is an ongoing effort to make our source code REUSE compliant, which uncovers the occasional license issue that is being cleaned up in the process.

Additionally, numerous memory management issues found by ASan have been fixed all over the place.

Help to make Kontact even better!

Take a look at some of the junior jobs that we have! They are simple, mostly programming tasks that don’t require any deep knowledge or understanding of Kontact, so anyone can work on them. Feel free to pick any task from the list and reach out to us! We’ll be happy to guide you and answer all your questions. Read more here…

This week in KDE: New features galore!

Saturday 11th of July 2020 04:28:12 AM

Tons and tons of awesome new features and UI polish landed this week, alongside an equally weighty ton of important bugfixes.

New Features

Elisa now lets you optionally display all Genres, Artists, or Albums in the sidebar, below other items (Matthieu Gallien, Elisa 20.08.0):

Elisa’s playlist now displays the progress of the currently playing song inline (Stef Lep, Elisa 20.08.0)

Konsole now has a new on-by-default-but-disable-able feature to display a subtle highlight for new lines coming into view when the terminal output is rapidly scrolling by (Thomas Surrel, Konsole 20.08.0)

System Tray icons now automatically scale to fit no matter the panel’s thickness, and you can now choose for yourself how many rows or columns to display if you want (me: Nate Graham, Plasma 5.20)

Bugfixes & performance Improvements

Dolphin now correctly respects your preference regarding what to do when opening executable files (Wolfgang Bauer, Dolphin 20.04.3)

When typing a search term in Dolphin, the cursor position no longer gets reset after results begin to appear (Ismael Asensio, Dolphin 20.08.0)

Elisa got some high DPI fixes relating to line thicknesses and icon sizes (me: Nate Graham, Elisa 20.08.0)

When using a pen for input on Wayland, the position of the drawn lines is no longer vertically offset by the height of the titlebar (Aleix Pol Gonzalez, Plasma 5.19.3)

Applying a Global Theme now also changes the colors appropriately for GTK applications (Mikhail Zolotukhin, Plasma 5.19.4)

KRunner and Kickoff/Kicker/Application Dashboard can once again be used to open settings windows that are not visible directly in System Settings, such as the Trash or Breeze theme settings pages (Alexander Lohnau, Plasma 5.19.4)

The “Text Only” display style for the new system monitor widgets now works properly (Marco Martin, Plasma 5.19.4)

Fixed a crash on Wayland when waking up the computer while multiple screens are attached (Andreas Haratzis, Plasma 5.20)

Fixed a bug that could cause the Task Manager’s icons to be obscured when changing the resolution or display the wrong icons when a screen is turned or of unplugged (Alexander Kandaurov, Plasma 5.20)

The Plasma Widget Explorer only tells you that there’s already an instance of a widget while that widget is visible in the current screen/activity (David Redondo, Plasma 5.20)

On Wayland, it’s now possible to enter full screen mode in MPV by double-clicking on the video (Benjamin Port, Plasma 5.20.0)

Changing the “Confirm Logout” setting now takes effect immediately, instead of requiring a restart first (David Edmundson, Plasma 5.20.0)

Window decorations now display correctly when using a 30-bit/10-bit-per-color screen (Bernie Innocenti, Plasma 5.20)

Previews for cursor themes now correctly display real-time previews as you hover your cursor over them on Wayland (David Redondo, Plasma 5.20)

Menu separators in QML-based desktop apps now have the correct height and thickness when using a high DPI screen and a global scale factor (Arjen Hiemstra, Frameworks 5.73)

Eagle-eyed viewers will notice that despite the above fix, some of these separator lines are 1px tall and others are 2px. This is a so far unavoidable artifact caused by my using a fractional scale factor on X11. It’s already better on Wayland and I’m investigating whether there’s anything we can do there on X11 too, but this caption is already way too long for any more explanation than that!

Fixed a wide variety of Plasma crashes, in particular with the Thermal Monitor widget (David Edmundson, Frameworks 5.73)

User Interface Improvements

KRDC now displays proper server-side cursors in VNC instead of a small dot with the remote cursor lagging behind it (Oleg Chernovskiy, KRDC 20.08.0):

https://i.imgur.com/8DNLh5w.mp4

Yakuake now lets you configure all the keyboard shortcuts that actually come from Konsole (Maximillian Schiller, Yakuake 20.08.0)

The Disk Usage widget now looks more like how it did in Plasma 5.18 and earlier (but still using the fancy new backend, of course) (Marco Martin, Plasma 5.20)

When using the “Raise maximum volume” setting and setting the volume above 100%, the percentage display for the current volume level now changes color to show you that the volume is really really really high (me: Nate Graham, Plasma 5.20)

The old obsolete System Settings Emoticons page is no more (Aleix Pol Gonzalez, Plasma 5.20)

The System Settings Shortcuts page no longer shows mysterious categories such as “KDE Daemon” or “System Settings” for seemingly unrelated actions, and instead groups them all into a new category named “Custom Shortcuts Service” (David Redondo, Plasma 5.20)

The users list in the lock and login screens can no longer be pointlessly dragged around when there’s only one user (David Redondo, Plasma 5.20)

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

kde.org/applications site now with more App Stores and Downloads

Thursday 9th of July 2020 04:22:21 PM

KDE is All About the Apps as I hope everyone knows, we have top quality apps that we are pushing out to all channels to spread freedom and goodness.

As part of promoting our apps we updated the kde.org/applications pages so folks can find out what we make.  Today we’ve added some important new features:

Here on the KMyMoney page you can see the lovely new release that they made recently along with the source download link.

The “Install on Linux” link has been there for a while and uses the Appstream ID to open Discover which will offer you the install based on any installation source known to Discover: Packagekit, Snap or Flatpak.

Here in the Krita page you can see it now offers downloads from the Microsoft Store and from Google Play.

Or if you prefer a direct download it links to AppImages, macOS and Windows installs.

And here’s the KDE connect page where you can see they are true Freedom Lovers and have it on the F-Droid store.

All of this needs some attention from people who do the releases.  The KDE Appstream Guidelines has the info on how to add this metadata.  Remember it needs added to master branch as that is what the website scans. 

There is some tooling to help, the appstream-metainfo-release-update script and recently versions of appstreamcli.

Help needed! If you spot out of date info on the site do let me or another Web team spod know.  Future work includes getting more apps on more stores and also making the release service scripts do more automated additions of this metadata.  And some sort of system that scans the download site or maybe uses debian watch files to check for the latest release and notify someone if it’s not in the Appstream file would be super.

Thanks to Carl for much of the work on the website, formidable!

 

KDE's July 2020 Apps Update

Thursday 9th of July 2020 12:00:00 PM
New releases KTorrent 5.2.0

File sharing app KTorrent had a new release 5.2.0.

The import improvement for sharing is Distributed Hash Table improvements which now bootstraps with well-known nodes so you can get your downloads faster. Under the hood it updates to the newer QtWebengine which is based on Chrome away from the older QtWebkit based on WebKit (all of them are based on KDE’s KHTML back in the day).


KTorrent

KTorrent is available in your Linux distro.

KMyMoney 5.1.0 released

Banking app KMyMoney released 5.1.

It adds support for the Indian Rupee symbol: ₹. They also added the option to “Reverse charges and payments” to OFX import and the budget view now displays all account types.


KMyMoney

KMyMoney is available in your Linux distro, as a Windows download, a Mac download and now in Homebrew KDE.

KDiff3 1.8.3 Release Notes

File comparison tool KDiff3 released a new version 1.8.3 was released with a bunch of stability fixes.

Using KDiff3 as a difftool for Git will no longer trigger errors on non-existent files. Errors during directory comparison are properly queued so only one message will appear. Fixes reload on Windows. Removed a crash when clipboard is not available. Full screen toggle has been reworked to avoid a problematic Qt API call.

You can download KDiff3 for Windows, Mac and your Linux distro.

App Store Microsoft Store Stats

Christoph Cullmann gave us an update on the Microsoft store. Kate and Okular have been updated and in the last month have both had over 4000 installs.


Kate App Store Interview: Flathub

Flatpak is one of the new container based formats changing how we get our apps on Linux. Flatpak can work with any host who wants to set up a store but the definitive store is Flathub.

Recently Flathub helper Timothée Ravier asked for help putting more KDE apps in the store. We interviewed him to find out more.

Tell us about yourself, where are you from, what do you do for a living, how did you get into open source and Flatpaks?

My name is Timothée Ravier and I am currently living in Paris, France. I am a Linux system engineer and I currently work at Red Hat on Red Hat CoreOS and Fedora CoreOS.

I got into open source when I first installed a Linux distribution in 2006 and never stopped since. Most of the research projects I undertook during my studies were related to the security of Linux, application sandboxing and graphical interface security. Thus the Flatpak introduction and development piqued my interest.

In my spare time I maintain the unofficial KDE variant (nicknamed Kinoite) of Fedora Silverblue. In short, Fedora Silverblue is an immutable operating system and the recommended way to install applications is to use Flatpaks or containers (via podman). See the documentation for more details.

What made you put out your recent call for KDE apps in Flathub?

First I want to say a big “Thank you” to the current maintainers that already maintain KDE Apps on Flathub as they are doing a great job!

I have been a long time KDE user (I started in 2006) and I always wanted to contribute back. Distributions already have teams of established maintainers and Flathub was missing a good bunch of KDE Apps so it felt like a good place to start.

I also made a call as it will be easier if we split the work and maybe that will also make more people aware of Flatpaks and Flathub.

Flatpak can work from any repository, why the need for Flathub?

This question highlights one of the advantages of Flathub: you can host your own repository of applications on your own server and distribute them directly to your users. You do not “need” Flathub.

But just like you do not need GitHub or GitLab, etc. to host a Git repository, it is much easier to collaborate if you have a single place to point users and developers at.

Flathub has become the easiest place to find and safely try Linux applications, both open source and proprietary. I think this is critical if we want to improve the attractiveness of the Linux ecosystem as a desktop platform.

What other open source communities have embraced putting their apps on Flathub?

I think that a lot (maybe most) of the GNOME applications are now available on FlatHub.

Now that the app developers can put out our software directly on stores like Flathub there are new responsibilities like security and keeping software up to date. Can you say how well these are handled into Flathub?

With Flathub, the responsibilities are shared between the Platform maintainers and the application maintainers.

The Platforms contain the core library common to a lot of applications (there are Freedesktop, GNOME and KDE platforms) and are maintained to preserve both ABI compatibility and ensure prompt security updates.

Updates to the remaining libraries required by an application and the application itself are the responsibility of the application maintainer.

Which KDE apps do you find most useful?

I use Dolphin, Konsole, Yakuake, Okular and Ark daily and I really like them. I also appreciate and use Gwenview, KCachegrind and Massif-Visualizer from time to time.

Many of our apps are packaged as Flatpaks through our invent and binary-factory servers are you working with these processes or separately?

The Flatpaks that are built on the KDE infrastructure are intended to be nightly builds for developers and users to try out. This is a good pool of Flatpak applications to get started but some of them also need to be updated. Keeping this repository updated will help us with recent developments that may require packaging changes on Flathub. I have not yet started updating them but I will try to do it along the applications submission to Flathub.

Can you see a time when RPMs and Apt are no more and Linux distros all use container packages?

I don’t think this will ever happen as there is value in how distributions currently package apps even though it also has issues. But I think that less distribution will put in the effort to do it. For example, Fedora builds Flatpaks from RPM packages and makes them available for everyone. You could also potentially do the same with Debian packages. The value here isn’t in the what but the who: do you trust this distribution? Its values? Its commitment to free software only? Then you are sure that the applications that you install from their repo will have the same requirements that every other package. Flathub has both open source and proprietary apps and that may not be for everybody.

Releases Now on kde.org/applications

Our Applications sub-site has started showing release info on it. Expect more to come soon. If you are an app maintainer remember to add the release info to the Appstream files.


Release Info Releases 20.04.3

Some of our projects release on their own timescale and some get released en-masse. The 20.04.3 bundle of projects was released today and will be available through app stores and distros soon. See the 20.04.3 releases page for details.

Some of the fixes in today’s releases:

  • Previews of desktop files in Dolphin have been fixed for absolute icon paths
  • Completed To-Do items are now correctly recorded in KOrganizer’s journal
  • Multi-line text pasted from GTK applications into Konsole no longer has extra “new line” characters
  • Yakuake’s maximization behavior has been fixed

20.04 release notesPackage download wiki page20.04.3 source info page20.04.3 full changelog

Fixing a common antipattern when loading translations in Qt

Thursday 9th of July 2020 09:00:11 AM

TL;DR: If you choose a default translation in your Qt application based on a locale name like this:

QTranslator myappTranslator; myappTranslator.load("myapp_" + QLocale::system().name());

then please change it to:

QTranslator myappTranslator; myappTranslator.load(QLocale(), "myapp", "_");

Some of your users (me!) will be thankful that your application appears in the same language as the rest of their system.

Background

I’m a Polish guy working with computers, mostly on Windows. However, the lingua franca of the IT industry is English, so every time I see a tutorial for some dev tool, it’s in that language. To lessen the burden of decoding which menu entry in the tutorial corresponds to which menu entry on my PC I decided to run the system with an English display language. I still want the rest of the i18n-related stuff (date format, keyboard, currency etc.) to be in Polish however.

That’s why my system has Polish locale and English display language. This leads to a problem:

As you can see, Thunderbird and Windows Settings show up in English but Qt Linguist is encrypted with some overengineered Slavic cipher (aka Polish language). What I further noticed, is that this incorrect language selection is particularly prevalent in Qt-based applications. Subsequent digging revealed that this antipattern is widespread in Qt world, see the relevant GitHub search (requires login).

The Root Cause

My investigation made me think: Why do Qt users keep doing this wrong?

It turns out that it’s what the documentation tells them to do! See, the first time a Qt user wants to do i18n they are led to the Internationalization landing page which contained the following section in the middle:

Which in case of my system is unfortunately incorrect. QLocale::system().name() will return "pl_PL" which is not what I want. You should use the other overload of QTranslator::load() that consults the list of user’s preferred display languages (yes, it’s a list) and chooses the correct one.

To be fair to Qt’s docs, they actually tell you to use it but you need to navigate to the QTranslator docs and scroll to the bottom of the section about the first QTranslator::load() overload:

Not very discoverable

I personally believe that we shouldn’t blame the developers if they use the first thing they see prominently featured on the subsystem landing page. They don’t want to delve into intricacies of Qt’s i18n support, they have other problems to solve with their application (also, developers are lazy, at least, I am).

That’s why it’s so important to make sure that users are taught best practice the first time they are dealing with a concept. Or at least they are explicitly warned that they should do things differently in a real-world code (with examples).

The Fix

The obvious fix is to change the offending line as I show in the beginning of the post. This won’t however prevent new users from making this mistake again. The real fix is thus to fix the Qt documentation. And I did just that:

https://codereview.qt-project.org/c/qt/qtdoc/+/297560

Oh, and I fixed some applications too:

https://codereview.qt-project.org/c/qt/qttools/+/299827

The Call

If you are a maintainer of Qt-based application, please take a look in your codebase and see whether you use this antipattern. If you won’t fix it, and I happen to use your application, be prepared to deal with a change request at some point.

More in Tux Machines

Servers: Hosting, Supermicro and Containers

  • Linux vs. Windows hosting: What is the core difference?

    If you are having a budget constraint, Linux hosting is always a better option. But if you want to run certain complex applications on your website or web hosting that is specific to Windows, Windows hosting is the solution for you. If you are looking for a bulk of free and open-source applications and content management systems such as WordPress to run, it is better that you select Linux hosting.

  • Supermicro Launches SuperServer SYS-E100-9W-H Fanless Whiskey Lake Embedded Mini PC

    US-based Supermicro is known for its server products, but the company’s latest SuperServer SYS-E100-9W-H fanless embedded mini PC targets other applications, specifically industrial automation, retail kiosks, smart medical devices, and digital signage. The mini PC is equipped with an Intel Core i7-8665UE Whiskey Lake Embedded processor coupled with up to 64GB DDR4 memory, and offers plenty of connectivity options with dual Gigabit Ethernet, eight USB ports, four serial ports, and dual video output with HDMI and DisplayPort. [...] Supermicro only certified the mini PC with Windows 10, but looking at the OS compatibility matrix for X11SWN-H SBC used inside the mini PC, 64-bit Linux OS like Ubuntu 18.04/20.04, RedHat Enterprise Linux, and SuSE Linux should also be supported. The company also provides SuperDoctor 5 command-line or web-based interface for Windows and Linux operating systems to monitor the system and gets alerts via email or SNMP.

  • OpenDev 2020: Containers in Production – Day 1

today's howtos

Security Leftovers

  • Security updates for Monday

    Security updates have been issued by Debian (pillow, ruby-kramdown, wpa, and xrdp), Fedora (ark and rpki-client), Gentoo (apache, ark, global, gthumb, and iproute2), openSUSE (chromium, grub2, java-11-openjdk, libX11, and opera), Red Hat (bind, chromium-browser, java-1.7.1-ibm, java-1.8.0-ibm, and libvncserver), SUSE (LibVNCServer, perl-XML-Twig, thunderbird, and xen), and Ubuntu (samba).

  • Have I Been Pwned to release code base to the open source community

    Members of the general public can submit their email addresses into the Have I Been Pwned search engine to find out if they have been "pwned," and if their emails have been linked to a data breach, each one and a summary of what happened is displayed -- as well as what information has been exposed. Since its launch in 2013, Hunt has poured more resources, including time and energy, into managing the search engine over time, expanding the service to include domain monitoring and breach alerts. At the heart, one main operator isn't enough to ensure future scalability or sustainability, and with this in mind, Hunt previously attempted to find a buyer to help expand his life's work. Unfortunately, the merger and/or acquisition process failed, and so Hunt has decided to pursue another alternative -- opening up the Have I Been Pwned code base to the open source community.

  • Researcher Demonstrates Several Zoom Vulnerabilities at DEF CON 28

    Popular video conferencing app Zoom has addressed several security vulnerabilities, two of which affect its Linux client that could have allowed an attacker with access to a compromised system to read and exfiltrate Zoom user data—and even run stealthy malware as a sub-process of a trusted application. According to cybersecurity researcher Mazin Ahmed, who presented his findings at DEF CON 2020 yesterday, the company also left a misconfigured development instance exposed that wasn't updated since September 2019, indicating the server could be susceptible to flaws that were left unpatched.

Red Hat/Fedora Leftovers

  • Fedora Nest 2020

    This year Flock did not happen due to COVID-19, and in its place, Fedora Nest happened. After many events I’ve seen going virtual in the last few months, I was skeptical. I was yet to see an acceptable online platform to run events. I was wrong on the platform. Fedora Nest used Hopin , which is by far the best platform for events I’ve seen so far. Don’t get your expectations too high, though, because when I say the best one I’ve seen so far, only means that it is usable, and it does not mean in any way that is on par of real conferences. I might be a weird being, but I find traveling relaxing, so I usually add to the joy of the conference the pleasure of traveling. In addition to this, at conferences, I find myself to connect with people - sometimes briefly, sometimes more deeply - and this does not occur in online events. For those reasons, I really hope we will be able to soon go back to in-person conferences.

  • Miroslav Suchý: Nest 2020 - my notes

    This year, we had Nest conference instead of traditional Flock, which has been canceled due to COVID. The conference happened purely remotely over the Hopin video conference. This was good and bad. The good is that we saved a lot on traveling and that it happened at all. It would be bad if it was canceled. The bad part was that I found it hard to focus on the conference. There are too many distractions at home. It was much harder to socialize. And a lot of people had issues either with microphone or internet upload. It was sometimes hard to follow. The conference was organized mostly for US folks, and therefore some sessions were very late in my timezone.

  • Btrfs by default status updates, 2020-08-09
  • Fedora Btrfs Activity Continues - New Options To Control Discard, Compression

    Fedora developers continue embracing the work on making the Btrfs file-system the default for F33 desktop variants. Their latest progress report indicates new installation options being wired up for the Btrfs support. A new Anaconda Kickstart install configuration knob is being added for setting the async discard behavior for solid-state drives. This configuration option will simply set the Btrfs DISCARD option to be enabled by default per the /etc/fstab options. They are still weighing whether to make it the default or more than likely that default transition would be next year for Fedora 34.

  • “To be, or not to be,” vulnerable… How customers and partners can understand and track Red Hat security vulnerabilities

    That is the question. Yes, I believe William Shakespeare was thinking about container security when he began Act 3 of Hamlet. He probably scanned his Red Hat Universal Base Image (UBI) 8 container with multiple vulnerability scanners, and with "the heart-ache and the thousand natural shocks", noticed each report told him something different. One report said his container had a vulnerability, another indicated the vulnerability was patched, and another didn’t even show the vulnerability. As Hamlet contemplates his fate, it’s no wonder he says: "With this regard their currents turn awry, And lose the name of action." In other words, he rips up the reports and does nothing! In many ways our customers are experiencing the same vulnerability inconsistencies as Hamlet. But unlike our hero’s tragic fate, there is some good news: Red Hat is working with independent software vendors (ISVs) to help drive vulnerability consistency for both Red Hat and our partners.

  • Kubernetes and the hybrid cloud with Skupper

    DevNation Tech Talks are hosted by the Red Hat technologists who create our products. These sessions include real solutions plus code and sample projects to help you get started. In this talk, you’ll learn about Kubernetes and the hybrid cloud with Skupper from Ted Ross and Burr Sutter.