[fpc-pascal] Re: linux: should we hard-code versioned or unversioned shared libraries in our apps?

Graeme Geldenhuys graemeg.lists at gmail.com
Thu Aug 16 09:32:18 CEST 2012


On 16 August 2012 04:31, Marco van de Voort <marcov at stack.nl> wrote:
> It's not a FPC problem, it is a linux problem that apps are not
> crossdistribution distributable.

My applications ARE all cross-dirstro capable. And they are damn good
at running on new and old distros. eg: I have compiled an fpGUI app 6
months ago on Ubuntu 10.04 (32-bit), and ran that app without problems
on a 10 year old distro (SUSE 9.0). That should be good enough for
most don't you think. Also says a lot about your "fear" regarding
Linux library API/Naming/Versioning changes.

> Creating a lot of drama if you see a
> minor discrepancy here 6 months after release won't benefit anyone.

Coming from someone that admitted that they don't release any
commercial FPC based applications and only work with Delphi in
commercial environment.... Excuse me if I take whatever you say with a
large pinch of salt.

> months ago, we'll just rehash this charade in 9 months for some other
> library where a new version came out or where naming changed.

Library naming seem to be the ONLY consistent thing here. From what I
have seen, and what Jonas mentioned, there are well established rules
for naming libraries and versioning. So it should be perfectly fine
and cross-distro compatible to look for libfbclient.so.2 - which has
been the latest Firebird major version for a few years now.

If Firebird 3.0 gets released, ibconnection.pp must be upgraded
anyway, then the searched library name could be updated at the same
time. There is no problem in this working.

> Because it is the _only_ fixed point in this whole mess. This sounds all
> very smart now, but once .2 will start changing you can explain people how
> to fix everything so that designtime components keep working. (and

Once again very vague. What do you mean by changing.... a new v3
Firebird release? In that case libfbclient.so could just as easily
point to the .3 library, and any applications which only support 2.x
firebird might not work. As Michael stated, unlike other database
vendors, Firebird is pretty good at keeping backward/forwards API
compatibility, so in theory the v2.x firebird apps should work, but
one never knows when it comes to major version number changes. Minor
version number changes is a whole different game.

Anyway, why bother arguing with someone that doesn't distribute FPC
based apps at all. FPC might only be a hobby to you, but for others it
is there bread and butter. We need to support apps as best we can, and
with that make them run as easily as possible on all supported
platforms. This is what I am trying to do here.

Anyway, Michael van Canneyt seems to have agreed with my suggestion
(if I understood his email correctly) of adding '.2' to the Linux-only
library name.  Michael is a lot more involved in FPC database work
than you.

  - Graeme -

fpGUI - a cross-platform Free Pascal GUI toolkit

More information about the fpc-pascal mailing list