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

_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to