I assume this is something to do with AppArmor. From "strace evince": open("/var/opt/thinlinc/sessions/aaron/1/Xauthority", O_RDONLY) = -1 EACCES (Permission denied) Perhaps the installer should configure AppArmor too, in the same way we do for SELinux, but I imagine this would require editing system files. If we don't want to do this, then we should at least add something to Platform Specific Notes.
Confirmed with a standard Ubuntu 12.04 installation. Found this upstream bug: https://bugs.launchpad.net/ubuntu/+source/evince/+bug/523803 Unfortunately RESOLVED NOTABUG. It is indeed an AppArmor thing. Stupid if you ask me... Wrt configuration, there's a file: /etc/apparmor.d/abstractions/X ...that only allows these files: # .Xauthority files required for X connections, per user @{HOME}/.Xauthority r, owner /{,var/}run/gdm/*/database r, owner /{,var/}run/lightdm/authority/[0-9]* r, This "abstration" is used by: ./abstractions/ubuntu-browsers.d/multimedia ./abstractions/gnome ./abstractions/kde The gnome abstraction is used by: ./abstractions/ubuntu-browsers.d/java ./abstractions/ubuntu-gnome-terminal ./abstractions/evince ./disable/usr.bin.firefox ./usr.bin.firefox Thus, fortunately, it seems like Evince is basically the only problematic program. Whee, this gives SO much more security! I guess we could ask them to include /var/opt/thinlinc/... in the default configuration...
By adding this line to /etc/apparmor.d/abstractions/X: owner /{,var/}opt/thinlinc/sessions/*/*/Xauthority r, ...evince actually "starts". However, it looks like shit, and writes this to the console: (evince:13833): GRIP-WARNING **: failed to determine device types (evince:13833): GRIP-WARNING **: Failed to initialize gesture manager. (evince:13833): GRIP-WARNING **: Failed to initialize gesture manager. ... It's not even possible to close the application. This does not help either: # mv /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/ I'd say that this is FUBAR.
In my opinion the best workaround is to reconfigure apparmor with an "additional home", sudo dpkg-reconfigure apparmor specify /var/opt/thinlinc/sessions/ as an "additional home". Everything works. Maybe document this as a workaround?
(In reply to comment #3) > In my opinion the best workaround is to reconfigure apparmor with an > "additional home", I'm leaning towards this solution too - AFAICT, any automated solution involves modifying system files, which is not a good idea IMO. Perhaps we can simply document this workaround in Platform Specific Notes.
Workaround added to Platform Specific Notes in r26497.
Vetoed - we've decided to keep investigating additional possible solutions to this issue.
AppArmor sucks royally. I cannot see any proper way of extending the existing policy ("local/" is for the administrator, and is not guaranteed to be used). There is a tunables/home.d that seems open for abuse though. We might be able to drop the necessary policy changes in there. Not really what that directory is supposed to be used for, but I don't see any other options.
Bah. home.d is included in the preamble, so we cannot add any rules there. The only thing we can do is modify variables. So we can automate the workaround in comment 3, but not much else.
tl-setup was modified to configure this for the administrator in r27172. Tester should remove the old information on the web during the test period.
The apparmor module is not shipping.
Also, error on line 197 of apparmor.py.
Fixed.
> open("/var/opt/thinlinc/sessions/cendio/1/Xauthority", O_RDONLY) = 7 Didn't have any problems with the AppArmor install on 12.04 and Evince starts up nicely. Calling this one done, solved and closed.