Hi Kenneth,

>So, it seems like somehow telling Python to also link with "-lncurses" 
>should resolve the issue.

How can I do this? Just mentioning ncurses in the dependencies seems not to be 
enough.

I tried Pablo's approach using the RPMs and it solves the issue in Python, but 
not in IPython. I would prefer to solve this within easybuild, but it's too 
puzzling. 

The IPython build fails, with a similar error message:

== 2014-03-13 14:16:30,691 main.run INFO parse_log_for_error msg: Command used: 
iptest
== 2014-03-13 14:16:30,692 main.run INFO parse_log_for_error (some may be 
harmless) regExp (?<![(,-]|\w)(?:error|segmentation 
fault|failed)(?![(,-]|\.?\w) found:
ERROR: Test we're not loading modules on startup that we shouldn't.
ValueError: Running file '/tmp/easybuild-9LI3g5/tmpvba19N.py' produced error: 
'WARNING: Readline services not available or not loaded.\nWARNING: The 
auto-indent feature requires the readline library\n'

Did anybody get IPython working with readline?

Best regards,
Olaf

-----Ursprüngliche Nachricht-----
Von: [email protected] [mailto:[email protected]] 
Im Auftrag von Kenneth Hoste
Gesendet: Donnerstag, 13. März 2014 11:03
An: [email protected]
Betreff: Re: [easybuild] Python and readline


On 13/03/14 10:54, Fotis Georgatos wrote:
> Hello *,
>
> On Mar 13, 2014, at 9:34 AM, Kenneth Hoste wrote:
>>      *** WARNING: renaming "readline" since importing it failed: 
>> /path/to/software/libreadline/6.2-goolf-1.4.10/lib/libreadline.so.6: 
>> undefined symbol: PC
> hey, that rings a bell:
> * ncurses is an -optional- dependency of libreadline;
>    and when not explicitly declared the above message appears.
>
> I have noticed at least two round of discussions over the last 12 months as 
> regards the matter;
> fi. last summer's EB-provided libreadline builds are supposed to have the dep 
> defined (July 2013);
> *plenty* of software sits atop libreadline so that has far-reaching (and 
> build-silent) effects;
> In fact, this is a prime example why having *buildsets* to fight sw temporal 
> divergence is a MUST.
>
> I hope others can confirm that the above is on-topic hint.
I've been looking into this a bit more, and it's indeed ncurses who's to 
blame.

It's even worse... As far as I can tell, libreadline never links to 
ncurses itself, even though the libreadline.so|a libraries use symbols 
provided by ncurses.

The idea is that users are left free to chose whether they use ncurses 
or termcap to provide the symbols.

Result: if you don't link with "-lreadline -lncurses", and e.g. use 
"-lreadline", you can run into problems like this.
So, it seems like somehow telling Python to also link with "-lncurses" 
should resolve the issue.

Now, what really puzzles me is:

1) Why does this problem only occur with Python 2.7.5 and 2.7.6? Python 
2.7.3 seems to be fine...

2) Why didn't we notice this earlier? :(


regards,

Kenneth

Reply via email to