Hi,
http://www.scintilla.org/ 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)
or - package MySQL Workbench with the bundled scintilla
(the simple solution, but against good pratices)
Thanks for your comment on this. Remi.
Hi,
On Wednesday, 01 July 2009 at 07:30, Remi Collet wrote:
Hi,
[...]
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)
or
- package MySQL Workbench with the bundled scintilla
(the simple solution, but against good pratices)
3. Ask upstream to add an option to build a shared lib. You can also make it easier for them by sending a patch.
While there's no official ABI versioning, use something like libscintilla-VERSION.so.0 for SONAME to ensure ABI version changes with scintilla version (if necessary). You probably know how to track ABI changes.
Regards, R.
2009/7/1 Remi Collet Fedora@famillecollet.com:
Hi,
http://www.scintilla.org/ 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)
or - package MySQL Workbench with the bundled scintilla
(the simple solution, but against good pratices)
Thanks for your comment on this. Remi.
Geany is another such application.
On 07/06/2009 10:41 AM, Jonathan Underwood wrote:
2009/7/1 Remi Collet Fedora@famillecollet.com:
Hi,
http://www.scintilla.org/ 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.
or - 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.
-Toshio
2009/7/6 Toshio Kuratomi a.badger@gmail.com:
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.
Yeah, fully agreed. There's some resistance upstream though, eg.
http://sourceforge.net/tracker/index.php?func=detail&aid=2488121&gro...
packaging@lists.fedoraproject.org