I can't find working libdbi version

Christoph Holtermann c.holtermann at gmx.de
Tue Jan 25 11:18:51 EST 2011

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 ))
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 ?


Christoph Holtermann

More information about the gnucash-user mailing list