Use of `qdbus` binary requires that the package providing it be made mandatory, which pulls in a bunch of unrelated developer apps
When Spectacle is installed, it typically pulls in Qt designer, Qt Assistant, Qt Linguistic, and multiple versions of Qt QDBusViewer. This is messy and non-ideal. These apps come from the qttools
Qt repo, which also includes qdbus
. And Spectacle uses the qdbus
command in various desktop files:
desktop/org.kde.spectacle.desktop.cmake:242:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / FullScreen -1
desktop/org.kde.spectacle.desktop.cmake:296:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / CurrentScreen -1
desktop/org.kde.spectacle.desktop.cmake:350:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / ActiveWindow -1 -1
desktop/org.kde.spectacle.desktop.cmake:404:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / RectangularRegion -1
desktop/org.kde.spectacle.desktop.cmake:449:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / WindowUnderCursor -1 -1
desktop/org.kde.spectacle.desktop.cmake:491:Exec=@QtBinariesDir@/qdbus org.kde.Spectacle / OpenWithoutScreenshot
So because Spectacle uses qdbus
, distros that don't split it into its own package will as a result install qttools
and pull in the unrelated dev apps.
We should try to replace these usages of qdbus
so that the qttools
repo can be optional and distros don't have to pre-install it to satisfy Spectacle's dependencies and pollute their user installs with dev apps.
Some distros split the packages such that qdbus
can be installed on its own without pulling in these other apps, but that requires extra work from them to split up the content in the qttools
repo, and this doesn't seem fair to them. Additionally, some distros like Arch Linux don't do this as a matter of policy and instead always follow upstream packaging.