-
Notifications
You must be signed in to change notification settings - Fork 342
Conversation
Wow thanks! I don't have much time this week, so testing will sadly have to wait till sunday. |
1a65535
to
37d7933
Compare
ConsoleKit2 can be used on FreeBSD and systemd-free Linux distributions like Alpine.
37d7933
to
6d5d51c
Compare
I'm not personally willing to maintain this libdbus code. |
I don't see the need for any maintenance at all though… libdbus API is not going to change ever. |
That's not how it works. When we merge something, it means we officially support it. It means users can (and will) report bugs and it means contributors can send patches. The rest of wlroots can change too: the way threads/signals are handled now in the ConsoleKit2 session could break because of this, and the session interface can change too. This patch is 879 lines of code we'll need to maintain. I don't want to have ConsoleKit2 as a second-class citizen in wlroots, nor do I want to commit to fix it when we'll find bugs in it. |
Emersion has extracted sd-bus into a standalone library: https://github.com/emersion/basu I recommend basing this on sd-bus and shipping basu on BSD. |
There's discussion about this in emersion/mako#92 basu needs to strip down more things, and it's still coming from systemd so it's still using some Linux-specific features. Alternatively, @sghctoma has been working on a sd-bus shim on top of libdbus. |
Aye, some work is still necessary in these areas. In either case, the final merge will look a lot different from this, so let's close it. |
By the way, it wouldn't bother me if ports wants to merge this patch downstream in the meanwhile. |
I haven't been able to test it yet, but we'll probably make use of this downstream indeed till there is an upstream solution. Everything better then setting a suid bit 😅 |
Fixes #1178.
@PureTryOut please test on Linux, I've only tested on FreeBSD.
This is similar to the logind backend, but connecting to the event loop is a bit more complicated (uses the method stolen from Weston). Plus, there's a couple lines to handle FreeBSD's "meaningless" major/minor numbers (since there's no persistent
DRM_MAJOR
to check against, I store themakedev()
number for the first DRM device and compare against that).