Closed DidierSpaier closed 1 year ago
dbus-broker-launch
currently requires systemd for service activation. That is, it calls the PID1 APIs to spawn transient units which run activated dbus services (it also uses non-transient units, if specified). There might be some more niche API calls, but the service-activation is the biggest one by far. This means, you need to provide an API similar to the PID1-API of systemd (or "manager API").
We explicitly separated the launcher from dbus-broker
to provide a pure bus implementation and allow for integration into different systems / setups. The broker itself has no interaction with the outside but is a pure message broker. The provided launcher grants compatibility to dbus-daemon by parsing the same configuration and service files, and it activates services by using systemd.
My recommended approach to avoid systemd would be to copy the launcher code and replace the service activation with a simple fork+exec model. This should be straightforward to do.
My recommended approach to avoid systemd would be to copy the launcher code and replace the service activation with a simple fork+exec model. This should be straightforward to do.
Thanks for your answer David. Straightforward to do, maybe... For a developer, unfortunately this is "above my pay grade" as they say in the US. I am not bad at shell scripting but just know a tiny little of Python and my knowledge of C is non-existent, so I would need to find a volunteer to do that.
As an aside I have tried kmscon several years ago to be able to properly display Japanese or Persian in the text installer of a previous version of Slint. Eventually I used fbterm instead but since then got back to a Linux console as some of our users need braille during installation and associated software need discrete characters, not images, as input.
Hello,
I maintain the Slint distribution based on Slackware and our init system is not systemd. However I would like to included dbus-broker and am looking for the path of least resistance (read: as less changes and added maintenance work as possible).
I have considered two ways:
To explore the second way I have stolen (just repackaged, not built from source) systemd-libs and bits of a systemd packages (version 250 to be compatible with our version of glibc if that matters) from Arch and been able to make a (built from source) dbus-broker package for Slint, including the launcher. However, starting dbus-broker-launch invariably leads to this error message:
No listener socket inherited
, most probably because I didn't package some necessary parts of systemd (googling this message didn't help). This leads to this question:What are the minimum files and/or features of systemd needed to make dbus-broker-launch work?
If the answer is "the whole systemd" this second way is a dead end for me as I can't afford to replace our init system by another one and maintain it, let alone write a launcher myself.
Cheers, Didier