SUMMARY Starting with 6.5, Discover will now show an error message on launch if fwupd is disabled, and it will be unable to check for new updates from other backends. STEPS TO REPRODUCE 1. Remove the fwupd systemd service 2. Launch Discover OBSERVED RESULT The following error is given: "The name org.freedesktop.fwupd was not provided by any .service files" See full logs below. EXPECTED RESULT Discover should be able to ignore the fwupd backend if missing, and still use the other backends. SOFTWARE/OS VERSIONS Linux/KDE Plasma: NixOS unstable 25.11.20251105.ae814fd KDE Plasma Version: 6.5.2 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 ADDITIONAL INFORMATION On NixOS, Discover is built with fwupd as a build input, but it will only be running on the system if enabled elsewhere. Below is a log from opening Discover, seeing the error popup, then going to the updates page and clicking refresh (and getting another popup) libs QList("/nix/store/d4awilxyxi83f33607anxb3v1r5m7a9w-discover-6.5.2/lib/qt-6/plugins", "/nix/store/2i1821p281zr84kmlah0wsnm5838lwy9-purpose-6.19.0/lib/qt-6/plugins", "/nix/store/jk0kfmma7k6g99rv0iksj3rckn3cxyw6-kaccounts-integration-25.08.2/lib/qt-6/plugins", "/nix/store/ak0gjff9f8qqqm373c0zdblmsdbcplnf-kidletime-6.19.0/lib/qt-6/plugins", "/nix/store/q8b1skd8jp57dlhzd5xpy275kinxswap-qqc2-desktop-style-6.19.0/lib/qt-6/plugins", "/nix/store/59b421a1i4zffqfjmykn7ww2sdvcvc0z-sonnet-6.19.0/lib/qt-6/plugins", "/nix/store/k159f1apgsv08k7l6pmps9wbghypx1zp-kio-6.19.1/lib/qt-6/plugins", "/nix/store/f0rzkv0aam9fldslapr7a40pm6c728i7-kiconthemes-6.19.0/lib/qt-6/plugins", "/nix/store/l9rsvgqgqwa3ck39nf9kr8kmk3g81vs1-ki18n-6.19.0/lib/qt-6/plugins", "/nix/store/11szlrm56x0s47wg64y0qr088q93nd3f-kauth-6.19.0/lib/qt-6/plugins", "/nix/store/6agza57avf6mj4vax2y2czydq7w2imaq-kwindowsystem-6.19.0/lib/qt-6/plugins", "/nix/store/y2c7y5izaqvc7c9ivrdhjlz2hvr1k3gb-qtwebview-6.10.0/lib/qt-6/plugins", "/nix/store/rpf9l6xii2xhl1mqj2l7lhg4xrls12vh-qtwebengine-6.10.0/lib/qt-6/plugins", "/nix/store/9wr6ss4hrmziab0mrmh0s4whjvbfcwyx-qtpositioning-6.10.0/lib/qt-6/plugins", "/nix/store/rz0lc8irp5knfzwakm86p3ifkflr1w1i-qtdeclarative-6.10.0/lib/qt-6/plugins", "/nix/store/h987nkqyalnmrlp9k33hzcdc9vdalz9j-qtsvg-6.10.0/lib/qt-6/plugins", "/nix/store/r7wdw4nkkjii690wwnzkgj68cg4shh2v-qtbase-6.10.0/lib/qt-6/plugins", "/nix/store/pkr8v6abdl7y49jw2z2i0w95zzdbsqar-qtwayland-6.10.0/lib/qt-6/plugins", "/nix/store/jnm7fadni21ln7x0pvcxhsxzgzrnagl2-kde-cli-tools-6.5.2/lib/qt-6/plugins", "/nix/store/kd187d860aww258nsxviypr3nk1xbmkf-plasma-workspace-6.5.2/lib/qt-6/plugins", "/nix/store/5mwqmk29p45g5g7wr3n9qdj12df84qdi-plasma5support-6.5.2/lib/qt-6/plugins", "/nix/store/i456qv90l9qhxajbmc1q9pxj5j90cy5n-libksysguard-6.5.2/lib/qt-6/plugins", "/nix/store/806z05i768j7l3riczp2l80mn2jrdqj6-kwin-6.5.2/lib/qt-6/plugins", "/nix/store/y7487p0s2nmmfj7pv3j673dsx4pwn7l4-breeze-6.5.2/lib/qt-6/plugins", "/nix/store/lpxbfzk9cr76lp3li368ryvhyq5mpr5r-frameworkintegration-6.19.0/lib/qt-6/plugins", "/nix/store/8qg08rh44lvdkrc9d0wwdi3ynwzsf1a7-aurorae-6.5.2/lib/qt-6/plugins", "/nix/store/i0yxsqg3pdajjgvpvfbrh2kl3fj3cjx6-ktexteditor-6.19.0/lib/qt-6/plugins", "/nix/store/a643ayydb2jcg34laql95v3zy73dl8jr-kscreenlocker-6.5.2/lib/qt-6/plugins", "/nix/store/758kl9n745bkcmcds7b12fmfms4pwm05-libplasma-6.5.2/lib/qt-6/plugins", "/nix/store/p9z0fpwxvc6wy7yvn18fqvjfwndbiwcl-libkscreen-6.5.2/lib/qt-6/plugins", "/nix/store/gxkk95dqdl5hd4mchz7x4v4sx7arvzi4-layer-shell-qt-6.5.2/lib/qt-6/plugins", "/nix/store/bcp4fiqfmm6wd2ysywjrqnw060s0c84l-kio-extras-25.08.2/lib/qt-6/plugins", "/nix/store/563g3fbz5yay284xf1gc3yj7shd68w0k-kglobalacceld-6.5.2/lib/qt-6/plugins", "/nix/store/rch9pan8qz7v6mc95wxfz8b22vabmzd9-kactivitymanagerd-6.5.2/lib/qt-6/plugins", "/nix/store/2kvybrk22hk2j6kylxiv60sibl1b9hlv-baloo-6.19.0/lib/qt-6/plugins", "/nix/store/790442isnz4jjim1qlnzxm6hcvrymrjh-kfilemetadata-6.19.0/lib/qt-6/plugins", "/nix/store/7m6x1rnyzbgi8bfpwh1qg8h1jrk2mwza-qqc2-breeze-style-6.5.2/lib/qt-6/plugins", "/nix/store/j3nkw0wa4vmvnyvchv98vv38mgzcphgk-qtlocation-6.10.0/lib/qt-6/plugins", "/nix/store/g3w1a7p09sfl3ijn483qs8b7iii3qsjw-system-path/lib/qt-5.15.17/plugins", "/nix/store/g3w1a7p09sfl3ijn483qs8b7iii3qsjw-system-path/lib/qt-6/plugins", "/run/wrappers/lib/qt-6/plugins", "/home/teamil/.local/share/flatpak/exports/lib/qt-6/plugins", "/var/lib/flatpak/exports/lib/qt-6/plugins", "/home/teamil/.nix-profile/lib/qt-6/plugins", "/nix/profile/lib/qt-6/plugins", "/home/teamil/.local/state/nix/profile/lib/qt-6/plugins", "/etc/profiles/per-user/teamil/lib/qt-6/plugins", "/nix/var/nix/profiles/default/lib/qt-6/plugins", "/run/current-system/sw/lib/qt-6/plugins", "/home/teamil/dotfiles/lib/qt-6/plugins", "/home/teamil/dotfiles/lib/qt-6/plugins", "/nix/store/d4awilxyxi83f33607anxb3v1r5m7a9w-discover-6.5.2/bin") org.kde.plasma.libdiscover: OdrsReviewsBackend: Fetch ratings: false Fwupd Error 2 GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.fwupd was not provided by any .service files qrc:/qt/qml/org/kde/discover/qml/DiscoverWindow.qml:336:5: QML Dialog: Binding loop detected for property "y": qrc:/qt/qml/org/kde/kirigami/dialogs/Dialog.qml:300:5 Invalidated backend, deactivating "fwupd-backend" qrc:/qt/qml/org/kde/discover/qml/UpdatesPage.qml:40:5: QML OverlaySheet: Binding loop detected for property "y": qrc:/qt/qml/org/kde/kirigami/templates/OverlaySheet.qml:117:5 Fwupd Error 10 The name org.freedesktop.fwupd was not provided by any .service files Fwupd Error 10 The name org.freedesktop.fwupd was not provided by any .service files
A possibly relevant merge request was started @ https://invent.kde.org/plasma/discover/-/merge_requests/1206
Would you be able to test the proposed patch?
That patch doesn't work, but with the below diff I was able to get it to not give any error popups. With that, Discover almost works like it did pre-6.5. There is still one thing not working, though: clicking the manual "Refresh" button in the updates screen causes it to infinitely hang on "Refreshing Firmware Updates". Update fetching on launch does work fine, though. 33c33 < + && !(perror->code == 3 && msg != QLatin1String("The name org.freedesktop.fwupd was not provided by any .service files"))) { --- > + && !((perror->code == 2 || perror->code == 10) && msg.contains(QLatin1String("The name org.freedesktop.fwupd was not provided by any .service files")))) {
What does it mean that it "works fine"? It should be completely no-op, right?
I am referring to fetching updates from other backends, i.e. flatpak.
Where are "perror->code == 2 || perror->code == 10" from your patch coming from?
The error code is printed in the logs > Fwupd Error 2 GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.fwupd was not provided by any .service files > Fwupd Error 10 The name org.freedesktop.fwupd was not provided by any .service files