Hi Cormac,

On 20 Dec 2013, at 20:09, Garvey, Cormac T wrote:

> 
> Hi All,
> Is there an easy way in Easybuild to copy an Application submission script to 
> the Application install bin.
> I have been modifying easyconfig and easyblock files to accomplish this, it 
> would be nice if easybuild
> has this built in functionality (i.e Just set for example run_script = 
> sub_app in a easyconfig file and "sub_app"
> will be copied to the install bin)

One way of doing this is via the 'patches' list. Next to actual patch files, 
you can specify tuples with a filename and (relative) install location there 
too.

This functionality is used in the OpenBLAS easyconfig to copy additional source 
tarballs in to the unpacked OpenBLAS build dir:

        patches = [
            (lapack_src, '.'),  # copy LAPACK tarball to unpacked OpenBLAS dir
            (large_src, '.'),
            (timing_src, '.'),
        ]

If you specify tuples like this, together with the '%(installdir)s template, 
you can probably achieve what you want (note: not tested):

        patches = [('sub_app', '%(installdir)s/bin')]

Let us know whether that helps.

It would probably be useful to have a cleaner way of doing this. If you agree, 
please open an issue in the easybuild-framework repository on GitHub.


> Another issue I have is with Application license files, for example in the 
> abaqus.py easyblock the license is 
> hardwired (e.g "ABAQUSLM_LICENSE_FILE=@abaqusfea"), I use a different license 
> server and so I currently
> need to create my own abaqus.py easyblock with a different license file. It 
> would be nice if I could leave the 
> easyblock untouched and supply the license file in my easyconfig file.

We should provide a mechanism like we do for the Intel tools, i.e. make the 
ABAQUS easyblock aware of the 'license_file' easyconfig parameter,
define it to a reasonable default like "$HOME/licenses/ABAQUS/license.lic" and 
allow overriding this default via an environment variable, e.g. 
$EASYBUILD_ABAQUS_LICENSE_FILE .

Please open an issue for this in the easybuild-easyblocks repository, or even 
better: try and implement this in the ABAQUS easyblock yourself, and open a 
pull request...
We'll be happy to help out if you need any help to get this generic solution 
working.

Note that we're looking into providing $EASYBUILD_SOMEAPP_XYZ environment 
variables for easyconfig parameters already (currently, we only have those for 
command line options).
Although we have a PR open to add support for this, we want to avoid rushing 
things in before we have a fully consistent solution,
i.e. something that not only works via environment variables but also on the 
command line, and in the EasyBuild configuration file.

More on that soon, hopefully...
For now, a solution like we have for the Intel tools (cfr. the IntelBase 
easyblock eaysbuild/easyblocks/generic/intelbase.py) should do...


regards,

Kenneth

Reply via email to