Comment 0 for bug 1890905

Revision history for this message
Rüdiger Kupper (ruediger.kupper) wrote :

This is a follow-up to #1580463. (Note: I am not an expert in snap or apparmor related things, please correct my in anything I say below, thank you ;-).)

Bug #1580463 dealt with a problem in snaps achieving a correct path for accessing IBus and has since closed as fixed. Here, I describe a problem which is most probably related and appears when user caches are stored in non-standard locations (i.e., not in ~/.cache).

Background:
- IBus is an input method for graphical Desktops like GNOME, allowing easy keyboard input for some languages (like Asian languages).
- It is the standard input method on GNOME, which is the standard desktop environment in Ubuntu.
- When the user logs into the desktop session, the IBus interface is created and sockets stored in the user's config directory, the default being ~/.config/ibus/bus/ .
- Applications need access to this data to consume keyboard input.

Regarding snaps:
- Snaps are confined, meaning they have access to only the smallest possible subset of file paths – including strictly defined paths in the users's home directory.
- In the process of resolving #1580463, it has been ensured that snaps can safely access ~/.config/ibus/bus/, so they can consume keyboard input.

Issue at hand:
- There is a well-documented and perfectly valid way of moving a user's config directory away from the default location:
- It is defined by the freedesktop.org specification (see https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html) which GNOME adheres to.
- That specifies that all applications shall expect user specific configuration data to be located below $XDG_CONFIG_HOME, where this environment variable shall default to ~/.config if unset or empty.
- I here report that snaps currently do not follow this specification, causing them to *refuse any keyboard input when IBus is selected as input method*.