02 May 2024

feedPlanet KDE | English

Let everyone know you are going to Akademy 2024 E-banners

The E-Banners for #Akademy2024 are now available!

Use them to promote Akademy on your websites, blogs, social media headers, or any other platform.

There are three different sizes to choose from. If you decide to use the banners, it would be great if you could link them to the Akademy website to help attract more visitors.

Let's spread the word about Akademy and make it a success!

!600x110

!728x90

160x60

(These banners were created by Andy B.)

02 May 2024 8:11am GMT

KDE & Google Summer of Code 2024

KDE will mentor ten projects in Google Summer of Code (GSoC) this year. GSoC is a program in which contributors new to open-source spend between 175 and 350 hours working on an open.source project.

Projects

KDE Connect

ShellWen Chen will work on updating the SSHD library in the KDE Connect Android app which will improve the application's security and stability. Albert Vaca Cintora will mentor this project.

Labplot

LabPlot is a Data Visualization and Analysis platform. This summer, Kuntal Bar will work on adding 3D plotting support to cater to the evolving demands of scientific research. Israel Galadima will work on Python wrappers around the LabPlot C++ API. Alexander Semke will mentor both projects.

Arianna

Arianna is KDE's Epub viewer, and Ajay will work on porting the Javascript frontend from epub.js to Foliate.js, the library that powers Foliatte. Carl Schwan will mentor this project.

Frameworks

Manuel Alcaraz will work on adding support for Qt for Python to some of the KDE Frameworks, enabling the large Python ecosystem to use them. Carl Schwan will also mentor this project.

Okular

Pratham Gandhi will work on improving Okular's support for Javascript forms. This is particularly important because Javascript-powered forms are used frequently in PDFs provided by local governments, and while Okular already partially supports them, many functions are not implemented. Albert Astals Cid will mentor this project.

Snaps

Soumyadeep Ghosh will work under Scarlett's direction and integrate the Snap ecosystem closer with KDE. This includes fixing the Discover integration with Snap and adding a Snap KCM to change the permission from Plasma System Settings.

Krita

Ken Lo will work under the supervision of Tiar and Emmet O'Neill on improving the pixel art workflow by adding the Pixel Perfect option to smooth out pixel art curves.

KDE Games

João Gouveia will implement the backend for a variant of the Mancala game as well as a solver under the supervision of Benson Muite and Harsh Kumar.

Kdenlive

Chengkun Chen will work on improving the support for subtitles in Kdenlive. More specifically, he will add full support for the Sub Station Alpha v4.00+ format which contains style information for Kdenlive. Jean-Baptiste Mardelle will mentor this project.

02 May 2024 12:00am GMT

01 May 2024

feedPlanet KDE | English

Kate & Icons

How it shall look…

#

Linux & BSDs

#

Windows

#

macOS

#

State on Fedora 40 Workstation & XFCE Spin…

#

Screenshots taken from the GNOME bugtracker, copies to not stall their GitLab instance.

I think that is rather unpleasant and for e.g. the left icon-only border just an unusable insult.

Why? The Adwaita Icon Theme no longer follows the FDO icon naming spec

#

There was no information that they want to break away from the icon naming 'the world' does assume (given there is a spec). And now we have that state for our users there, at least on these spins.

That is not that nice, we did spend a lot of work to get our applications working cross-desktop and even cross-platform and now that…

I feel rather infuriated, finding this before going to sleep, even more after reading the feedback in the GNOME bugtracker and that this is just closed as 'so be it'.

They added now at least a hint to the README:

Private UI icon set for GNOME core apps.

Ok, I assume that is then all fine.

No, it is not.

Then please don't install it as FDO icon theme and break all FOSS apps that rely on the naming spec…

If you care for non 'GNOME core apps' to work per default properly on distributions like that, please either get them to fix it (hints are given in the linked issue) or get the distributions to install a compliant theme.

We can plan to work around this mess in the future on our side, but that will not un-break the application versions that are now already shipped to our users and non-KDE frameworks based stuff that will just run into the same issues.

Feedback

#

You can provide feedback on the matching KDE Social, reddit or Hacker News post.

01 May 2024 10:36pm GMT

Goal Sprint 2024

Last week, like many other people, I was in Berlin for the Mega^WGoals sprint. Natually the three goals (Sustainability, Accessibility, and Automatability; the three abilities) attracted a diverse crowd of people that brought also other topics, so it turned into a proper megasprint.

Being interested in all three goals made it a bit callenging to follow all relevant discussions unfortunately, but on the flip side it never got boring.

Most of my goal-related work was towards the automation goal. One thing I was working on is a CI job that checks for spelling mistakes in the code, so that those can be caught when doing a MR. A while ago I create a website that tracks which KDE projects are ported to Qt6. What started out as a joke for a talk turned out to be a useful tool for planning porting work. During the print I fixed the site to actually work correctly again and, most importantly, changed the text from "No" to "Yes" since most projects actually use Qt6 now. For a while the site also has auto-generated reports for other things, like showing which projects don't yet have clang-format applied to them or which projects don't enforce passing test in the CI. I used the latter list to enable this for the remaining projects that don't have failing tests right now and prepared a change to the CI system that enforces passing tests by default. In the same spirit others and I also fixed some currently failing tests. We also discussed the idea of extending the site with more checks and turning it into a proper KDE site that isn't hosted on my personal infrastructure.

Harald, Carl, and I worked on a dashboard to show the CI status for our project. This is something we haven't really had since switching to Gitlab CI but is very useful e.g. as part of the release checklist. We do have a working prototype, but some things remain to be ironed out. As part of this we also fixed some of the currently failing builds.

My main contribution to the systainability goal was debugging why Nate's NeoChat is using too much CPU. With a team effort we eventually pinpointed this to an invisible animation constantly repainting the window, which was then promptly fixed.

In terms of accessibility I was mainly involved in discussions about challenges and new developments with accessibility on Wayland. Expect to hear more on this soon.

In "off-topic" topics there were plently of discussions about visions, ideas, and challenges for our application development story. This included discussions on visions for design/UX, theming, API design, and software distribution. Being KDE's Software Platform Engineer it is part of my responsibilities to facilitate these kinds of discussions. Later this year I want to host a sprint dedicated to application design to discuss and establish our vision there. If you are interested do reach out to me.

All in all it was a fun few days with great people. Thanks to MBition and Aleix for hosting us, and thanks to those donating to KDE to make these sprints possible.

01 May 2024 1:00pm GMT

30 Apr 2024

feedPlanet KDE | English

Amaroking FreeBSD

Looking back at my blog, I find lots of mention of Amarok, the KDE audio player, in 2008, 2009, some KDE4-on-OpenSolaris stuff mentions it, and then a long silence until 2021. About a year ago, early 2023, the audio/amarok port was removed from FreeBSD ports. So naturally I was intrigued - maybe even excited - to see Amarok return from vacation with a 3.0 release. And I needed to try it on FreeBSD.

Many of the dependencies are (still) packaged on FreeBSD, so I installed a handful and tried building it on my still-KF5-based X11-based so last-gen Plasma Desktop workstation.

Somewhat to my surprise - I don't imagine there is FreeBSD CI for Amarok - everything built, ninja install did the right things, and it starts! And toots and parples, clangs, bangs, blips and bloops are reproduced with excellent fidelity.

So, congratulations Amarok folk. It might even return to the FreeBSD ports collection, although - I'm gonna be honest here - I'm not sure it offers me anything in the way of music appreciation that command-line gst-play doesn't give me. I am just that much more previous-last-gen.

30 Apr 2024 10:00pm GMT

29 Apr 2024

feedPlanet KDE | English

File modes in C++20

I was looking at some code that sets file permissions - file modes - by calling chmod(2). The command-line chmod(1) has a bunch of possibilities for setting permissions, but the underlying system-call needs an int, and the C headers for it are annoying to use. So I fired up some C++ machinery to "make it nicer to use".

tl;dr: scroll to the bottom for a compile-time, compact way of writing file permissions so that chmod(filename, "rwx--x--x"_mode) does something plausible, with good error messages in case of typo's.

The manpage for chmod(1) is fairly extensive. There are two ways to specify a file mode, either in octal or symbolically. Octal is just a number, symbolically is much more complicated.

On the C API side, the manpage for chmod(2) shows you need a pathname and a mode, and there are a whole bunch of symbolic constants to use, like S_IRUSR.

How I think about file modes

It turns out I nearly always think about file modes in octal. I have somehow internalized things like "755 for executables" and "666 for crap" and "600 for files in ~/.ssh" but I don't really have names for these things. If I think about it, I can use the symbolic manipulations like ugo+rw for crap. But I don't see permissions in this symbolic form, and the octal form is persnickety in C source, probably because I don't expect everyone to know "leading 0 means octal".

But there is a form in which I see file modes every day: the output from ls -l, where permissions are shown with 10 characters, the first 10 on this line:

-rw-r--r-- 1 adridg users 0 Apr 30 11:46 example.txt

The first - says something about the type of file and is - for regular files, d for directories, l for symbolic links, and there are others, too. That's not really the mode, though, while the next 9 characters are: each group of three shows r, w, and x in that order, or a - in each position, indicating the read, write, or execute bit for the corresponding class of logins. The first three are the current user, next three are group, the last three for others.

The C code to call chmod with this mode looks like

chmod("example.txt", 0644);
chmod("example.txt", S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

One is octal-arcane and the other is just arcane and hard-to-read.

Turning readable modes into numbers

So I thought to myself: I can write a C++ function that turns the 9-characters of the mode in text form, into an actual mode_t value (that's an integer).

That's a trivial exercise, really, although it gets a bit persnickety in error handling. I would just throw on an incorrect length, or any incorrect character, and leave it at that.

From there, though, I went on to: I can write a consteval C++ function that does the computation at compile-time (guaranteed to be only at compile-time, because consteval). This is a function that can only be called with a compile-time string literal, so the function signature is potentially:

consteval mode_t from_readable_mode(const char (&permission_string)[10])

The array-reference is to 10 characters because there are 9 mode characters, and then a trailing NUL byte (zero) in a string literal. This function can be called (in the context, sill, of chmod()) like so:

chmod("example.txt", from_readable_mode("rw-r--r--"));

and at compile-time that is already computed to be 420 (that's 0644 octal).

The last step of make-it-cool (for an appropriate value of "cool") is to turn the whole thing into a user-defined literal. In my source code I can now write

chmod("example.txt", "rw-r--r--"_mode);

Which really satisfies my own desire for "readable, compact, compile-time".

Don't get me started on Qt

For some reason, the values of QFileDevice::Permission are in hexadecimal, but written as hex, look like the corresponding octal values. So in Qt code if you don't use the symbolic representation of the flags, and just go ram an integer into there, you get 0x644 meaning the same as 0660 in the call to chmod() and everything becomes just that much more confusing and fraught.

Meaningful error messages

C++ and "helpful, friendly, easy-to-read error messages" go together like peaches and .. battery acid? Like things that don't go well together at all. In recent GCC versions there has been a marked improvement in the look of error messages.

With some judicious use of templates and naming of types, existing error messages can be improved. You still get a veritable torrent of messages, but if, somewhere in the middle, the error message (here, from Clang 17) says:

mode.h:26:9: note: subexpression not valid in a constant expression
26 | throw invalid_permission_character{};
mode.h:41:9: note: in call to 'expected_character_at_position(&"rwxbadbug"[0])'
41 | detail::expected_character_at_position<3, 'r'>(s) |

Then it's a lot easier to decide that the character at position 3 - the letter b - is not expected, and maybe an r was expected there instead.

User-defined file mode literals

Here is the definition of my _mode literal. String-based literals get a pointer and a size, which is inconvenient because they don't turn back into fixed-size arrays.

consteval mode_t operator""_mode(const char *s, size_t len)
{
if (len != 9)
{
throw detail::invalid_permission_string_length{};
}
return detail::from_readable_mode_string(s);
}

Anyway, if the string is the wrong size then a meaningful exception is thrown, which isn't constexpr, so you get a meaningful error message:

mode.h:65:9: note: subexpression not valid in a constant expression
65 | throw detail::invalid_permission_string_length{};
main.cc:44:24: note: in call to 'operator""_mode(&"birb"[0], 4)'
44 | std::cout << "birb"_mode;

Here us the implementation of the function that does the actual work, turning the string into a mode_t:

consteval mode_t from_readable_mode_string(const char * const s)
{
return
detail::expected_character_at_position<0, 'r'>(s) |
detail::expected_character_at_position<1, 'w'>(s) |
detail::expected_character_at_position<2, 'x'>(s) |
detail::expected_character_at_position<3, 'r'>(s) |
detail::expected_character_at_position<4, 'w'>(s) |
detail::expected_character_at_position<5, 'x'>(s) |
detail::expected_character_at_position<6, 'r'>(s) |
detail::expected_character_at_position<7, 'w'>(s) |
detail::expected_character_at_position<8, 'x'>(s);
}

It's really wordy, which is unfortunate, but by writing it like this, the error message - at least with Clang 17 - repeats the template parameters and mentions the specific subexpression that is problematic.

Here is a Clang 17 error message when using an inappropriate permission character:

mode.h:26:9: note: subexpression not valid in a constant expression
26 | throw invalid_permission_character{};
mode.h:44:9: note: in call to 'expected_character_at_position(&"------uwu"[0])'
44 | detail::expected_character_at_position<6, 'r'>(s) |
mode.h:67:12: note: in call to 'from_readable_mode_string(&"------uwu"[0])'
67 | return detail::from_readable_mode_string(s);

Huh, I guess you can't give uWu permission to others. The same error message from GCC 13 looks similar:

main.cc:44:18: in 'constexpr' expansion of 'operator""_mode(((const char*)"------uwu"), 9)'
mode.h:67:45: in 'constexpr' expansion of 'detail::from_readable_mode_string(s)'
mode.h:44:55: in 'constexpr' expansion of 'detail::expected_character_at_position<6, 'r'>(((const char*)s))'
mode.h:26:9: error: expression '<throw-expression>' is not a constant expression
26 | throw invalid_permission_character{};

And here's the implementation that turns a single character into a bit in a file mode value:

template<int position, char accept>
consteval mode_t expected_character_at_position(const char * const permission_string)
{
const char c = permission_string[position];
if(c == accept) { return 1 << (8-position); }
if(c == '-') { return 0; }
throw invalid_permission_character{};
}

This is a bit wordy, but it ensures that position and the acceptable (expected) char are front-and-center in error messages, and that the expected character and - are the only characters for which this is a constant expression - everything else will fail because exceptions aren't constexpr.

So there you have it, a compact constexpr representation of file modes with meaningful error messages. You can find the code in my personal GitHub repository playground, in the subdirectory mode/ . I won't link it here because, frankly, it is time I get my ass in gear and migrate to some other forge.

29 Apr 2024 10:00pm GMT

Bugzilla Bot improvements in the Automation Sprint

I'm happy to have been able to attend my first in-person KDE event, the Automation & Systematization Sprint in Berlin. Previously, my contributions to KDE have consisted of submitting and triaging bug reports. During this weekend, I was able to meet some of the KDE team in person, and become more involved. I've started working with the Bugzilla Bot code, and plan to start digging into the automated test code.

The Bugzilla product list had fallen out of date, so first I updated that (yay, my first accepted MR!). I also started working on using the GitLab API to automate these updates. In the near future, I'll be tackling some requested improvements to the Bugzilla Bot. This will lessen the amount of boring manual bug chores and free people up to do more valuable work.

Thanks to the KDE team for being so friendly and willing to help me learn the development environment. I'm happy to have found more ways to contribute that I enjoy, and will be valuable to the project.

29 Apr 2024 9:30pm GMT

Amarok 3.0 "Castaway" released!

The Amarok Development Squad is happy to announce the immediate availability of Amarok 3.0 "Castaway"!

Amarok 3.0 screenshot

The new 3.0 is the first stable Qt5/KDE Frameworks 5 based version of Amarok, and first stable release since 2018, when the final Qt4 based version 2.9.0 was released.

The road to 3.0 has not been a short one. Much of the Qt5/KF5 porting was done in 2015 already, but finishing and polishing everything up has been a slow, sometimes ongoing and sometimes stalled process ever since. 3.0 Alpha was released in February 2021 and has been since used by many people, as have been nightly builds of git master available for various distributions. Now in the past few months, an effort was made to get everything ready for a proper 3.0 release.

Common usecases should work quite well, and in addition to fixing KF5 port related regressions reported in pre-releases, 3.0 features many bugfixes and implemented features for longstanding issues, the oldest such documented being from 2009. However, with more than 20 years of development history, it is likely that not every feature Amarok has been tested thoroughly in the new release, and specifically some Internet services that have changed their API in recent years are not available, at least for now. It might well be that getting them in better state wouldn't require huge effort, however, so if you know your way with Qt and KDE Frameworks and your favourite Internet music service does not work with Amarok 3.0, you are extremely welcome to join in and help!

In the following months, minor releases containing small fixes and additions, based on both newly reported and longer-standing bug reports and feature requests, are to be expected. Work on porting to Amarok to Qt6/KDE Frameworks 6 should start in the following months, the goal being to have a usable Qt6/KF6 based beta version in 2024 still.

One should observe that due to scripting framework port from QtScript to QJSEngine still being a work in progress, previous Amarok 2.x scripts are often not compatible. The script API documentation at community wiki is also partially out of date. Additionally, due to incompatibilities and other issues, KNewStuff downloading of scripts is disabled for the time being. Having script support in more polished shape is something to work on after an initial Qt6/KF6 version starts to be usable. It is also evident that the web site and community wiki pages largely originate from more than ten years ago, and contain partially outdated information. Some work on refreshing them and pruning the documentation to make it more maintainable is likely to happen during the following months.

Now it's time to Rediscover Your Music in the 2020's!

Changes since 3.0 Beta (2.9.82)

FEATURES:
CHANGES:
BUGFIXES:

The complete ChangeLog, which includes the pre-releases, is available in the git repository.

To provide some insight on the road from 2.9.0 to 3.0.0, statistics collected from git repository are presented:

Commits and added/removed lines of code between 2.9.0 and 3.0 alpha (2.9.71)

l10n daemon script: 117 commits, +898, -192
Heiko Becker: 72 commits, +5641, -2112
Laurent Montel: 69 commits, +9478, -9697
Aroonav Mishra: 65 commits, +15474, -6808
Pino Toscano: 31 commits, +6892, -1637
Malte Veerman: 30 commits, +19466, -29990
Olivier CHURLAUD: 27 commits, +1106, -474
Yuri Chornoivan: 19 commits, +966, -806
Pedro de Carvalho Gomes: 8 commits, +145, -407
Pedro Gomes: 7 commits, +7222, -805
Luigi Toscano: 7 commits, +15, -14
Mark Kretschmann: 6 commits, +27, -17
Wolfgang Bauer: 5 commits, +31, -7
Tuomas Nurmi: 4 commits, +39, -23
Stefan Derkits: 4 commits, +20, -19
Andreas Sturmlechner: 3 commits, +189, -75
Aditya Dev Sharma: 3 commits, +47, -46
Stephan Wezel: 2 commits, +12, -7
Andreas Sturmlechner: 2 commits, +8, -6
Andreas Hartmetz: 2 commits, +2, -2
Victor Mataré: 1 commits, +7, -3
Tobias C. Berner: 1 commits, +5, -1
Thiago Sueto: 1 commits, +1, -1
Sven Eckelmann: 1 commits, +5, -3
Somsubhra Bairi: 1 commits, +1, -1
Simon Depiets: 1 commits, +2, -2
Rishabh Gupta: 1 commits, +1, -4
Nicolas Lécureuil: 1 commits, +4, -2
Nate Graham: 1 commits, +7, -7
Johnny Jazeix: 1 commits, +2, -2
Elbin Pallimalil: 1 commits, +11, -5
Christophe Giboudeaux: 1 commits, +1, -2
Antonio Rojas: 1 commits, +1, -0
Alexandr Akulich: 1 commits, +1, -1
Albert Astals Cid: 1 commits, +1, -0

Commits and added/removed lines of code between 3.0 alpha 2.9.71 and 3.0.0

l10n daemon script: 317 commits, +1597783, -75585
Tuomas Nurmi: 147 commits, +3813, -1550
Friedrich W. H. Kossebau: 9 commits, +1075, -1044
Jürgen Thomann: 8 commits, +130, -101
Heiko Becker: 8 commits, +187, -19
Pino Toscano: 6 commits, +3361, -24
Toni Asensi Esteve: 4 commits, +100, -13
Pedro de Carvalho Gomes: 4 commits, +51, -9
Mihkel Tõnnov: 4 commits, +4486, -800
Zixing Liu: 2 commits, +140, -8
Fabian Vogt: 2 commits, +9, -0
David Faure: 2 commits, +4047, -15
Damir Islamov: 2 commits, +401, -420
Yuri Chornoivan: 1 commits, +1, -1
Sebastian Engel: 1 commits, +21, -21
Nicolas Fella: 1 commits, +1, -1
Nicolás Alvarez: 1 commits, +7, -7
Nate Graham: 1 commits, +1, -0
Matthias Mailänder: 1 commits, +5, -0
Jonathan Esk-Riddell: 1 commits, +2, -6
Jakob Meng: 1 commits, +1, -1
Heiko Becker: 1 commits, +17, -17
Christophe Giboudeaux: 1 commits, +3, -4
Carl Schwan: 1 commits, +7, -2
Boris Pek: 1 commits, +1, -1
Andreas Sturmlechner: 1 commits, +2, -0

Packager section

You can find the package on download.kde.org and it has been signed with Tuomas Nurmi's GPG key.

29 Apr 2024 8:00pm GMT

KDE neon Post-Plasma 6 Updates Review

The goal of KDE neon is to build all KDE's software on a stable Ubuntu LTS base, we do it in an automated way and for the User edition have automated QA to deploy rapidly but safely. For the KDE 6 Megarelease there was a lot of updates and the system didn't work as well as it ought, not all the update issues could be tested and this broke some the operating system on some people's computer which is a horrible experience that should not happen.

What happened?

We were testing KF6, Plasma 6 and KDE Gear 24.04 in our unstable and testing repos for some time before the release. A week ahead of release we were building it in our User repo and testing upgrades. Jonathan, as release manager for both the MegaRelease and neon, travelled to Malaga to do an in person joint release with Paul from promo, this helped the coordinated release but lost some testing time. Some package transitions happened during the pre-release week which made the updates more complex than they had to be and meant extra work (for better end result in theory). Once the MegaRelease sources were published on Thursday the testing of Neon was ongoing and many later fixes were made to make for a successful upgrade on the tests. Neon's KF6/Plasma6/KDE Gear 24.02 packages were published later on Thursday and Jonathan drove home, alas due to bad weather there was no internet available on the ferry limiting later fixes.

Although the semi automated upgrade tests passed this didn't cover all cases and some people had incomplete upgrades due to packaging transitions being incomplete. This was fixed over the next day or two and also an update to the installer Calamares was brought in which turned out to have a bug with the final install setup so although upgrades now worked the ISO installs were broken. Quite horrible.

On the Monday Jonathan fixed some more upgrade issues and Calamares so the neon end of things was fixed but there remain other problems with KF6 and Plasma 6 which affect all distros and many of these have since been fixed and some are ongoing, many caused by the switch to Wayland or Akonadi switching to sqlite.

Issues?

There wasn't one big problem that caught everyone. There was lots of small but significant problems which caught many people.

NVidia users had a number of issues often caused by the switch to Wayland. Most users can switch back to X11 to get it working but that is hardly a user friendly setup.

This is just a small sample, there were more similar issues.

Review

Neon is a small team, Jonathan working on it (alongside release duties for Plasma and Frameworks) from Blue Systems and top volunteer helper Carlos with occasionally Harald and others helping out.

We had a review with KDE's QA star Nate of what happened and why and mitigations and we also had two open calls with neon community members where they gave their feedback.

Ponderings

The Plasma 6 and KF6 upgrades in neon were too fragile and caused too much pain for many of our users.

There wasn't one single problem and many people had a perfectly good experience doing the upgrade but too many people were caught with problems which will be painful when you are just wanting to have a useful Linux system.

Conclusions

Our constantly rolling release model and small team means we can't guarantee total stability so we will stop using terms like "rock solid base" on our website and emphasise the new-ness factor.

When doing big updates test and if travelling bring in other people to do testing and fixes.

We can't support NVidia hardware as we don't have the skills, time, hardware or access to source to fix it.

Switching to Wayland was a choice of Plasma and after a decade in development a necessary choice but we should be aware of issues there and communicate those.

Get more QA on ISO images, currently we don't have any prior to release which is going to lead to problems.

Consider if we can to upgrade QA on older snapshots as well as the current one.

Consider how to do more QA on KDE PIM apps.

Thanks to all our lovely users for staying with us, sorry to those who we let down and those who have left us. Thanks to our community for staying supporting of each other and us as developers. Of course there's plenty of alternatives if you want a slower release cycle (Kubuntu have just made a new LTS with Plasma 5) but if you want the freshest software from KDE then neon continues to be a great place to get it.

29 Apr 2024 11:31am GMT

Qt Visual Studio Tools 3.2.0 Released

We are happy to announce the release of the Qt Visual Studio Tools version 3.2.0. Installation packages are now available at the Visual Studio Marketplace and download.qt.io.

This update of the Qt VS Tools extension adds experimental support for QML LSP server, as well as full support of the Qt VS Tools for Visual Studio 2022 on ARM64.



Qt MSBuild file support:

Alongside providing Qt-related MSBuild files within the Qt VS Tools package, we now offer them as a separate .zip download for your convenience. Starting from version 3.2.0, access the standalone Qt MSBuild files by visiting our public server download location: Official releases.

Please refer to the project's Changelog for a list of all changes included in this release. Feel free to report any problems, or make any suggestions or comments, in the Qt Visual Studio Tools bug tracker.

29 Apr 2024 8:53am GMT

28 Apr 2024

feedPlanet KDE | English

What’s new for Fedora Atomic Desktops in Fedora 40

Fedora 40 has been released! 🎉 So let's see what comes in this new release for the Fedora Atomic Desktops variants (Silverblue, Kinoite, Sway Atomic and Onyx Atomic).

Note: You can also read this post on the Fedora Magazine.

Introducing Fedora Atomic Desktops

As you might have guessed from the title, we are now called Fedora Atomic Desktops! See the Introducing Fedora Atomic Desktops Fedora Magazine article for all the details.

The summary is that the Fedora Atomic Desktops are made up of four atomic spins:

And we have a landing page on fedoraproject.org.

Status update on bootloader updates (bootupd integration)

Unfortunately, we could not land bootupd support in this release due to an issue found late in Anaconda's handling of bootupd installations which relied on incomplete functionality in bootupd.

We will attempt to add bootupd again after the release, via an update.

If you encounter Secure Boot errors or need to update your bootloader in the meantime, you can try the instructions from fedora-silverblue#543. Make sure to have a Live USB ready in case you encounter an issue. Please make backups beforehand.

We are hoping to land improvements to bootupd that should simplify this process.

See: atomic-desktops-sig#1.

What's new in Silverblue

Latest GNOME release

Fedora Silverblue comes with the latest GNOME 46 release.

For more details about the changes that comes with GNOME 46, see What's new in Fedora Workstation 40 on the Fedora Magazine and Fedora Workstation 40 - what are we working on from Christian F.K. Schaller.

No longer overlay language packages (langpacks) by default

GNOME Software will no longer overlay the langpack packages for your locale on the first update. This should make updates much faster as they won't need to overlay packages anymore (unless you explicitly decide to overlay some packages).

If you are updating from a previous release, you will have to remove this overlayed package manually. For example:

  1. Find the overlayed package using rpm-ostree status:
$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/40/x86_64/silverblue
Version: 40.20240410.1 (2024-04-10T03:43:23Z)
Commit: 2428fdbec13787633b3bcd79d4f002ab48582bae8c6a473ca357a1ad43573a94
GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
LayeredPackages: langpacks-fr
fedora:fedora/40/x86_64/silverblue
Version: 40.20240402.0 (2024-04-02T00:39:43Z)
Commit: 634c8097165e6aab2baeaca6ae6d1ea2a7f11fba9f4955297bcf0fc2507047be
GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
LayeredPackages: langpacks-fr
  1. Remove the overlayed package and reboot:
$ rpm-ostree uninstall langpacks-fr
...

Note that this will remove the dictionaries for the corresponding language from your system and thus for applications included in the image.

For Flatpaks, the dictionaries are downloaded according to the languages set in the Flatpak config. If you have set your preferred languages in GNOME Settings, this configuration should have been set already. For example:

# Get the current config
$ flatpak config --list
languages: en;fr;de (default: en)
extra-languages: *unset*
# Set the languages to use
$ flatpak config --set languages "en;fr"

See the flatpak-config documentation for more details.

This will also remove the translated man pages for system commands. To get the man pages back, you can install them in a container using toolbox for example:

$ toolbox create
$ toolbox enter
$ sudo dnf install man-pages-fr

See: atomic-desktops-sig#14.

What's new in Kinoite

KDE Plasma 6

Fedora Kinoite ships with Plasma 6, Frameworks 6 and Gear 24.02 (Fedora Change). See also What's New in Fedora KDE 40? on the Fedora Magazine.

Wayland only

Fedora Kinoite is now Wayland only. Legacy X11 applications will run using XWayland. See Fedora 40: X11 is now unsupported.

If you have a NVIDIA GPU and encounter issues, I recommend looking at Universal Blue images, waiting for an upcoming NVIDIA driver update that will hopefully improve Wayland support or trying out the updated Nouveau / NVK stack for supported cards.

KDE Apps as Fedora Flatpaks

A subset of KDE Apps are now installed by default as Fedora Flatpaks by Ananconda for new installations. The Flatpaks are not installed on updates but you can install them from the Fedora Flatpak remote or from Flathub.

KDE Flatpak on Flathub

Most KDE Apps are directly published and maintained on Flathub by the KDE community and we have mostly completed the transition to the Qt 6.6 / KDE Framework 6 Runtime.

You can track the progress for the remaining apps in kde/teams/flathub#26.

What's new in Sway Atomic

Fedora Sway Atmoic comes with the latest 1.9 Sway release.

What's new in Budgie Atomic

Fedora Budgie Atomic ships with the latest release of the Budgie Desktop 10.9 "release series". Budgie 10.9 features some initial porting work to libxfce4windowing as it progresses towards its move to Wayland and redesigns its Bluetooth applet with new direct (dis-)connect functionality.

Additionally, Fedora Budgie Atomic ships with the latest Budgie Control Center and takes into use budgie-session. As Buddies of Budgie officially supports Fedora, Budgie Desktop has also received numerous backported bug fixes to provide Fedora users an even better experience.

You can learn more about the latest happenings in Budgie on the Buddies of Budgie blog.

What's next

Unfortunately, this section will be short this time, as there has not been much progress on our future plans since the last time.

We will provide an updated article when more information becomes available.

Teaser for improved update support in Discover for Kinoite

Plasma Discover's main application window, on the update tab, showing a pending operating system update, which is highlighted in green. For this update, the size is also available and highlighted in blue.

Universal Blue, Bluefin, Bazzite and Aurora

Our friends in the Universal Blue, Bluefin and Bazzite projects also released updates for their images.

Universal Blue is now considered Generally Available alongside Bluefin.

For all your gaming needs, Bazzite reached version 3.0, rebasing on our fresh Fedora 40 images.

They are also introducing Aurora, a KDE Plasma and Kinoite based alternative to Bluefin. See the Introduction to Aurora post for all the details.

Where to reach us

We are looking for contributors to help us make the Fedora Atomic Desktops the best experience for Fedora users.

28 Apr 2024 10:00pm GMT

27 Apr 2024

feedPlanet KDE | English

The next foss-north

This year's foss-north was the tenth incarnation. I've been organizing foss-gbg since 2013, and foss-north since 2016 (two events in 2020 makes it ten in total). It's been quite a journey - moving between three venues, working with amazing speakers and sponsors, finding a way through the pandemic, while getting to know so many people.

The conference continued when fscons moved from town. Henrik, who helped start fscons has been invaluable during the foss-north years.

Over the years, there has been multiple people helping out with things like announcing speakers, manning the registration booth, finding speakers and creating a program. One of the people who has been around the whole time is Tobias, who is ran a large portion of the show this year and is taking over the lead organizer role.

Private life has been rough over the past two years, so the decision to step back from foss-north has been more or less inevitable. So it's a great feeling to be able to sit down and enjoy the show and know that the event is in good hands with Tobias.

Thank you all for speaking, visiting, helping out at, and sponsoring foss-north. See you at next year's event. I'll have more time to mingle than ever before! ;-)

27 Apr 2024 11:03am GMT

KDE Accessibility, Sustainability and Automation Sprint

Last week I attended KDE's joint sprint on accessibility, sustainability and automation hosted at MBition in Berlin. Having had little opportunity to sit down and discuss things since Akademy 2023 and the KF6 release the scope grew even wider in the end, my notes below only cover a small subset of topics.

Group photo of the KDE Goal sprint attendees.

Sustainability

I was mainly involved regarding the energy measurement CI tooling here:

There was also some discussion around "sustainable" or "ethical" "AI". While its pretty clear that open source implementations are strictly preferable over proprietary ones and that locally runnable systems are strictly preferable to hosted ones things get a lot more muddy when it comes to the licensing of the input data.

This boils down to the question to what extend we consider the output data derivative work of the input data. Besides the current legal interpretation (which I'd expect to be subject to change), this is also about how we see this regarding the spirit of share-alike licenses (xGPL, CC-BY-SA, etc).

Accessibility

Overall the most effort here probably went into learning and understanding the internals of the accessibility infrastructure in Qt, and exploring ways how we could make non-trivial things possible with that, something that should pay off going forward.

But there were also some immediate results:

Automation

With the AT-SPI accessibility interface also being used for our test automation tooling all of the above also helps here.

Improvements to monitoring the overall CI status also had some immediate effects:

Other topics

I also got the chance to look at details of the Akademy 2024 venue with David and Tobias (who are familiar with the building), to improve the existing OSM indoor mapping. Having that data for a venue opens new possibilities for conference companion apps, let's see what we can get implemented in Kongress until September.

Map of the Akademy 2024 with talk, BoF and team rooms labeled and differently colored.
Indoor map of the Akademy 2024 venue with routing and event-specific MapCSS stylesheet.

As Nate has reported already we didn't stay strictly on topic. More discussions I was involved in included:

You can help!

Getting a bunch of contributors into the same room for a few days is immensely valuable and productive. Being able to do that depends on people or organizations offering suitable venues and organizing such events, as well as on donations to cover the costs of travel and accommodation.

27 Apr 2024 8:45am GMT

This week in KDE: megabytes and gigabytes for all

New Features

On System Settings' Region & Language page, you can now choose how you'd like storage sizes to be displayed. This means you can change them to the more common MB and GB style, instead of MiB and GiB, for example. Note that the default value has not changed, but you have the option to change it yourself (Méven Car, Plasma 6.1. Link):

The popular Kirigami.ContextualHelpButton component now has a QtWidgets counterpart: KContextualHelpButton! (Felix Ernst, Frameworks 6.2. Link)

UI Improvements

On X11, Spectacle now makes it obvious that screen recording isn't supported when you try to run it in recording mode using a global shortcut (Noah Davis, Spectacle 24.05. Link)

Plasma's Vaults widget now appears visible in the active part of the system tray only when a Vault is actually open, bringing the System Tray closer to its platonic ideal of only showing things that are contextually relevant (me: Nate Graham, Plasma 6.1. Link)

Apps inhibiting sleep and screen locking are now shown by their pretty names, not their technical names (Natalie Clarius, Plasma 6.1. Link):

Adopted the new frameless message header style in Discover, as seen when there's a distro upgrade available (me: Nate Graham, Plasma 6.1. Link):

Bug Fixes

Kate once again works as expected with multiple virtual desktops, opening files in a new window in the current virtual desktop rather than attaching it to an existing instance in a different virtual desktop (Christoph Cullmann, Kate 24.05. Link)

Fixed Spectacle's multi-monitor screenshots on X11 not working either at all, or well (Vlad Zahorodnii, and Noah Davis, Plasma 6.0.5. and Spectacle 24.05. Link 1 and link 2)

Fixed a semi-common crash in System Monitor when switching to the Applications page (Arjen Hiemstra, Plasma 6.0.5. Link)

When updating the system using Discover, there are no longer gaps in the updates list as items complete and disappear (Ivan Tkachenko, Plasma 6.0.5. Link)

Plasma's feature to remember whether Bluetooth was on or off last time now works more reliably (Someone going by the pseudonym "Arctic Lampyrid", Plasma 6.0.5. Link)

Fixed an issue in Plasma that would cause flickering and stuttering with adaptive sync turned on (Xaver Hugl, Plasma 6.0.5. Link)

Floating panels now de-float when a window reaches the correct distance away from them, as opposed to de-floating too early (Yifan Zhu, Plasma 6.0.5. Link)

Fixed multiple issues involved with LPD printer discovery and queue management (Mike Noe, Plasma 6.1. Link)

When you have multiple Brightness and Color widgets (for example, because you have multiple panels each with a System Tray on it), the Night Light portions of the widgets no longer interfere with one another and interact in strange ways (Natalie Clarius, Plasma 6.1. Link)

Other bug information of note:

Performance & Technical

Improved Spectacle-s startup speed on Wayland (Noah Davis, Spectacle 24.05. Link)

Improved the scrolling performance of long scrollable views in Discover. This is an area of focus, so expect more to come soon (Aleix Pol Gonzalez, Plasma 6.0.5. Link)

Reduced visual glitchiness when the GPU does a reset, which can happen due to driver bugs, or, with NVIDIA, when the system goes to sleep (Xaver Hugl, Plasma 6.1. Link)

Implemented support for the org.freedesktop.impl.portal.Secret portal for KWallet, which lets Flatpak apps use it (Nicolas Fella, Frameworks 6.2. Link)

Automation & Systematization

Added some basic GUI tests for Dolphin (Méven Car, link)

Added basic GUI tests for opening Plasma's Alternate Calendar config page (Fushan Wen, link)

…And Everything Else

This blog only covers the tip of the iceberg! If you're hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it's going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that's a problem. We've taken steps to change this with paid technical contractors-but those steps are small due to growing but still limited financial resources. If you'd like to help change that, consider donating today!

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to 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!

27 Apr 2024 4:20am GMT

26 Apr 2024

feedPlanet KDE | English

Web Review, Week 2024-17

Let's go for my web review for the week 2024-17.


AI isn't useless. But is it worth it?

Tags: tech, ai, gpt, copilot, criticism, work

It is an interesting essay. It leans on the side of "assistants are useful for simple coding tasks" and it's a bit more critical when it's about writing. The stance is original I find, yes it can help with some writing tasks, but if you look at the writing tasks you can expedite this way… if you wish to expedite them isn't it a sign that they were providing little value in the first place? Is the solution the assistant or changing the way you work? Indeed this might hide some busy work otherwise.

https://www.citationneeded.news/ai-isnt-useless/


Magic Numbers | blarg

Tags: tech, networking, history

Interesting facts about how the ethernet frame MTU came to be 1500 bytes.

https://exple.tive.org/blarg/2024/04/24/magic-numbers/


Guiding users away from cd and ls :: Terminal Click - Bringing Dead Text to Life

Tags: tech, command-line, terminal

Interesting ideas for terminal emulators and shells. Maybe will make their way in other software.

https://terminal.click/posts/2024/04/guiding-users-away-from-cd-and-ls/


Tips on Adding JSON Output to Your CLI App - Brazil's Blog

Tags: tech, json, command-line

Nice set of advices. There are interesting things to do on the command line with more JSON output. It needs to be easy to work with though.

https://blog.kellybrazil.com/2021/12/03/tips-on-adding-json-output-to-your-cli-app/


Modern Linux mounts a lot of different types of virtual filesystems

Tags: tech, linux, filesystem

There is indeed a jungle of virtual filesystems nowadays. That doesn't make it easy to filter only for the "real" ones.

https://utcc.utoronto.ca/~cks/space/blog/linux/LinuxManyVirtualFilesystems


Shared libs, rpath and the runtime linker

Tags: tech, system, linux, linking, debugging

This can sometimes be confusing. Here are a couple of tips about debugging rpath and linker errors.

https://carlosrdrz.dev/shared-libs-rpath-and-the-runtime-linker


Coverage Guided Fuzzing - Extending Instrumentation to Hunt Down Bugs Faster! - Include Security Research Blog

Tags: tech, tests, security, fuzzing

Maybe a bit dry, but gives a good idea of how a fuzz testing harness works. And also how it can be tweaked.

https://blog.includesecurity.com/2024/04/coverage-guided-fuzzing-extending-instrumentation/


HTML attributes vs DOM properties - JakeArchibald.com

Tags: tech, html, web, frontend

There are differences between attributes on the HTML side and properties on the DOM side. This can quickly get confusing, here is a good reference for it.

https://jakearchibald.com/2024/attributes-vs-properties/


3 important things I overlooked during code reviews | Piglei

Tags: tech, codereview, programming

Indeed, naming, comments and communication styles are three aspects often overlooked during reviews. They are very important though and shouldn't be neglected.

https://www.piglei.com/articles/3-important-things-I-overlooked-during-cr/


First Come First Served: The Impact of File Position on Code Review

Tags: tech, codereview, cognition

I guess we kind of suspected it, this studies tends to prove it. Defects are more easily found in the first files of a code review rather than in the last ones.

https://arxiv.org/abs/2208.04259


Random musings on the Agile Manifesto - NeoPragma LLC

Tags: tech, agile, criticism

Interesting musings indeed. That's lesser heard opinions about the manifesto and its origins. Good food for thought.

https://neopragma.com/2024/04/random-musings-on-the-agile-manifesto/


Calculus Made Easy

Tags: mathematics, learning

I didn't know this book. It is written in a surprising style, but it's very much down to earth and to the point. For sure a good way to learn calculus.

https://calculusmadeeasy.org/


You Are What You Read, Even If You Don't Always Remember It - Jim Nielsen's Blog

Tags: reading, knowledge

Very good point. You might not remember the content, but if it impacted the way you think it did its job.

https://blog.jim-nielsen.com/2024/you-are-what-you-read/



Bye for now!

26 Apr 2024 10:37am GMT

Hotspot v1.5.0 released

Hotspot is a standalone GUI designed to provide a user-friendly interface for analyzing performance data. It takes a perf.data file, parses and evaluates its contents, and presents the results in a visually appealing and easily understandable manner. Our goal with Hotspot is to offer a modern alternative to perf report, making performance analysis on Linux systems more intuitive and efficient.

ChangeLog for Hotspot v1.5.0

It comes packed with a wealth of code cleanups, bug fixes and new functionality. Most notably, the disassembly view has been further improved with better searching, highlighting and faster performance.

Furthermore, we reworked the authentication mechanism to allow perf record to be run directly, with elevated priveleges, via pkexec, obsoleting the error prone old mechanism (see also https://nvd.nist.gov/vuln/detail/CVE-2023-28144).

We now also fully support Qt6 and KF6, while keeping compatibility with Qt5 and KF5. The AppImage below is still built with Qt5 but it might be the last time that we do this. The next version might become Qt6 only.

Many thanks to the various contributors who help build this software, both by writing code as well as reporting bugs.

To get a more detailed scope over all the changes in this new release, check out the full changelog on GitHub. More information about Hotspot can be obtained on its GitHub page or by watching this video.

Happy profiling everyone 🚀

About KDAB

If you like this article and want to read similar material, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post Hotspot v1.5.0 released appeared first on KDAB.

26 Apr 2024 10:30am GMT