Subject: Re: bug#19237: Guile-2.0.11 OS X 10.10.1 build error

From: Hans Aberg <[email-masked]>
Date: Fri, 5 Dec 2014 10:28:58 +0100

> On 5 Dec 2014, at 00:47, Mark H Weaver <[email-masked]> wrote:
> 
> Hans Aberg <[email-masked]> writes:
> 
>>> On 4 Dec 2014, at 18:23, Ludovic Courtès <[email-masked]> wrote:
>>> 
>>> Hans Aberg <[email-masked]> skribis:
>>> 
>>>>> On 3 Dec 2014, at 23:21, Ludovic Courtès <[email-masked]> wrote:
>>>>> 
>>>>> Could it be because Guile is being compiled against libeditline instead
>>>>> of GNU Readline?
>>>>> 
>>>>> Readline support in Guile requires GNU Readline.
>>>> 
>>>> It looked as though that the readline in the Guile distribution is too
>>>> old - no other readline installed on the system.
>>> 
>>> Actually there’s no Readline in Guile itself, just the guile-readline
>>> bindings.
>> 
>> I think the binding problem was that what Guile expected to be in one
>> file, readline now has in several.
> 
> Can you explain this more clearly?  What do you think Guile expects to
> be in one file that "readline now has in several"?  Also, how did you
> reach this conclusion, given that GNU Readline apparently wasn't
> installed when the build failed?

My impression was that Guile had some compatibility header in case readline isn’t installed. The missing names referred to several files, whereas in Guile, there was only one.

> FWIW, we regularly build the latest Guile with the latest Readline in
> GNU Guix, and haven't run into this problem.

On OS X, readline isn’t installed by default, which probably was the reason. The same with pkg-config:

I have one in /opt/ from MacPorts, but packages in /usr/local/ may not read it. It may be that case with GC. So one has to install pkg-config in /usr/local/. Then another problem is that the MacPorts installer patches ~/.profile, add /opt first in the searchpath. So one has to remember setting that correct, too.

The Guile INSTALL mentions pkg-config, but only after GC, though it must be installed before it, and does not say where to get it. It is a recursive package, so one has to get around that.