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

Re: Not depending on shlibs because of plugins?

Christoph Berg <myon@debian.org> wrote:
> I'm packaging a database wrapper library (http://oss.devit.com/yada/).
> Its purpose is to provide one single API to a program and let the user
> configure if the database used is actually postgres/mysql/sqlite. The
> actual interfacing with the databases is done by .so plugins that are
> dlopened at run time.

> Currently my package will depend on all of the database libs:

> | Depends: [...], libmysqlclient15off (>= 5.0.24-2), libpq4 (>= 8.1.4), libsqlite3-0 (>= 3.3.8)

> This kind of defeats the purpose of the package, the program(mer) uses
> this library in order not to pull in any (or even all) specific
> databases.

> Is it in this case ok if I replace ',' by '|' there? 

(And dpkg-shlibdeps actually generates the dependency.)

I think an | *would* be ok but it is very hard to generate it well
using dpkg-shlibdeps. You might end up with these additional shlibs
for plugins:
pluginA: foo | bar, blah
pluginB: fasel

Which does not seem to be properly translateable into a valid single 
fasel|(foo | bar, blah) Depends relation[1].

You could move the plugin's additional dependencies into Recommends,
using "dpkg-shlibdeps -vRecommends" but as the program would not work
without any plugin packaging them separately indeed seems to be the
sanest way.
cu andreas

[1] fasel|foo|bar, fasel| blah does not work since it allows
installing blah with fasel instead of either foo or bar. ;-)
The 'Galactic Cleaning' policy undertaken by Emperor Zhark is a personal
vision of the emperor's, and its inclusion in this work does not constitute
tacit approval by the author or the publisher for any such projects,
howsoever undertaken.                                (c) Jasper Ffforde

Reply to: