Re: External "so" module.



At 11.09.2011 06:40, Pierre-Louis Bonicoli wrote:
On 10/09/2011 14:41, Hans Breuer wrote:
[...]
Using libdia as SDK (or building Dia plug-ins outside of the tree) is
not supported. The libdia API/ABI is not considered stable. It is not
prepared for side-by-side installation. And for advanced plug-ins you
even need access to app/ provided functionality.

Of course there might be out of tree plug-ins I do not know of.
Hi,

What features/functionality are missing to Dia in order to support
external plug-ins ?
First of all there should be a convincing use case, i.e. a common goal.
Also when thinking of an external API I'm expecting some notion of API/ABI stability. One use case I have in mind is making available the Dia bindings [1], [2], [3] to not only allow writing a Dia plug-in, but also use core Dia functionality without Dia.

There is already a macro "DIA_PLUGIN_CHECK_INIT" used by plugins:
increasing "DIA_PLUGIN_API_VERSION" when API is modified isn't sufficient ?
IMO libdia including some 'public' headers would needs to be installed properly. And the libdia.so would need versioning, maybe including the DIA_PLUGIN_API_VERSION. For all the headers in lib/ there would need to be the decision if they should be installed, i.e. become part of the public API. Aftrewards these need to be reflected with the configure mechanism. (The necessary messing with autoconf is usually what stops me in going further.)

Should some functionality provided by app/ moved in lib/ ?

Probably, e.g. it should be possible to update the diagram's display without using functions from app/. Of course the range of the necessary API depends on the functionality external plug-ins want to provide.

HTH,
        Hans

[1] http://mail.gnome.org/archives/dia-list/2007-March/msg00092.html
[2] http://hans.breuer.org/dia/bindings/index.html
[3] http://git.gnome.org/browse/dia/tree/bindings

-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to
get along without it.                -- Dilbert



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