package/dbus-broker: new package
dbus-broker is an alternate implementation of a dbus daemon. It can be
used as a drop-in replacement for the system bus daemon, as well as the
session bus daemon.
dbus-broker is (basically, and as far as we're concerned in Buildroot)
split in two components:
- the actual message bus daemon, that relays messages across clients
- a launcher, which is responsible for setting various aspects of the
bus, like setting the policy et al. and opening the socket(s) the
message bus daemon will have to listen on...
The launcher can only be used in a systemd setup (it makes heavy use of
systemd facilities), while the message bus is generic. However, the
message bus daemon is useless without a launcher. There does not exist a
non-systemd launcher, which makes dbus-broker actually a systemd-only
package; this can be revisited when/if a non-systemd launcher appears.
Note, however, that libdbus is not provided by dbus-broker. People who
want to use dbus-broker as the bus daemon, and need libdbus, will have
to enable both.
If only original dbus is enabled, things stay as they are now. This is
for the moment still the default, though we should change that once
dbus-broker has proven to work.
If only dbus-broker is enabled, it installs the necessary socket
activation units and dbus configuration files. The daemon is not
launched at boot time; instead it is socket-activated when a client
connects to the bus the first time.
If both original dbus and dbus-broker are enabled, we have a conflict
with the configuration files, the socket activation file. Also, original
dbus activates the daemon as a service in multi-user.target.wants, so it
is not socket-activated and dbus-broker would never get the opportunity
to start.
Therefore, original dbus is updated to remove the conflicting files and
the activation of dbus-daemon. Since dbus-broker installs some of the
same file that original dbus removes, we have to add a dependency to
make sure that the ones installed by dbus-broker aren't removed.
If both are installed, it is still possible to revert back to using
original dbus as system bus:
- at build-time: by calling systemctl enable/disable from a
post-build script (preferred), or by providing drop-in units
or presets in an overlay (less preferred) or custom skeleton
(as a last resort),
- at runtime (on a RW filesystem): by calling systemctl
enable/disable
Note about the user: the path to the system bus socket is a so-called
"well-known location": it is expected to be there, by spec. Moving it
elsewhere is going to break existing programs. So, the user running the
system bus daemon must be able to create that socket.
As we may have two packages providing a system bus daemon, they have to
be both able to create the socket, and thus must both be able to write
in the directory containing the socket. And since they can be switched
at runtime, they must be running as the same user.
We can't just reference the original dbus user, so we duplicate the
entry. What is important, is that the user be named 'dbus', as that's
what we use in both cases.
If both original dbus and dbus-broker are selected, the dbus user is
included twice, but the specifications are identical so that's fine.
mkusers will create the user only once.
Finally, the licensing terms are pretty trivial for dbus-broker itself,
but it makes use of third-party code that it inherits as git submodules
(that are bundled in the release archive). Thus the licensing is a bit
convoluted... The third-party codes claim to be licensed as "Apache-2.0
and LGP-2.1+" in their AUTHORS files, but at the same time claim
"**Apache-2.0** OR **LGPL-2.1-or-later**" in their README files. The
individual source files (that are used) do not seem to have any
licensing header to clarify the situation. So we represent the situation
with "Apache-2.0 and/or LGPL-2.1+".
Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr:
- don't select systemd; depend on it instead
- only install config files and systemd units without original dbus
- install a user to run the message bus as
- fix licensing info
- entirely reword and extend the commit log
- add myself to DEVELOPERS as well
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
[Arnout:
- Use dbus-broker as system bus if both are selected.
- Remove conflicting files from dbus installation.
- Simplify symbolic link creation.
- Add comment to remind update of session.conf and system.conf.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-01-09 23:16:47 +01:00
|
|
|
# Locally calculated
|
|
|
|
sha256 4eca425db52b7ab1027153e93fea9b3f11759db9e93ffbf88759b73ddfb8026a dbus-broker-29.tar.xz
|
|
|
|
sha256 3cda3630283eda0eab825abe5ac84d191248c6b3fe1c232a118124959b96c6a4 LICENSE
|
2022-08-27 09:38:16 +02:00
|
|
|
sha256 70a742f7a88831ad6e7b94bc27058939af182b59578ac829e928094319764442 subprojects/c-dvar/AUTHORS
|
|
|
|
sha256 f37eb9b23d99d56070b41d98d211eb9156776717ea332d4895d7cc6d68440cf4 subprojects/c-dvar/README.md
|
|
|
|
sha256 17a927565c92aa664a010f2146d539f5df46e38d98030dea607554df7b9e4ad5 subprojects/c-ini/AUTHORS
|
|
|
|
sha256 46b75a7e0e2a6cd233f4066bbbf4ee0dee862c040d4d8431bd77aab4c1e1b16b subprojects/c-ini/README.md
|
|
|
|
sha256 0e7d0f64caa88761647ba5ee21e9b173b5fe3210a6eda67ff00a86eb230f6a42 subprojects/c-list/AUTHORS
|
|
|
|
sha256 0dd74d40d3994b0c7441b0cd9725fd39bcedc75f9ca7cb4320202572817c64a5 subprojects/c-list/README.md
|
|
|
|
sha256 469aa63261a1b92487777989e449f1552f1bdc7df7804955e9652eb47ca7bbbf subprojects/c-rbtree/AUTHORS
|
|
|
|
sha256 fa140044c88f8a6ca0cf554273a4b84a8e1905e7e0a517835b32f2b4882afb92 subprojects/c-rbtree/README.md
|
|
|
|
sha256 17a927565c92aa664a010f2146d539f5df46e38d98030dea607554df7b9e4ad5 subprojects/c-shquote/AUTHORS
|
|
|
|
sha256 769b71ceb1c4dee816eeb701627d2893299a6c5c090dadddba1ef678e7e28901 subprojects/c-shquote/README.md
|
|
|
|
sha256 9c9c40e94ff58884564fbae0cefd9af0eb2c270d5f25f4666560b89c8cb584a8 subprojects/c-stdaux/AUTHORS
|
|
|
|
sha256 481e73f260f6fa1073b7bb91f8f7b46b89dd7e6caa9d0922a5c2ed2dd41d65a0 subprojects/c-stdaux/README.md
|
|
|
|
sha256 36438bc0796d76828e104d2766e28effe8c6a1a14f90440a2223b1a2fab6c69a subprojects/c-utf8/AUTHORS
|
|
|
|
sha256 f195e6943366a0b0014b65920a5becb7ed64f0a589b7d55ddb7489a0e5893364 subprojects/c-utf8/README.md
|