summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2022-07-15 17:10:57 +0100
committerSimon McVittie <smcv@collabora.com>2022-10-11 17:14:11 +0100
commitcc0544cd36919adffa7d16df2297c9c2805be3d2 (patch)
treea5206346bb1e79710c0bc865ac1de0f4d68aa0ca /doc
parent91fe77904acf01b9845c52affdaf49e7b0d2fff7 (diff)
downloaddbus-cc0544cd36919adffa7d16df2297c9c2805be3d2.tar.gz
spec: Mention that the system bus address might actually be in /run
The interoperable address is unix:path=/var/run/dbus/system_bus_socket. However, in most (perhaps all) current Linux distributions, /var/run is guaranteed to be a symbolic link to /run, and using the path in /run has some advantages (particularly if automounters are used). Implementations that intend to be interoperable are not required to listen on exactly /var/run/dbus/system_bus_socket, as long as clients that connect to that socket will work correctly. Similarly, clients are not required to connect to exactly /var/run/dbus/system_bus_socket, as long as the overall system (consisting of the client and the OSs that it supports) ensures that it ends up connecting to the same well-known system bus that is available at /var/run/dbus/system_bus_socket. Because of the Unix conventions for how software installs into a prefix, building a D-Bus implementation with its default build-time configuration options will not necessarily result in an interoperable system bus. The system bus is normally shipped by OS distributors, who should ensure that they have configured it in a way that is interoperable. Resolves: https://gitlab.freedesktop.org/dbus/dbus/-/issues/180 Signed-off-by: Simon McVittie <smcv@collabora.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/dbus-specification.xml28
1 files changed, 21 insertions, 7 deletions
diff --git a/doc/dbus-specification.xml b/doc/dbus-specification.xml
index 9b02f5cd..3b0f4cab 100644
--- a/doc/dbus-specification.xml
+++ b/doc/dbus-specification.xml
@@ -5783,13 +5783,27 @@
variable. If that variable is not set, applications should try
to connect to the well-known address
<literal>unix:path=/var/run/dbus/system_bus_socket</literal>.
- <footnote>
- <para>
- The D-Bus reference implementation actually honors the
- <literal>$(localstatedir)</literal> configure option
- for this address, on both client and server side.
- </para>
- </footnote>
+ Implementations of the well-known system bus should listen on
+ an address that will result in that connection being successful.
+ </para>
+ <para>
+ On systems where <filename>/var/run/</filename> is known to be
+ synonymous with <filename>/run/</filename> (such as most Linux
+ operating system distributions), implementations might prefer
+ to make use of that knowledge to connect to or listen on
+ <literal>unix:path=/run/dbus/system_bus_socket</literal> instead,
+ which has some minor technical advantages, particularly during
+ early startup and late shutdown.
+ </para>
+ <para>
+ In practice, implementations of D-Bus often have build-time
+ configuration options for the system bus address, whose defaults
+ often depend on other build-time options such as the installation
+ prefix (in particular, this is the case for dbus, the reference
+ implementation of D-Bus).
+ Distributors intending to provide access to the well-known
+ system bus should verify that they are using an interoperable
+ address.
</para>
<para>
On Unix systems, the system bus should default to searching