Bug#968643 sway: Package policykit seems to be required to use sway as advertised
Michael Tokarev
mjt at tls.msk.ru
Wed Jan 4 20:33:39 GMT 2023
[Reviving an old bugreport which were closed]
On Wed, 19 Aug 2020 01:58:27 +0200 Ben Fiedler <debian at services.bfiedler.ch> wrote:
> Package: sway
> Version: 1.5-2+b1
> Severity: important
>
> Dear Maintainer,
>
> when installing sway on a new machine it fails to launch as advertised
> ("just type sway into a tty and it will work"), instead displaying the
> following error message:
>
> 00:00:00.004 [ERROR] [backend/session/logind.c:218] Failed to activate session: Permission denied
> 00:00:00.004 [ERROR] [backend/session/direct-ipc.c:30] Do not have root privileges; cannot become DRM master
> 00:00:00.004 [ERROR] [backend/session/session.c:96] Failed to load session backend
> 00:00:00.004 [ERROR] [backend/backend.c:286] Failed to start a DRM session
> 00:00:00.004 [sway/server.c:49] Unable to create backend
>
> Similarily it seems that some loginctl commands are bricked as well,
> e.g. loginctl activate or loginctl lock-sessions.
>
> Installing policykit-1 resolves this issue.
The problem here is that sway, and actually any other gui environment
(weston, even startx/Xorg) needs access to hardware. It asks logind
for that, and logind uses polkitd for the task.
But polkit isn't required - neither for sway nor for logind.
For sway, dependency on polkitd is wrong. First it is because there
are other alternatives exist to provide this functionality (eg seatd).
And second because sway can be used within another wayland compositor
or with a virtual desktop (like an rdp server for remote access), it
is not limited to local hardware devices.
I think Sway should Recommend polkitd (instead of depending on it),
and maybe provide alternative (Recommands: polkitd | seatd).
But actually this is a more general question to systemd. I understand
that logind does provide (limited) functionality without polkitd just
fine. What's the solution for problems like this? Should other packages
pull in *logind* dependencies for it to provide extra functionality
needed for these other packages? It is like inter-inter-dependency.
Usually, when, say, library X uses some library Y, and library Z
wants to use X, Z does not add Depends: Y, it is the X's task to depend
on Y which *it* uses internally.
Why polkitd is just a Sugges'ion of systemd, instead of a recommendation?
There are many questions like this being asked.
Thanks,
/mjt
More information about the Pkg-systemd-maintainers
mailing list