Hi Kenneth,

I will certainly pull everything I did...after some cleanup here.

For example, the toolchain version is probably not what it should be. Can you point me to some explanation on how I should version it? It's better to commit the file with the correct version name.

The easyblock for Qt tests on libQtCore to be present. However, in Qt 5, this will be libQt5Core. What is the way to go then? Delete the test from the qt easyblock, or make a new block and directory for qt5 (i.e. treat it as another program, rather than another version)?

Let's try to set up a skype next week? My skype is bart.verleye.

Cheers,
Bart

On 02/10/13 10:40, Kenneth Hoste wrote:
Hi Bart,

On 01 Oct 2013, at 22:48, Fotis Georgatos wrote:

Hi Bart,

On Oct 1, 2013, at 10:31 PM, Bart Verleye wrote:
I have installed a new toolchain, gmpolf-3.0.4.
We would *love* to see a pull request being created for this, i.e. the new 
toolchain definition to the easybuild-framework repo, the easyconfig files for 
the actual toolchain version to the easybuild-easyconfigs repo.

Are you up for that?

The version number looks a bit odd to me, but I can't really tell since I have 
no view on the versions of the toolchain elements.

And, I have to admit, the way we version toolchains is very ad 
hoc/unclear/undocumented, so I'm not blaming you. ;-)


Now I want to install Paraview, which depends on quite a few other packages.
To save a few keystrokes, you can find pre-calculated templates for many
of the common building blocks over here (shameless rip from pkgsrc's Makefiles):
https://github.com/fgeorgatos/easybuild.experimental/tree/master/contrib/pkgsrc/20130506
(sorry to the rest for being repetitive, but you know how convenient this can 
be...)

Paraview is new, i.e. we don't have support for that yet.
So, if you end up getting it to work, again, please submit a pull request to 
include that support in the next EasyBuild release,
to avoid that others lose time on the same problems you're solving (which is 
what EasyBuild is all about, cooperation!).


During the installation, I came up with following comments:

- --try-toolchain is not recursive. Is that 'not yet', or is there a reason 
behind that?
"Not yet", there is an open issue somewhere about it, AFAIK.
It's "not yet", indeed. I agree this is a very desirable feature, but there's 
also a 'but'.

First, let me try and explain why it's not there yet... Although you would 
expect this to be a feature that can be easily implemented, it in fact requires 
quite a bit of work.
I started working on it once, and ended up spending a couple of hours on it, 
without a decent result (i.e., a huge ugly patch, and it didn't even work yet).
It seems that the current codebase doesn't easily allow to support this, but it 
has been a while since I looked at it, so maybe I should just look into this 
again...
We have an open issue for this, see 
https://github.com/hpcugent/easybuild-framework/issues/450.

The 'but' is that --try-X is best effort, and is pretty likely to fail 
(depending on how different the toolchain you're 'trying' is from the current 
one).
The implementation of this is pretty messy, or to use someone else's words "a 
steaming pile of crap" (he's right).

So, I fully agree with you that this would be very useful, but it's less easy 
than it may seem at first.
Anyway, I'll try and revisit this soon. Do leave a comment in issue #450 to 
indicate you really want to see this work.


- --try-toolchain produces a eb file, but does not copy it to the lib directory 
at the end. Perhaps that could be added?
It's a bugture (contraption of bug-feature): manual work is expected.
In principle that requires heavy editing and is considered more of a template.
Are you expecting the easyconfig file to be added to the currently installed 
easybuild-easyconfigs package?
That's a bit weird, since you're then modifying an installed part of EB, which 
has a particular version (which then no longer makes sense as reference point, 
by consequence).

Actually, what we'd want you to do, is submit a pull request for the 
easyconfig(s) you obtained this way (if the build worked for you).
That way, it will be included in the next version of EasyBuild, and other 
people can use them without needing to resort to --try-X.

As Fotis already mentioned, the automagically tweaked easyconfig file(s) still 
need to be reviewed by a human (even if it worked) before they can be merged 
in...

We're thinking about allowing people to configure EasyBuild such that pull 
requests are generated automagically whenever a build is successful
and if the easyconfig file that was used is not available yet in our repos, but 
that's also a bit scary... ;-)


- in one of my attemps, at the end of an installation, this error came up:
(should only have 'files' and 'dirs' keys, values should be lists (at least one 
non-empty)).
This could be checked before compilation as part of the eb-file sanity check.
IMHO, the error-level should then be non-zero; I believe then the right thing 
will happen, no?
Bart is right here, we could/should capture a problem like that a lot earlier, 
instead of performing the whole build procedure first, and then complain that 
the sanity check spec is not what we want it to be...

Point taken: https://github.com/hpcugent/easybuild-framework/issues/703


During the installation of Qt, some "Project Messages" pop up, and the waiting 
time during the configuration is sometimes large. As a result, eb stops and prints:
[...]
However, this message is not an error, and if I configure myself, without eb, 
the whole process runs through. How can I avoid eb from stopping on these 
messages?
Either the output has a keyword that makes EasyBuild tick (and requires tuning),
or the error-level is incorrect or, there is a bug (eh, or all of the above :).
Which case are we talking about here?
The configure script for Qt is an interactive script (eek!), i.e. it asks 
questions and expects answers, see 
https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/q/qt.py
 .

EasyBuild easily confuses messages that show up as the last line of output for 
a while for questions, and then fails when it can't figure out an answer to 
that 'question'.
Hence, EB needs to be told which 'long-hanging' messages are *not* questions, 
via a list of regex patterns (see the no_qa part in the Qt easyblock).

It seems that the current list of no_qa patterns in insufficient on your end, 
for some reason (maybe slower systems, whatever).

Can you try and adjust the Qt easyblock such that these project messages are 
ignored by extending the no_qa list?
If you get that to work, please open a PR to get that fix included.
If not, let us know, and we'll help you out.

The waiting time during configuration is large for Qt, I remember that from our 
installations. E.g., in our production build, the configure step took about 7 
minutes.
Are you saying the configuration is a lot faster if you run it manually 
(outside of EasyBuild)? Because that would surprise me, and would definitely 
point to a bug/problem.


regards,

Kenneth

PS: It seems like you guys are really picking up on EasyBuild, great!
If you think it's useful to have a conf call of some sort to quickly discuss a 
couple of things that are not entirely clear to you, please shout, it could be 
a huge time saver...
I'm sure we can find a time that works well on both ends of the wire...


--
Centre for e-Research
Level G, Room 409-G21
24 SYMONDS ST
Auckland 1010
New Zealand
+64 (0) 9 923 9740 ext 89740

Reply via email to