Hi Kenneth,
Op 6 okt. 2015, om 12:59 heeft Kenneth Hoste
<[email protected]<mailto:[email protected]>> het volgende geschreven:
Hi Franky,
On 06/10/15 11:16, Backeljauw Franky wrote:
Hello all,
We are trying to build spglib-1.7.4-intel-2015b.eb using “eb
—try-software-version=1.7.3 spglib-1.7.3-intel-2015b.eb”. The only change is
the version number, but when trying to build it fails with:
main.easyblock WARNING build failed (first 300 chars): Can't change to real
build directory /dev/shm/spglib/1.7.4/intel-2015b/spglib-1.7.4/spglib-1.7.4
This problem seems to be caused by filetools after the unpacking of the sources.
If we use version spglib-1.7.3, we get:
...
== 2015-10-06 10:39:15,294 main.filetools DEBUG Last dir list ['spglib-1.7.3',
'._spglib-1.7.3']
== 2015-10-06 10:39:15,294 main.filetools DEBUG Possible new dir
/dev/shm/spglib/1.7.3/intel-2015b found
...
But with spglib-1.7.4, we get:
...
== 2015-10-06 10:43:04,559 main.filetools DEBUG Possible new dir
/dev/shm/spglib/1.7.4/intel-2015b/spglib-1.7.4 found
...
The only noticable difference between the two tar-files is that
spglib-1.7.3.tar.gz also contains the file "./._spglib-1.7.3” which results in
different behavior of "main.filetools DEBUG Possible new dir”. If I remove this
file from the tarfile of spglib-1.7.3.tar.gz, I also get the same issue when
trying to build it with EasyBuild.
Any ideas how to recover from this issue?
After unpacking sources, EasyBuild checks if there's a single directory found.
If so, it uses that as the 'start directory', and moves into it after unpacking
(which is what you're seeing with 1.7.4).
If there are multiple directories (including hidden ones), EB doesn't pick a
start directory, and stays in the build directory (i.e. intel-2015b, in this
case).
You can tell EB what the start directory is however, using the 'start_dir'
easyconfig parameter.
This is specified for spglib v1.7.3, as follows:
start_dir = '%(name)s-%(version)s'
I overlooked this directive completely! :-(
But, since the auto-guessing of the start directory works for 1.7.4, this is no
longer needed (and wrong even).
So, just remove this line from the easyconfig file for 1.7.4 (and create a pull
request for it ;)).
Yep, pull request created.
This is one example where using --try-software-version doesn't work, which is
why it's called 'try’.
Apparently ;-)
Things may change for newer software versions...
I hope this clarifies what's going on.
Yep, got it!
— Thanks,
Franky