On Fri, Apr 12, 2024 at 02:27:46PM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > This has been in the works for a long time but I'm finally ready to share it > with the world. This introduces the DBus API definition and its implementation > in the form of a GPIO manager daemon and a companion command-line client as > well as GLib bindings to libgpiod which form the base on which the former are > built. > > Please note that while the functionality is complete, the dbus part still > requires some work (bug fixing, corner-cases, general ironing out of all the > wrinkles, a lot of code could be refactored too). This is why the series is > marked as RFC/RFT. I want to get it out for reviews and first tests before I > leave for EOSS and later on vacation. I am aware of some instabilities so don't > be surprised by an occasional segfault. > > While I split the GLib and DBus code into several commits for easier review, > I intend to apply all changes to bindings/glib/ and dbus/ as two big commits > in the end as otherwise the split commits are not buildable until all of them > are applied. > > The main point of interest is the DBus interface definition XML at > dbus/lib/io.gpiod1.xml as it is what defines the actual DBus API. Everything > else can be considered as implementation details as it's easier to change > later than the API that's supposed to be stable once released. > > The first two patches expose the test infrastructure we use for the core > library and tools to the GLib bindings and dbus code. Next we add the GLib > bindings themselves. Not much to discuss here, they cover the entire libgpiod > API but wrap it in GObject abstractions and plug into the GLib event loop. > > Finally we add the DBus code that's split into the daemon and command-line > client. I added some examples to the README and documented the behavior in > the help text of the programs as well as documented the interface file with > XML comments that gdbus-codegen can parse and use to generate docbook output. > > For DBus, most of the testing happens in the command-line client bash tests. > It has a very good coverage of the daemon's code and also allows to run the > daemon through valgrind and verify there are no memory leaks and invalid > accesses. I still intend to extend the C test-suite for DBus with some corner > cases but didn't not have enough time for it. I might have time to briefly look at this code, but I can't test right away as I have no setup that uses D-Bus, all what I use is a simplest Buildroot + Busybox. -- With Best Regards, Andy Shevchenko