Re: Installing DBus interface files for services



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]