Problem with X11 version of GnuCash on MacOSX

Geert Janssens janssens-geert at
Sun Oct 20 04:40:15 EDT 2013

On Saturday 19 October 2013 21:24:16 Mike Alexander wrote:
> On Oct 19, 2013, at 3:59 PM, John Ralls <jralls at> wrote:
> > If you mean you did
> > 
> > -     echo
> > "XDG_DATA_DIRS=$(prefix)/share:{XDG_DATA_DIRS}:/usr/local/share/:/u
> > sr/share/" >> $@.tmp; \ +     echo
> > "XDG_DATA_DIRS=$(prefix)/share:${XDG_DATA_DIRS}:/usr/local/share/:/
> > usr/share/" >> $@.tmp; \
> > 
> > then I think that's right and what Geert meant to do in the first
> > place.
> Not quite.  I changed it so it takes either the run time or compile
> time value, preferring the run time value:
> +	echo
> "XDG_DATA_DIRS=$(prefix)/share:{XDG_DATA_DIRS}:$(XDG_DATA_DIRS):/usr/
> local/share/:/usr/share/" >> $@.tmp; \

> > is munged, then parsed in gnucash-bin.c. I don't
> > think that the separators are passed as-is to the OS.
> Right.  Actually it uses the GLib key-value file parser to parse the
> file and this requires semicolon delimiters between values.  I
> changed the value for XDG_DATA_DIRS to use ";" instead of ":".  I
> also changed environment_override in gnucash-bin.c to skip null
> values in path lists so a missing XDG_DATA_DIRS won't clutter up the
> list.
> I'll check these changes in later when I'm sure they work.
>               Mike


It seems odd to me that you would need to insert the compile time value 
of XDG_DATA_DIRS. Is it only set at compile time for you or does your 
runtime environment have a different value for XDG_DATA_DIRS than your 
compile time environment ?

I also wonder if the change of ";" to ":" alone would not have fixed 
this issue. This was clearly a bug, which I would expect to only have 
influence if XDG_DATA_DIRS is actually set in the runtime environment.

(I haven't tested any of this, I'm not at my development machine)


More information about the gnucash-devel mailing list