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

Re: Plugin API/ABI versions



On Saturday 02 June 2007 14:58, Ben Hutchings wrote:
> On Fri, 2007-06-01 at 18:03 +0200, Magnus Holmgren wrote:
> > Many applications allow their functionality to be extended by means of
> > plugins, often in the form of libraries that the application dlopen()s.
> > Usually the application provides an API, and like other APIs these APIs
> > (and ABIs) can evolve, calling for versioned dependencies. But
> > executables aren't shared libraries, so there are no SONAME/NEEDED tags
> > (typically, AFAIK, the API headers define some version constants that the
> > application queries the plugin for to detect incompatibilities) and using
> > dpkg-shlibdeps doesn't work. So how should the -dev package provide
> > correct dependency information in these cases?
>
> <nip>
>
> The ion3 package provides "ion3-api-" + an API identifier, and
> separately-packaged modules depend on this.  The API identifier is in
> one of the headers in the -dev package.

This works, but either plugin packages become locked to a particular API 
version, or the application package will have to Provide virtual packages 
representing API versions it's compatible with. Perhaps that's not a big 
problem unless the API changes very quickly.

-- 
Magnus Holmgren        holmgren@lysator.liu.se
                       (No Cc of list mail needed, thanks)

Attachment: pgp052MjnP3IB.pgp
Description: PGP signature


Reply to: