I can't find working libdbi version

John Ralls jralls at ceridwen.us
Tue Jan 25 11:54:57 EST 2011


On Jan 25, 2011, at 8:18 AM, Christoph Holtermann wrote:

> Hello !
> 
> The recent SVN Version got a test for libdbi versions with what gnucash doesn't
> work. I have been using this non-stable combination for quite a while with only
> few data loss ;-) I am now forced to change the libdbi which i have been trying
> for quite some time yesterday but i can't make that error message disappear.
> 
> I am using OpenSuSe 11.3 but before i used factory so my system may not be
> clean. I tried the rpms i could find but i didn't find any that made it through
> GnuCashs test and i was stuck with the error message.
> 
> My database is MySql. SVN is 20166.
> 
> Then i tried to compile libdbi and libdbi-devel myself. The current versions that
> could be downloaded didn't go through either. But trying this i also got stuck
> because GnuCash wasn't even able to parse the SQL. I guess that's because
> the libraries were not found.
> 
> Then i went to the developer versions of libdbi at cvs. Make check of libdbi-drivers
> doesn't get through, breaks with
> 
> make[3]: Entering directory `/usr/local/src/libdbi-drivers/tests'
> gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -I../tests/cgreen/include -I/usr/include -DDBDIR=\"/usr/var/lib/libdbi\" -DDBI_DRIVER_DIR=\"/usr/lib/dbd\" -g -MT test_dbi.o -MD -MP -MF .deps/test_dbi.Tpo -c -o test_dbi.o test_dbi.c
> test_dbi.c:46:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘dbi_instance’
> ...
> there come a lot of further errors.
> 
> When i make and install them though at least GnuCash parses SQL correctly, so it uses the
> libraries and i get through to this nice error message.
> I got some confusion because i tried to compile and install different versions of libdbi. I think
> i cleaned things up correctly though and when i use
> strace gnucash
> after searching different locations for libdbi like
> ...
> open("/usr/lib/sse2/libdbi.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat64("/usr/lib/sse2", 0xbf91a1b4) = -1 ENOENT (No such file or directory)
> open("/usr/lib/libdbi.so.1", O_RDONLY) = 5
> read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P:\0\0004\0\0\0"..., 512) = 512
> ...
> it reads the file /usr/lib/libdbi.so.1 which is a link to libdbi.so.1.1.0. And this should be the
> correct file for the cvs version.
> 
> It seems to me that i now use the most recent version of libdbi and libdbi-drivers and that doesn't
> make it through the test. I tried "make debug" for both. It didn't help.
> 
> By the way :
> 
> make check for GnuCash stops with the following :
> TEST: test-qof... (pid=19210)
> /qof/qofbook: OK
> /qof/qofinstance: **
> ERROR:test-qofinstance.c:55:test_book_readonly: assertion failed: (!qof_begin_edit( fixture->instance ))
> FAIL
> GTester: last random seed: R02S89f22d5b966baeb8f7ef6e1fb67c2a4d
> /bin/sh: Zeile 1: 19209 Beendet gtester --verbose test-qof
> make[5]: *** [test] Fehler 143
> 
> I don't know any further. Maybe someone can help ?

Oops. The failing test is my fault; I took out what it tests and forgot to remove the test. I'll fix that today.

In order to get libdbi to work, you have to edit configure and change the CFLAGS to not use -ffast-math or use "make debug" to build a debug library; the CFLAGS for debug don't include -ffast-math. Unfortunately, they wrote their configure to ignore CFLAGS passed in on the command line or in the environment.

Debian provides a prebuilt debug version (libdbi-debug). Perhaps Suse does too, and you could use that.

Regards,
John Ralls



More information about the gnucash-devel mailing list