Hi Kenneth, I downloaded and installed the easybuild at the pull request 370, but then I get: == temporary log file in case of crash /tmp/easybuild-eY4r_c/easybuild-0FU0Lc.log == resolving dependencies ... == processing EasyBuild easyconfig /gpfs01/home/bioadmn/eb20140322py/eb/Python-2.7.6-goolf-1.4.12-no-OFED.eb == ERROR: Failed to get application instance for Python (easyblock: None): EasyBuild crashed with an error (at easybuild/1.11.1_p370_bin/lib/python2.6/site-packages/easybuild/framework/easyblock.py:1990 in get_class): Failed to obtain class for None easyblock (not available?): name 'self' is not defined
I attached the log file. Did I get the wrong files from git? Olaf -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Kenneth Hoste Sent: Wednesday, March 19, 2014 6:14 PM To: [email protected] Subject: Re: AW: AW: [easybuild] Python and readline Hi Olaf, On 14/03/14 14:36, Olaf Walter wrote: > Thanks! I'll check this out next week and let you know. Did you get the chance to try the fixed easyblock available in https://github.com/hpcugent/easybuild-easyblocks/pull/370 ? We're holding off merging that PR until the fix is confirmed. regards, Kenneth > Have a nice weekend, > Olaf > > -----Ursprüngliche Nachricht----- > Von: [email protected] > [mailto:[email protected]] Im Auftrag von Kenneth Hoste > Gesendet: Donnerstag, 13. März 2014 22:36 > An: [email protected] > Betreff: Re: AW: [easybuild] Python and readline > > OK, I have this figured out now, and have a fix that resolves the > problem implemented in the Python easyblock. > See https://github.com/hpcugent/easybuild-easyblocks/pull/370 . > > > It boils down to having to specify both -lreadline and -lncurses, and > point Python to their respective non-standard locations. > > I also extend the list of sanity check commands for Python to include > "import readline", such that this doesn't pass by unnoticed again. > > I've rebuilt all existing Python easyconfigs with this adjusted > easyblock, works like a charm for all of them (so all builds now > properly have readline support). > > As soon as the PR is reviewed, I'll merge it in. Feel free to also test > it on your end and report back. > > > regards, > > Kenneth > > On 13/03/14 14:56, Kenneth Hoste wrote: >> Hi Olaf, >> >> On 13/03/14 14:50, Olaf Walter wrote: >>> 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'm working on a proper fix. >> >> Python automagically tries to link to libreadline as follows: >> >> checking how to link readline libs... -lreadline -lncursesw >> >> Right now, the libncurses built with EasyBuild doesn't provide >> libncursesw.so (or .a). >> >> I'm trying to see whether making sure that they are there fixes the >> problem. >> >> I'll let you know once I've figured things out, and we'll enhance the >> sanity checks included in the Python easyblock to capture this problem >> earlier. It's easy to check: if "import readline" doesn't work, stuff >> is broken... >> >> >> regards, >> >> Kenneth >> >> >>> 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
easybuild-0FU0Lc.log
Description: easybuild-0FU0Lc.log

