Problem with X11 version of GnuCash on MacOSX

Geert Janssens janssens-geert at telenet.be
Wed Oct 23 04:08:17 EDT 2013


Mike,

I looks like my response sounded more negatively than I intended. I had a feeling there was 
something not quite right, but I have a hard time pointing it out properly.

Your solution isn't bad at all. I do consider MacPorts a different platform from OSX/Quarz just 
like I consider MingW and Cygwin on Windows different platforms. But I guess this doesn't 
matter.

You make a valid point that users may have reasons unknown to us to override the default 
XDG_DATA_DIRS. My doubt here is if GnuCash should cater for it, especially at compile time. We 
do already take runtime exceptions into consideration by wrapping the XDG_DATA_DIRS 
environment variable. That's what the X Free Desktop specification prescribes.

But again I'm only pointing at a subtle conceptual issue, which in itself can be ignored from now 
on. I can understand you don't want to set the environment variable in your runtime 
environment, nor wrap gnucash with a launcher script.

By thinking and talking about this, I found another issue with the current code: discoverability. 
To know you can override the data dir default at compile time, you will need to read the code. 
You can know this is possible only through a comment and the added variable in the makefile .

You already hinted at using a configure parameter. I think that's the proper fix and if done right 
can make the solution even more universal.

Suppose you create a configure parameter --with-default-xdg-data-dirs=....

If not explicitly set, the default value for this parameter could be "/usr/local/share;/usr/share". In 
the makefile, the hard-coded paths can be replaced with the configure time parameter.

So if the configure parameter is not set, the line that gets added to the environment file ends in 
"/usr/local/share;/usr/share". If you set the parameter to "/opt/local/share", the environment line 
will end in that.

What do you think of this ?

Geert

On Tuesday 22 October 2013 12:09:59 Mike Alexander wrote:
> --On October 22, 2013 11:26:33 AM +0200 Geert Janssens
> 
> <janssens-geert at telenet.be> wrote:
> > I have been pondering this for a while. I don't really like this fix
> > conceptually. It's MacPorts that deviates from the X Free Desktop
> > standard and I don't like it that this exception in one platform
> > only
> > results in changed code on all other platforms.
> > 
> > A better solution would be to detect the MacPorts platform at
> > configure  time, and set a proper conditional based on this, which
> > is
> > then used in  the makefile to do some MacPorts specific overrides.
> > That makes it  easier for other developers to understand as well
> > which particular  change is for that platform only.
> > 
> > But while thinking this alternative approach through, I concluded
> > that  it may even make the issue more complicated. So for now I have
> > chosen to  elaborate the comment in the makefile a bit to clarify
> > *why* the compile  time value of XDG_DATA_DIRS was added.
> 
> I didn't think I was putting in a special case for MacPorts.  Instead
> I thought of it as letting people configure a special value for the
> data directory search path for whatever reason.  If you would rather
> do it with a configure option that would be ok too (maybe better),
> but this seemed reasonable and easier.  Either way, it's essentially
> a configure option that lets you specify the directory search path. 
> Is that so unreasonable?  True, it's MacPorts that triggered the
> need, but it's not really specific to MacPorts.
> 
> Auto detecting MacPorts won't be easy since it can be installed
> anywhere.  I personally have two copies installed in different places.
> One is in the normal /opt/local directory while I also have another
> version installed elsewhere for testing.  You also need to think of
> other ways that these files might be installed in non standard
> locations.  Are you also going to put in special cases for Fink and
> Homebrew?  I happen to prefer MacPorts, but both of those have
> followers too (maybe not Fink, I haven't heard much about it
> recently, but certainly Homebrew does).  I don't know where they
> install this stuff.  Of course it's also possible for someone to
> install it by hand anywhere they want to.
> 
>         Mike



More information about the gnucash-devel mailing list