Yearly cleanup and KDevelop
Every year in the winter I do a cleanup of the packages I have installed in my system. These things accumulate over the year, be it unused packages, orphaned / renamed packages in the repositories or things from AUR. The aim is to remote things which are not needed anymore.
This year, the biggest sacrifice was most of the Qt5, becuase most of the programs I use switched to Qt6, so I decided to remove Qt5 packages which are not needed, this includes KDE Framworks 5 packages.
All went well and I removed around 200 packages, great outcome from this cleanup session.
KDevelop trouble
As I went to play with code in KDevelop I noteced that the shell
integration provided by kdevelop! is not working and throws an error
that qdbus binary is missing.
Error: The qdbus (or qdbus-qt5) utility is missing.
KDevelop is native Qt6 program, it should not depends on Qt5 binaries.
This error was caused by removal of qt5-tools package, which
provides this binary. It is not a compile time dependency and it looks
like the Qt version this utility depends on does not realy matter, so
everything worked, as long as the Qt5 package was installed.
I decided to look into the issue and checked the bug reports, issues, merge requests and the current / latest code. There was no mention of this problem, so I decided to fix it on my own.
QDbus
the binary for qdbus is named differently in different Linux distributions, that is why the original code is checking for multiple variants. I assume I need to do the same, so I tried to check few distributions on how this binary is named.
qdbus-qt6- Fedoraqdbus6- Artix, Arch, Manjaro, Ubuntuqdbus- General fallback
There were differences in Qt5 and as expected, there are differences
in Qt6 as well. In my quick search I did not find any usage of
qdbus, but I am including it in case it appears somewhere.
And here I thought that qdbus6 was generaly accepted name for Qt6
version of this tool, luckily I decided to check Fedora packages and
found that situation is more varried that I originaly thought.
KDE Cli Tools
Package or repository “kde-cli-tools” provides tools on which the
kdevelop! script depends, namely I found kioclinet5 and
kde-open5. The situation here is simpler, the KF6 version provides a
symlinks to KF5 versions while also providing the basic binaries
without numbers. I decided to remove the numbers to not rely on
fallbacks which tend to disappear.
Code
My changes can be found on KDevelop Invent page. I included a similar but shorted reasoning in the commit message explaining why I did ehat I did.
Conclusion
I like winter.