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

Reply via email to