Building GnuCash on openSUSE 12.3
herbert.thoma at iis.fraunhofer.de
Thu Jul 18 11:25:51 EDT 2013
I got a new computer and installed a new OS, so I got a few new bugs ...
First of all, guile2 seems to be default in openSUSE 12.3 and guile 1.8
comes as a package guile1 and the binaries are named guile1 as well.
I uninstalled guile2 and made a couple of symlinks:
/usr/bin/guile -> guile1
/usr/bin/guile-config -> guile1-config
/usr/bin/guile-snarf -> guile1-snarf
/usr/bin/guile-tools -> guile1-tools
The symlinks got me past the basic guile checks of configure, but it
chokes on the guile www test:
checking for guile... /usr/bin/guile
checking for guile - 1.6.7 <= version < 99.99.99... yes: 1.8.8
checking for guile - 1.8.0 <= version < 99.99.99... yes: 1.8.8
checking for SLIB support... yes
checking if guile long_long is at least as big as gint64... yes
checking for scm_long_long2num in -lguile... yes
checking if unsigned long is at least as big as guint32... yes
checking if guile needs our copy of (guile www)... ./configure: line 21309: syntax error near unexpected token `gnc_have_guile_www,'
./configure: line 21309: `GUILE_MODULE_AVAILABLE(gnc_have_guile_www,(www main))'
I think this is an autoconf/automake problem and I have no clue what
to do about it other than commenting out the test in configure.ac.
Then it works. The versions of the tools are:
autoconf (GNU Autoconf) 2.69
automake (GNU automake) 1.12.1
gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
With these changes HEAD compiles. The 2.4 branch complains about
src/libqof/qof/md5.c. We just need to backport a fix that is
already in HEAD:
remove md5.c from libgnc_qof_la_SOURCES
# Must compile md5.c without strict aliasing, otherwise function md5_finish_ctx
# gets "dereferencing type-punned pointer will break strict-aliasing rules"
noinst_LTLIBRARIES = libmd5.la
libmd5_la_SOURCES = md5.c
libgnc_qof_la_LIBADD += libmd5.la
Both HEAD and 2.4 start up fine then. HEAD loads my data file and seems to work
fine. The 2.4 branch, however, crashes when I try to load a file with the following
gnucash: symbol lookup error: /usr/local/lib64/gnucash/libgncmod-engine.so: undefined symbol: qof_string_cache_insert
I suspect that may be I forgot something when fixing the md5.c compile error.
More information about the gnucash-devel