libgsf, goffice and gnucash

Josh Sled jsled at asynchronous.org
Sat Nov 19 22:11:01 EST 2005


For a while, we've been using a "fake" version of goffice, copied into
the gnucash source tree.  Before I had said I was basically going to
leave it in place for the next release, but there are plenty of good
reasons to do so.

In any case, there's a bunch of constraints on this problem:

* <=libgsf-1.12.1 and >=libgsf-1.12.2 are API-incompatible.

* Very few targetable distros have libgsf >=1.12.2; almost none have
libgoffice-0.0.4.

* RHEL4/FC3 have glib/gtk 2.4, and pango 1.6; the requirements for
libgsf and goffice are glib/gtk 2.6 and pango 1.8.

As such, I've decided on the following:

- Gnucash will include both libgsf-1.12.3 and goffice-0.0.4.

- If the system has >=goffice-0.0.4, then it will be used, otherwise the
gnucash-provided goffice will be compiled.  In building that, if if the
system has >=libgsf-1.12.3, then it will be used, otherwise the
gnucash-provided copy will be compiled and used.

- Both libgsf-1.12.3 and goffice-0.0.4 will be modified to build under
glib/gtk-2.4 and pango-1.6 if necessary.

As such, gnucash will depend on a real copy of goffice, either
system-provided or gnucash-provided.

I've made the necessary changes on the
svn+ssh://svn.gnucash.org/repo/gnucash/branches/goffice-update branch.
I would appreciate some testing, especially from you Neil.  One thing to
note is that this version initializes (external) goffice correctly and
thus will display graphs; if you use the `Sample Graphs` report you
should see 4 graphs (pie, scatter, bar and stacked-bar).  I'd also love
some testing on OSX, as I have no idea about that scene.

I'm still working to get some of the configure.in changes integrated
correctly; for instance right now it conditionally executes the relevent
configure.in sections copied from the respective builds, but always
creates their `config.h` equivalents as well as generates all their
Makefiles.  The latter isn't much of a problem, but the former means
that '-I$(top_srcdir)/lib/goffice-0.0.4' is present while compiling the
whole gnucash source tree, even when the external version is being used,
which isn't right.  Any pointers on how to do this would be appreciated.

...jsled
-- 
http://asynchronous.org/ - `a=jsled; b=asynchronous.org; echo ${a}@${b}`



More information about the gnucash-devel mailing list