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

Plugin versioning?



It seems we're growing an increasing number of ports that put part
of their functionality into "plugins", modules that one way or the
other eventually get loaded by dlopen().

Invariably these plugins are named ".so".

Basically, these modules are very similar to shared libraries.
Now, shared libraries are versioned, e.g. .so.1.0.  There was a
developer discussion some time ago where it was decided that such
modules should be versioned as well.  I did this for audio/libao.

Most of our ports with plugins currently don't version their modules.
We need to do something there and handle this consistently, either
way.

Not versioning modules means that we can't install two different
versions in parallel.  It also means that if there's been an
interface change and an old module still hangs around and is loaded
by a new app, things will break.  Just how likely is this scenario?

Versioning modules is a pain in the sphincter.  Apart from patching
the Makefiles, the code that does the loading needs to be fixed.
And since version schemes vary among unices, and I don't know of
a way to interface this with libtool, the resulting patches aren't
portable and can't be submitted back.

Discuss.

-- 
Christian "naddy" Weisgerber                          naddy_(_at_)_mips_(_dot_)_inka_(_dot_)_de



Visit your host, monkey.org