Friends, I need help. Developer of KeePassXC here. I am at my wits end with snaps and the continued frustration with getting the damn things working properly. I followed exactly the following guides: kde-neon extension and Qt5-KDE-Applications. I produced a rather elegant snapcraft.yml file.
I build the snap on Ubuntu Focal (20.04) to test, everything works. I build it now on launchpad for continuous delivery, everything works. My users tell me they cannot show the file picker on 21.10, 22.04, Mint, etc. I freak out, run through all the debugging tips. I get nothing except it telling me my program is hung up waiting for a file chooser to show (using snap run --gdb keepassxc).
The usual go to is to recommend installing the snappy-debug snap, run it as snappy-debug in the terminal, and have it open in the background to log possible errors as they occur.
Judging that it’s specifically the file picker not showing up, it could be possible issues with the XDG Desktop Portals, in which case, using dbus-monitor and looking for the org.freedesktop.portal.Desktop interface could also give some hints on whether there’s problems there.
Can't open portal file chooser: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files
I resolved the problem by installing xdg-desktop-portal from the system repos.
We need to think of a comprehensive solution going forward.
Same problem here. I am on Backbox Linux 7 which is based on Ubuntu 20.04. Version 2.6.6 worked just fine on snap, however after updating to the latest version, I encountered this problem.
KeePassXC - Version 2.7.0
Revision: 20c9ac1
Distribution: Snap
Qt 5.15.3
Debugging mode is disabled.
Operating system: Ubuntu Core 20
CPU architecture: x86_64
Kernel: linux 5.4.0-105-generic
Looking into this issue, it seems to come down to the fact that the folder /run/$PID/root isn’t being correctly mounted. In every other snap I’ve tested locally, this shows the view of the containers mount namespace. However for KeepassXC for whatever reason, this link is never created.
I’d expect, the XDG portals are using this to try bridge the gap between host environment and snap environment and erroring out as a result. Is there anyone on the snapd team who could evaluate this under that light?
Having looked at the DBus messages being produced from KeepassXC, there aren’t any problems there.
Edit: /var/[PID]/root is not “missing”, it’s just only readable by root, unlike the other snaps.