On 07/06/2009 10:41 AM, Jonathan Underwood wrote:
2009/7/1 Remi Collet <Fedora(a)famillecollet.com>:
is a free source code editing component.
> Upstream provides only a makefile for a static library.
> Of course, it's quite easy to create a shared library, but without
> versionning as upstream doesn't handle this.
> At least scite (in fedora repo) use this library, but probably other
> projects (I have no way to detect this).
> I'm working in MySQL Workbench, which also use it (and some other
> bundled libraries, as curl, boost, ..., more easy to remove)
> What sould I do ?
> - package scintilla as a shared lib
> (this will imply rebuilding all applications on scintilla update and
> probably issue with applications using different version)
Talk to scintilla upstream about this. If they're amenable to shipping
shared libraries in the future, this is the best thing to do. We can
make it more attractive by offering to write the patches to enable
building shared libraries if it helps (If scintilla uses
autoconf/automake/libtool, this shouldn't be too hard to write). If
they do not want to ship shared libraries then the scintilla maintainer
needs to decide whether to ship shared libraries or just static.
> - package MySQL Workbench with the bundled scintilla
> (the simple solution, but against good pratices)
Don't do this. If you must, build scintilla as static libraries in its
own package. Then follow the Guidelines related to static libraries for
linking MySQL Workbench against it. The Guidelines for static linking
were designed to make it as easy as possible for packages consuming
static libraries to watch for problems in the libraries and do rebuilds
whenever that occurred. Bundling, OTOH, makes it easy for applications
to carry old versions of buggy libraries around for a long time.
Geany is another such application.
Yeap, having to track the problems with a single library in multiple
applications is one of the reasons not to bundle even if we just build
it as a static library.