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...