Build dependencies (was: Re: Request: require glib2 >= 2.12)

John Ralls jralls at ceridwen.us
Tue Mar 2 20:11:17 EST 2010


On Mar 2, 2010, at 1:25 PM, Christian Stimming wrote:

> Am Sonntag, 21. Februar 2010 schrieb John Ralls:
>> Gnucash trunk won't build with Guile 1.8.7 (the current release):
>>> Making all in engine
>>> chmod u+x ./iso-currencies-to-c
>>> GUILE_LOAD_PATH=../../lib/: srcdir=. ./iso-currencies-to-c
>>> ERROR: Loaded gnucash srfi-2.scm in unknown Guile version:1.8.7.
>>> If you're running a Guile newer than 1.4, then this file should
>>> not have been installed.  Please report the bug.
>> 
>> The problem is in src/engine/iso-currencies-to-c, which is a scheme file
>> whose first line is: (use-modules (srfi srfi-2))
>> 
>> Removing that line (so that srfi-2 isn't invoked) causes the following
>> error: ERROR: Unbound variable: and-let*
> 
> I've modified the file so that srfi-2 isn't needed anymore. Hope this helps.

Well, that was more a symptom than the cause in this case. The problem was multipart: First, that the srfis provided by Gnucash are hoary antiques (as indicated by the error message above); second, that the section in configure that tests for them is rather all-or-nothing, so if it fails on any, it will cause guile to retrieve ours before getting the ones it provides; and third, (fixing of which solved the problem for me) guile-1.8 creates a loadable module for srfi-1 and uses lt_dlopen to load it. It turns out that lt_dlopen on OSX needs its own path variable, LTDL_LIBRARY_PATH. Once I set that, guile's srfi-1 was detected along with the rest, our srfis weren't put on the path, and all was well.

I think that the best solution is to just get rid of the srfi test and lib/srfi -- but someone needs to make sure that the srfis that come with guile-1.6.0 (the minimum allowed by configure) are good enough.

Regards,
John Ralls



More information about the gnucash-devel mailing list