Update/Add Additional Abstractions for AppArmor
This comprises two commits originally part of https://github.com/torproject/torbrowser-launcher/pull/589.
There are two abstraction sets added.
The first is DBUS session abstractions.
There are DBUS denies for opening dialog boxes and file open boxes, which need DBUS abstractions to access the user sessions. Fixed by including
abstractions/dbus-session
(which also implicitly importsabstractions/dbus-session-strict
for SystemD user sessions) in the apparmor rules, if the abstractions exist.
The second is X abstractions.
Observed initially in https://github.com/torproject/torbrowser-launcher/issues/588, systems that do NOT have GNOME installed on them, such as Lubuntu which uses LXQt and has ZERO GNOME components, will have issues accessing X11 sockets.
In such systems, the implied
abstractions/gnome
already part of the AppArmor profile do not exist. Therefore, AppArmor will not importabstractions/gnome
which includes the X abstractions because the GNOME abstractions definition does not exist.In such cases, components of the UI will not properly function with dialog boxes. This is why this is separately explicitly required, despite GNOME abstractions including X abstractions.