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