[fpc-devel] SqlDB + Firebird application doesn't run on new Ubuntu installation
Graeme Geldenhuys
graeme at mastermaths.co.za
Fri Nov 27 11:44:36 CET 2009
OK, below is one example of a patch, but there are alternative methods
too, hence I am first posting here in the mailing list before I
officially put something in Mantis.
In the example below (which does work) I simply test for the newest
major version first, then un-versioned, then backward compatibility library.
----------------------------------------
diff --git a/packages/ibase/src/ibase60.inc b/packages/ibase/src/ibase60.inc
index 5bc668d..54e2ab3 100644
--- a/packages/ibase/src/ibase60.inc
+++ b/packages/ibase/src/ibase60.inc
@@ -2647,8 +2647,9 @@ begin
end
else
begin
- If (TryInitialiseIBase60(fbclib)=0) and
- (TryInitialiseIBase60(gdslib)=0) then
+ If (TryInitialiseIBase60(fbclib+'.2')=0) and // major versioned
+ (TryInitialiseIBase60(fbclib)=0) and // un-versioned
+ (TryInitialiseIBase60(gdslib)=0) then // backward
compatibility
Raise EInOutError.CreateFmt(SErrDefaultsFailed,[gdslib,fbclib]);
end;
Result := RefCount;
----------------------------------------
What I don't like about the patch above, is the 'and' statement.
Wouldn't it be better (optimised) to do the following:
if not v2 found then // libfbclient.so.2
if not unversioned found then // libfbclient.so
if not gds found then // libgds.so
raise Exception.Create(...)
That way it will stop at the first if that found a valid library. Yet
another alternative to the above if statement, is to test for the
unversioned library first - this should make Joost happy & non-Ubuntu
installs. That way DB developers could simply adjust the unversioned
library symlink (libfbclient.so) and FPC would automatically load the
developers desired version of the library. I think this is the best
option so far. eg:
if not unversioned found then // libfbclient.so
if not v2 found then // libfbclient.so.2
if not gds found then // libgds.so
raise Exception.Create(...)
Your thoughts?
Regards,
- Graeme -
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/
More information about the fpc-devel
mailing list