On Wed, 2015-01-28 at 20:59 +0100, Lennart Poettering wrote:
On Tue, 13.01.15 10:43, Cosimo Cecchi (cosimoc gnome org) wrote:Hi all, I was wondering if there's any reason we typically don't install on the system DBus XML interface files for services. On my system, I can see a bunch of definitions in /usr/share/dbus-1/interfaces, but it's by no means a complete list of all the services in the system.Well, systemd at least used to install them, but we don't do this anymore, since there's really no clear consumer of it. Also, it's not clear how precisely to put them there. Most projects that put the files their, put a full descriptition of an object node there, which might have multiple interfaces. So you end up encoding multiple interfaces in a single file. But now, if you have 8 different interfaces, and use them in different combinations, what would you even place on disk? each interface only once? or every possible combination of interfaces (which would be highly redundant? We eventually decided to remove all this from systemd since this also created issues with cross-platform builds, since the introspection was created dynamically, and thus required built code to be executed to get them...
True, but not a problem in the (common?) case that the module installing an introspection XML file is actually generating its code from that file, rather than generating the file from its code.
I think it's probably a better idea to pull out the stuff from running daemons.
Since Cosimo’s goal here is using gdbus-codegen to generate code using those interfaces, I don’t think it makes sense to pull the introspection XML from processes which would have to be running at build time.
Or, if you really want to keep the dir, then at least standaridze what should be in it, how the files are named, and such. AMong other things that means that it really should only include <interface>, but no <node> elements, if you follow what i mean...
Sounds better to me. Philip
Attachment:
signature.asc
Description: This is a digitally signed message part