Hi,

just a couple remarks:

(1) The method pkexec uses to grant root (i.e. the user it runs its
argument as) access to the real user's X display doesn't work under
Wayland, but still using X (i.e. using Xwayland).
Xwayland (at least as started by mutter/gnome-shell) is started without the
"-auth" option and hence only grants access to the real user (adopting
Wayland's security model).
Hence there's no Xauthority file to grant access to other users. The
workaround is to explicitly allow root to access the user's X display using

$ xhost +si:localuser:root

(2) synaptic nowadays is built with gtk+ 3, so should run natively under
Wayland, but

$ /usr/sbin/synaptic

segfaults:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fa743155cc0 in wl_display_interface ()
    at /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#1  0x00007fa7496b5af9 in XSync (dpy=0x561939e12100, discard=discard@entry
=0)
    at ../../src/Sync.c:42
#2  0x000056193905ba6b in RGFlushInterface() () at rgutils.cc:68
#3  0x000056193906a73e in RGMainWindow::buildInterface()
(this=this@entry=0x561939e645b0)
at rgmainwindow.cc:973
#4  0x000056193906cb68 in RGMainWindow::RGMainWindow(RPackageLister*,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >) (this=0x561939e645b0, packLister=0x56193a103550,
name="") at rgmainwindow.cc:815
#5  0x00005619390467c2 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at gsynaptic.cc:462

The reason is the explicit call to XSync. If I remove that, it works
natively under Wayland. But only as non-root, as pkexec doesn't work on
Wayland.

Cheers, Roderich

Reply via email to