Hi Tin,
On 01/10/15 02:32, tin h wrote:
Hello EasyBuild gurus,
Because of the workflow at my work, I am trying to install a program
using PackedBinary.
eb fails, as it complains that the sanity check files i told it to
look for isn't there. And it is not there because it created an extra
"version"directory underneath of where I expected it.
I was thinking of using install_cmd and running the tar myself, since
i wanted to preserve owners anyway. but I am not sure of what
variables i could use, where can I find such list and their description?
I am open to other suggestions :)
I think this is what you're looking for:
$ eb -a | grep unpack_options
unpack_options Extra options for unpacking source
[default: ""]
That is, use something like:
unpack_options = '--strip-components=1'
Alternatively, you can specify the full extract command together with
the source file:
sources = [('topspin.%(version)s.tgz', "tar xfzp
--strip-components=1")]
To figure out which easyconfig parameters you can set when using a
particular easyblock, you can use "eb -a -e PackedBinary", for example.
We're working on better documentation for the generic easyblocks
(generated from the easyblocks themselves, so we can easily keep it
up-to-date).
regards,
Kenneth
Much thanks in advance!
Tin
Here is my script:
easyblock = 'PackedBinary'
name = "topspin"
version = "3.5pl2"
description = """Topspin NMR software (data processing option only)"""
homepage = 'http://bruker.com/'
toolchain = {'name': 'dummy', 'version': 'dummy'}
source_urls = ['file:///usr/prog/drop/topspin']
sources = ['topspin.%s.tgz' % version]
# for help, see eb -a -e Binary
#install_cmd = "tar xfzp" ??
postinstallcmds = [ 'touch TesT.txt', 'mkdir prog/curdir/tin']
sanity_check_paths = {
'files': ['topspin', 'cmca', 'pathScript'],
'dirs': [],
}
modextrapaths = {
'LM_LICENSE_FILE': '/prog/topspin/3.5pl2/license.dat',
'PATH': '/prog/topspin/3.5pl2',
}
modextravars = {
'TOPSPIN_HOME': '/prog/topspin/3.5pl2',
}
and here is the error message:
> eb topspin/topspin-3.5pl2.eb
== temporary log file in case of crash
/var/tmp/adm_hoti1/easybuild/tmp/easybuild-5Jm4k0/easybuild-dgyzcE.log
== resolving dependencies ...
== processing EasyBuild easyconfig
/admhome/adm_hoti1/svn/easybuild2015a/scicomp_blocks/easybuild/easyconfigs/topspin/topspin-3.5pl2.eb
== building and installing topspin/3.5pl2...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== packaging...
== postprocessing...
== sanity checking...
== FAILED: Installation ended unsuccessfully (build directory:
/var/tmp/adm_hoti1/easybuild/build/topspin/3.5pl2/dummy-dummy): build
failed (first 300 chars): EasyBuild crashed with an error (at
easybuild/framework/easyblock.py:1612 in sanity_check_step): Sanity
check failed: no file of ('topspin',) in
/clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2, no file of
('cmca',) in /clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2, no
file of ('pathScri
== Results of the build can be found in the log file
/clscratch/adm_hoti1/easybuild/tmp/easybuild-topspin-3.5pl2-20151001.013727.KKUTJ.log
ERROR: EasyBuild crashed with an error (at easybuild/main.py:112 in
build_and_install_software): Build of
/admhome/adm_hoti1/svn/easybuild2015a/scicomp_blocks/easybuild/easyconfigs/topspin/topspin-3.5pl2.eb
failed (err: "build failed (first 300 chars): EasyBuild crashed with
an error (at easybuild/framework/easyblock.py:1612 in
sanity_check_step): Sanity check failed: no file of ('topspin',) in
/clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2, no file of
('cmca',) in /clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2, no
file of ('pathScri")
EasyBuild placed the files one level too deep:
> ls -l
/clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2/3.5pl2/topspin*
-rwxr-xr-x 1 adm_hoti1 adm_hoti1 10602 Apr 24 01:56
/clscratch/adm_hoti1/easybuild/usrProg/topspin/3.5pl2/*3.5pl2*/topspin