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

Re: How to determine the filename for dlopen()



Am 2017-11-26 15:26, schrieb wferi@niif.hu:
At least I can't see any other
way to express alternative groups of library dependencies like ((libnss
and libnspr) or libssl), which would be needed for crypto plugins.

Well, if a software wants to support alternatives, then the following
would work quite well:

 - Software has an internal abstraction layer for these libraries.
   (It will need that anyway.)
 - Any integration with any of these libraries is done in plugins
   for that specific software (which are dlopen()d). The plugins
   themselves expose only the abstraction layer, but are in turn
   linked against the actual libraries.

Since the internal plugin interface between the software and the
various plugins for different libraries is something that the
authors of the software themselves control, there's never going
to be an issue there, you upgrade them in lock-step and everything
just works.

And since the plugin libraries themselves are directly linked
against the actual libraries, automatic dependency generation will
just work, as well as symbol versioning.

In Debian packaging you'd ideally want to separate out each
alternative into their own package, so that the main package doesn't
need to depend on all alternatives.

Regards,
Christian


Reply to: