Hi,

a workmate of me and I have started to work on the creation of a SDBC
driver for LibreOffice (LibO) based in Firebird. In the long run, the
intention is to replace the default HSQLDB driver in LibO.

This is our first experience with Firebird, although I used the old
Interbase versions from Delphi and C++ Builder, but that was a long long
time ago, through Borland's APIs and in a Windows environment.

Right now, our main development environment is Linux. We will face the
other platforms once we have something working.

Therefore, we would appreciate guidance in this task. I'm writing some
doubts/problems that we are facing currently.

 * FB2.5 vs FB3:
   * Implementation of the SDBC driver in LibO will take time. We have
read that FB3 release should be soon. There is actually already an
"Alpha 1" version so we are wondering which version we should be using
in our development. Having an estimation of the FB3 stable release would
be helpful.
   * We understand that FB3 will be backward compatible in its API with
FB2.5 but that it will also bring a new C++ API. LibO is written vastly
in C++ and having an OO API would be very handy for our development.
Here we have several options and we would need advice to chose the best
approach:
     - Use the plain C API, knowing that it will be fully compatible
with FB2.5 or FB3.
     - Use an external C++ API, like IBPP. IBPP is a tested and quite
old wrapper over FB's C API but we wonder how well maintained it is as
latest stable release is from 2007. We understand that, although usable,
it would be better to have something that will have a brighter future.
In addition, this adds another external dependency to LibO.
      - Use the new internal C++ API. I assume this leaves us only with
the option of going for FB3. Maybe would it be possible to isolate and
compile the new C++ API against FB2.5 too?
   * Firebird embedded: LibO needs to use the embedded version of FB for
its planned SDBC driver. fbembed is available in FB2.5. However,
compiling FB3 in Linux doesn't generate the library nor we have found
any "configure" switch for it. In addition, we have not been able to
find it in FB3 nightly builds for Windows nor for Linux. Has fbembed
been dropped? Is there any important change that has been done not to
have it any more of is it that it can be generated/used in some other
way?

 * ICU: FB brings its own version of the ICU library embedded. Fedora
and Debian projects compile their FB packages against their system's
libicu. However, both distributions provide warning notices saying that
incompatibilities can happen in the usage of the generated databases
indexes among FB servers which use different versions of the ICU
library. Is this correct? Can we assume, then, that for keeping a broad
compatibility in different compilations and versions of LibO we will
have to compile FB and its bundled libicu always internally and not to
use a possible version existing in the system?

 * MacOS support: while we see that FB packages are available for
Windows and Linux, we also have noticed that the releases of MacOS
binaries doesn't happen that often. Actually, there are no MacOS nightly
builds for FB3. We are worried that this could mean that MacOS
compilation could be problematic. LibO targets several platforms
including MacOS so help on MacOS compilation would be welcomed. We would
also be sure that it won't be a problem in the future.

* Lack of up to date development documentation, specially for fbembed:
one of the biggest problems that we are facing is that the freely
available documentation for developers is scarce and quite old.
Specifically, there is not much documentation in relation with fbembed
on Linux. In this link:
http://www.firebirdsql.org/manual/ufb-cs-embedded.html#ufb-cs-embedded-linux

It is said:
"
...
Finally, you can't just ship libfbembed.so with your application and use
it to connect to local databases. Under Linux, you always need a
properly installed server, be it Classic or Super.
"

We understand this was needed due to the usage of "fb_lock_mgr". We have
seen that the lock manager binary was dropped in later FB versions and,
at least, it is not needed in FB2.5. Therefore, we understand that
currently fbembed is a true embedded server also for Linux/MacOS and
there is no need of a local server installation any more. Is this
correct?

In addition, following all the documentation we have found so far about
"fbembed" usage, we see that other files have to be shipped with the
library:
 * libfbembed.so
 * libib_util.so
 * libicudata.so
 * libicui18n.so
 * libicuuc.so
 * firebird.conf
 * firebird.msg
 * intl/fbintl
 * intl/fbintl.conf
 * udf/fbudf.so

Is this correct? All these files have to be shipped? Are there
differences among Windows, Linux and MacOS?

---

Apologies for the lenght of the mail. Also, if this is not the correct
mailing list/forum in which to ask these questions. We will be happy if
anyone can address us to the proper place, then.

Thanks in advance for your help.

Br.
-- 
Andres Gomez
Computer Science Engineer
mailto:ago...@igalia.com
http://blogs.igalia.com/agomez/category/igaliacom/
IGALIA, S.L. http://www.igalia.com


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to