[Bug 273237] devel/dbus: /var/local/lib/dbus/machine-id not created

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 12 Sep 2023 01:08:06 UTC

Jan Beich <jbeich@FreeBSD.org> changed:

           What    |Removed                     |Added
         Resolution|---                         |FIXED
             Status|New                         |Closed
              Flags|maintainer-feedback?(deskto |
                   |p@FreeBSD.org)              |

--- Comment #6 from Jan Beich <jbeich@FreeBSD.org> ---
Because this is a duplicate of bug 257977 (port desync with upstream) that
accidentally got reverted. I didn't notice when testing inside jail due to
passing through X11/Wayland/DBus/etc sockets.

DBus launches 2 daemons one as root for "system bus" (e.g., used for battery
status) and one as regular/current user for "session bus" (e.g., used for
desktop notifications). The former is handled by rc.d and the latter is
auto-launched by client library (glib in this case). However, auto-launch
support is fragile and not used on Linux which supports user services managed
by systemd-logind or dinit+turnstile. Until FreeBSD improves rc.d or login(1)
one can start session bus via shell startup e.g.,

  $ cat /etc/profile.d/dbus.sh
  # WARNING: zsh only reads /etc/zprofile, so make sure to "source"
  # XDG_RUNTIME_DIR is preferred but usually requires pam_xdg or consolekit2
(pam_ck_connector or ck_launch_session)
  if [ -n "$XDG_RUNTIME_DIR" ]; then
        if ! pgrep -qf -U ${USER:-$(id -u)} dbus.\*--session; then
            dbus-daemon --session --fork --address=unix:runtime=yes 2>/dev/null
        # Only necessary for some apps that fail to find default session bus
(e.g., Emacs, Chrome)
        # https://gitlab.freedesktop.org/dbus/dbus/-/commit/e3f117e7610b
        export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
        eval $(dbus-launch --sh-syntax --exit-with-session 2>/dev/null)

You are receiving this mail because:
You are the assignee for the bug.