Thanks folks for all the help. --strip-componets=1 helped with the tar, but I think it is done by default.
What turned out to be the root cause of my problem was that the .tgz I created the first time had one extra level of directory, and it was cached by EB in some tmp directory. Even after I placed a new tgz as defined in source_urls, EB did not copy the new file to its build cache. After manually deleting it things worked as expected. Is there a way to force a copy of the .tgz? would "cleanupoldbuild" remove the cache and thus always get a new .tgz? Maybe I should file a bug on this issue? Much thanks again! Tin On Wed, Sep 30, 2015 at 11:51 PM, Kenneth Hoste <[email protected]> wrote: > 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/>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 > > > > > >

