Hi all,
It has been a while I worked on my Jami bot. I decided to revisit it this morning. My previous bot project uses the DBus interface provided by jamid to send/receive messages. However, seems after Arch decided to switch from jami-gnome to jami-qt. The jamid disappeared form the jami-daemon package. And launching jami-qt does not make cx.ring.Ring available on my session bus/system bus.
How can I access the DBus API now? Is it deprecated?
dbuscpp is heavily deprecated (not maintained for nearly 10 years) and it doesn’t build on gcc 12
We may re-introduce a package like jami-dbus for jami.net (but we do not maintain packages for Arch Linux) but one other way would be to build jami from sources with ENABLE_LIBWRAP=False to use the dbus API by default (I think Arch has a way to build a package from sources (git packages)).
I was planning for a similar scenario as the original poster:
headless jamid
one or more bots/gateway services, etc. running 24/7
DBus up to now would have been the “natural” choice as an interface for this scenario.
I found the architectural decision to split communication logic and UI logic pretty nice. The most convincing reasons being high flexibility for UIs and being forced to adhere to a formal interface.
The focus on QT today may have shifted your priorities from the process interface to the UI, however IMHO it would be nice to leave the door open either for implementation of UIs running w/o QT, or at least for a headless mode with a plugin interface. The potential of plugins is then restricted by the available plugin interface.
An available interface opens the distributed infrastructure of jami to become a platform for all kinds of (automated) services, which may help with expanding its influence.
For my usage scenario, I am unsure whether to proceed with Jami or with another solution after what I have read here.
DBus is exactly done for this and is still available for this (jamid in the package is still controlable via dbus and you can plug it to any script/client e.g. jami-cli GitHub - AmarOk1412/jami-cli: Jami client for terminal or even jami-qt if built with dbus).
And this dbus interface is not planned to be changed and will stay
I see there’s a patch to fix GCC12 build in jami-daemon .I52d4fee70c9fdcc38c964301d56f89fa23188e9a, Does that mean this is a packaging issue now?
Also I think I can port the dbus code into using the C++ wrapper of sdbus. Given there’s enough demand for this. I love the idea of Jami and is sad that my bot doesn’t work anymore.