]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
bus: Don't create /run/dbus/containers if the feature is disabled
authorSimon McVittie <smcv@collabora.com>
Mon, 18 Nov 2024 18:53:23 +0000 (18:53 +0000)
committerSimon McVittie <smcv@collabora.com>
Mon, 18 Nov 2024 19:00:26 +0000 (19:00 +0000)
The `Containers1` interface is not stable or production-ready, and is
compile-time-optional behind a build option, which in fact currently
cannot be enabled (it intentionally provokes a compiler `#error` if
enabled). If it isn't enabled, this directory won't be useful, so
there's no reason to create it.

As discussed in <https://github.com/systemd/mkosi/issues/3189>, if we
use the `@DBUS_USER@` here, it makes `tmpfiles.d/dbus.conf` dependent
on having created the `@DBUS_USER@` via `sysusers.d` or some
appropriate distro-specific mechanism. This is problematic in distros
that split up the functionality of dbus into several layers, such as
Debian: the `@DBUS_USER@` conceptually belongs to the same layer as
the well-known system bus, but `/etc/machine-id` and
`/var/lib/dbus/machine-id` are also used by the well-known session bus,
which is orthogonal to the system bus; so we want `dbus.conf` to be in a
lower layer than the `@DBUS_USER@`.

Signed-off-by: Simon McVittie <smcv@collabora.com>
bus/tmpfiles.d/dbus-containers.conf.in [new file with mode: 0644]
bus/tmpfiles.d/dbus.conf.in
bus/tmpfiles.d/meson.build

diff --git a/bus/tmpfiles.d/dbus-containers.conf.in b/bus/tmpfiles.d/dbus-containers.conf.in
new file mode 100644 (file)
index 0000000..4bf1b02
--- /dev/null
@@ -0,0 +1,5 @@
+# Fields: type; path; mode; uid; gid; age; argument (symlink target)
+
+# Create ${runstatedir}/dbus/containers owned by the system bus user.
+# org.freedesktop.DBus.Containers1 uses this to create sockets.
+d @EXPANDED_RUNSTATEDIR@/dbus/containers 0755 @DBUS_USER@ - - -
index aaaa9e027e6c1c354e85b35e5464ce7397b63f57..0ec7de041bd34ff600426bf577f62ec2d4d43738 100644 (file)
@@ -7,7 +7,3 @@ d @EXPANDED_LOCALSTATEDIR@/lib/dbus 0755 - - -
 # Make ${localstatedir}/lib/dbus/machine-id a symlink to /etc/machine-id
 # if it does not already exist
 L @EXPANDED_LOCALSTATEDIR@/lib/dbus/machine-id - - - - /etc/machine-id
-
-# Create ${runstatedir}/dbus/containers owned by the system bus user.
-# org.freedesktop.DBus.Containers1 uses this to create sockets.
-d @EXPANDED_RUNSTATEDIR@/dbus/containers 0755 @DBUS_USER@ - - -
index f866879ce6fb48ae5915dffeb25b61d70887a1cf..91dd13f3cd2f84d2ca61026e23307f3c8583a2a1 100644 (file)
@@ -25,3 +25,12 @@ configure_file(
     configuration: data_config,
     install_dir: get_option('prefix') / 'lib' / 'tmpfiles.d',
 )
+
+if get_option('containers')
+  configure_file(
+      input: 'dbus-containers.conf.in',
+      output: 'dbus-containers.conf',
+      configuration: data_config,
+      install_dir: get_option('prefix') / 'lib' / 'tmpfiles.d',
+  )
+endif