dbus: default to using tmpdir instead of launchd activation

This matches the default behavior on Linux. If D-Bus defaults to launchd
activation, all packages or tests using `dbus-run-session` will fail due
the launch agent not being installed and available.
This commit is contained in:
Randy Eckenrode 2026-01-19 19:38:26 -05:00
commit 171926f883
No known key found for this signature in database
GPG key ID: 64C1CD4EC2A600D9

View file

@ -129,6 +129,9 @@ stdenv.mkDerivation (finalAttrs: {
"-Dselinux=disabled"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# D-Bus defaults to launchd-activation on Darwin, but that requires the launch agent be installed. It also breaks
# anything that uses `dbus-run-session` in tests. Changing the default aligns Darwin with other UNIX platforms.
"-Ddbus_session_bus_listen_address=unix:tmpdir=/tmp"
# `launchctl` is only needed at runtime. Lie to `find_program` because it will always be present on a Darwin host.
"--cross-file=${writeText "darwin.ini" ''
[binaries]