FS#62308 - [dbus-broker] Please build with -Dsystem-console-users=gdm to fix issues with GDM

Attached to Project: Arch Linux
Opened by Gunnar Bretthauer (Taijian) - Thursday, 11 April 2019, 11:17 GMT
Last edited by Jan Alexander Steffens (heftig) - Friday, 17 January 2020, 13:22 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

According to an upstream issue report, dbus-broker currently has issues with initializing bluetooth devices while at the GDM login screen. Upstream suggests fixing this by passing an additional option at build time, namely '-D system-console-users=gdm'. I have tried this locally and can confirm that the issue seems fixed for me.

Additional info:
* package version(s): 20-1
* config and/or log files etc.
* link to upstream bug report: https://github.com/bus1/dbus-broker/issues/199

Steps to reproduce:
This task depends upon

Closed by  Jan Alexander Steffens (heftig)
Friday, 17 January 2020, 13:22 GMT
Reason for closing:  Fixed
Additional comments about closing:  dbus-broker 21-2
Comment by loqs (loqs) - Thursday, 11 April 2019, 11:26 GMT Comment by Fabian (Tids) - Thursday, 11 April 2019, 11:27 GMT
This also fixed BT on GDM for me.
Comment by David Rheinsberg (dvdhrm) - Thursday, 11 April 2019, 11:34 GMT
Background information is this:

To evaluate whether a given UID is considered `at-console`, a runtime-query to logind is required. This would mean every dbus-transaction is blocked on a runtime-query to logind, which would slow it down by an order of magnitude. Hence, what dbus-daemon does is to cache the result of said query when a client connects. This, however, has the downside that the property is no longer meaningful, since runtime changes to the at-console property are no longer reflected in the bus policy.

With dbus-broker we decided to not implement this broken logic. Instead, every user ID higher than SYSTEMUIDMAX (defined by systemd, and usually evaluates to `999`) is considered `at-console`. The `system-console-users` meson-configuration-option allows to provide further UIDs that should be considered `at-console`.

In Fedora, `-Dsystem-console-users=gdm` is used, since `gdm` is the recommended greeter. I recommend doing the same in ArchLinux, and possibly extending this list with further UIDs of other greeters.

Note that it is safe to list non-existant user-names in the option. The names are resolved at dbus-broker startup, and only if there actually is a configuration that uses `at-console` policies.

Lastly, we are working with upstream packages to stop using `at-console`. The BlueZ master-branch already merged out patch and the next BlueZ release will include this change. To my knowledge, BlueZ is the last non-nieche distro package that used `at-console`. That is, with BlueZ updated I would even argue the `system-console-user=gdm` argument is no longer necessary, even though it is technically correct.

Long story short: Acked-by: me
Comment by Jan Alexander Steffens (heftig) - Friday, 17 January 2020, 13:08 GMT
bluez contains the change mentioned by loqs.

Loading...