[fpc-devel] Firebird shared library name change

Desmond Coertzen patrolliekaptein at gmail.com
Mon Aug 24 15:04:20 CEST 2009

Hi Graeme

> It seems the SqlDB + Firebird code only looks for 'libgds.so' and
> 'libfbclient.so' giving the following error at runtime...

With my last production experience with Firebird, libgds.so was the stubs to
the old Interbase lib where Firebird derived from. libfbclient.so.x is
backwards compatible to these stubs. I guess in newer releases of firebird,
they are slowly but surely trying to get away from Interbase.

A firebird installation is supposed to provide symlinks for libfbclient.so
and libgds.so to load the correct lib for the release. In most cases, the
LD_LIBRARY_PATH environment variable is supposed to be set if you want your
so's to be located automatically. It's something you need to set up yourself
in most cases.

It would be nice though if fpc's api wrapper of libfbclient also allows you
to set an absolute path to the API

On Mon, Aug 24, 2009 at 11:02 AM, Graeme Geldenhuys <
graemeg at opensoft.homeip.net> wrote:

> Hi,
> I noticed that on newer Ubuntu Linux systems that the name of the
> Firebird shared library has changed for v2.x versions of Firebird
> Database Server.
> ----------------------------------
> $ ls -l /usr/lib/libfbcl*
> 2009-08-24 12:06 /usr/lib/libfbclient.so.2 -> libfbclient.so.2.1.1
> 2008-11-19 20:09 /usr/lib/libfbclient.so.2.1.1
> ----------------------------------
> It seems the SqlDB + Firebird code only looks for 'libgds.so' and
> 'libfbclient.so' giving the following error at runtime...
> Can not load default Firebird clients ("libgds.so" or "libfbclient.so").
> Check your installation.
> Is there a way we can better handle this for Firebird v2.x is SqlDB?
> After all, Firebird v2.x has been out for quite some time now.
> Or should be simply ignore this issue in SqlDB and make it the issue of
> the user? This option I do not like to much.
> If FBLib, this was handled by looking for newest to oldest versions of
> shared library. Loading was done in if..else statements.
> example
>    // try v2.x library first
>    if not successful loading of libfbclient.so.2 then
>       // else try v1.x library
>       if not successful loading of libfbclient.so.1 then
>         // else try basic library name - no versions
>         if not successful loading of libfbclient.so then
>            // now user has a real installation problem
> Regards,
>  - Graeme -
> --
> fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
> http://opensoft.homeip.net/fpgui/
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20090824/edb8a564/attachment.html>

More information about the fpc-devel mailing list