On 09/06/15 16:54, Stolpe, Oliver wrote:
Well, that worked! Thank you very much!

I have a follow-up question :-)

In my easyconfig script I have the line

     postinstallcmds = ['chmod 755 fastqc']

Unfortunately this does not alter the rights. If I use bin/fastqc (where it is 
supposed to be copied to), it claims that the file doesn't exist. I use 
shutil.copytree to copy the whole package content to bin. When is 
postinstallcmds executed? I assume that it happens after the copy step, so I 
wonder why he can't detect bin/fastqc.

It depends on where the post install commands are being executed from.

To make sure you're changing the permission on the install fastqc binary, please use this:

    postinstallcmds = ['chmod 755 %(installdir)s/bin/fastqc']


The %(installdir)s part will be replaced with the actual installation prefix before executing the command.

BTW: there already is an open pull request for FastQC, see https://github.com/hpcugent/easybuild-easyconfigs/pull/845.

For some reason, this ended up not being merged yet, but it looks OK (I'll look into getting it merged).

Note that Andreas is using the PackedBinary easyblock there, rather than writing a custom easyblock for FastQC...

If you're up for it, please contribute your FastQC support once you got it working, see https://github.com/hpcugent/easybuild/wiki/Contributing-back .


regards,

Kenneth



Cheers,
   Oliver

________________________________________
From: [email protected] [[email protected]] on 
behalf of Kenneth Hoste [[email protected]]
Sent: Tuesday, June 09, 2015 4:10 PM
To: [email protected]
Subject: Re: [easybuild] Setting up own easyblock repository

Hi Oliver,

The name of the module file should be lowercase, i.e. fastqc.py.

Can you try that?


regards,

Kenneth

On 09/06/15 15:44, Stolpe, Oliver wrote:
Hello Kenneth,

please find the requested files attached! I also attached the recipy. In the 
log file I found these lines suspicious:

== 2015-06-09 13:17:14,712 main.easyconfig.easyconfig DEBUG Failed to import 
module 'easybuild.easyblocks.fastqc': No module named fastqc
== 2015-06-09 13:17:14,713 main.easyconfig.easyconfig DEBUG No module path 
'easybuild.easyblocks.fastqc' found
== 2015-06-09 13:17:14,713 main.easyconfig.easyconfig DEBUG Module path 
determined based on software name: easybuild.easyblocks.fastqc
== 2015-06-09 13:17:14,713 main.easyconfig.easyconfig DEBUG getting class for 
easybuild.easyblocks.fastqc.EB_FastQC
== 2015-06-09 13:17:14,713 main.easyconfig.easyconfig DEBUG error regexp: No 
module named fastqc

Cheers,
    Oliver

________________________________________
From: [email protected] [[email protected]] on 
behalf of Kenneth Hoste [[email protected]]
Sent: Tuesday, June 09, 2015 3:08 PM
To: [email protected]
Subject: Re: [easybuild] Setting up own easyblock repository

Hi Oliver,

On 09/06/15 14:17, Stolpe, Oliver wrote:
Hello Kenneth and Niek,

thanks for your quick answers!
It wasn't clear to me from the documentation that easybuild directory also 
needs __init__.py.

Now I got:

$ find easybuild
easybuild/__init__.py
easybuild/easyblocks
easybuild/easyblocks/__init__.py
easybuild/easyblocks/FastQC.py
easybuild/easyblocks/FastQC.pyc

And:

$ echo $PYTHONPATH
/tools/easybuild/software/EasyBuild/2.1.1/lib/python2.7/site-packages:/tools/easybuild.local/easybuild/easyblocks:/tools/easybuild.local:/tools/easybuild.local/easybuild/

It exists:

$ eb --list-easyblocks | grep -i fastqc
|   |-- EB_FastQC
OK, this confirm your easyblock can be found, indeed.
But I keep getting the same error. Any other ideas?
Can we see the full easyconfig file you're using, and maybe also the
full log file (ideally, from a run where --debug was used)?


regards,

Kenneth

Cheers,
     Oliver


________________________________________
From: [email protected] [[email protected]] on 
behalf of Kenneth Hoste [[email protected]]
Sent: Tuesday, June 09, 2015 1:59 PM
To: [email protected]
Subject: Re: [easybuild] Setting up own easyblock repository

On 09/06/15 13:49, Niek de Klein wrote:
Hello Oliver,

I'm not part of the EasyBuild team but I think I see what goes wrong.
I think you forgot to add the easyblock name. What is the class name
you used in FastQC.py? For example, if in FastQC.py, under the imports
you have

class EB_FastQC(EasyBlock):
       ...

You should add

easyblock = 'EB_FastQC'

in your FastQC-0.11.3.eb.
If no easyblock specification is given, EasyBuild will try to find the
easyblock that matches the software name.

Assuming the easyconfig file contains "name = 'FastQC' ", EB should be
looking for EB_FastQC by itself.

The error message shown below only mentions that the automagic fallback
to ConfigureMake is no longer there.

Oliver: if the information you've provided is complete, you're missing
an __init__.py file in the 'easybuild' directory too (that includes the
'extend_path' statement mentioned in the documentation.


regards,

Kenneth
Hope this helps,
Niek

On Tue, Jun 9, 2015 at 1:43 PM, Stolpe, Oliver <[email protected]> wrote:
Hello Mailinglist,

I wanted to setup my own EasyBlock repository. I followed the instructions
from
<https://github.com/hpcugent/easybuild/wiki/Setting-up-your-own-easyblocks-repository>.
Somehow it ignores my easyblock when I try to execute the config file. Any
help is appreciated!

Cheers,
      Oliver

This is what I got:

/tools/easybuild.local/easybuild/easyblocks
/tools/easybuild.local/easybuild/easyblocks/FastQC.py
/tools/easybuild.local/easybuild/easyblocks/__init__.py

$ echo $PYTHONPATH
/tools/easybuild/software/EasyBuild/2.1.1/lib/python2.7/site-packages:/tools/easybuild.local

$ head FastQC-0.11.3.eb
name = 'FastQC'
version = '0.11.3'

homepage = 'http://www.bioinformatics.babraham.ac.uk/projects/fastqc'

$ eb FastQC-0.11.3.eb
== temporary log file in case of crash /tmp/eb-hJyLxt/easybuild-NGWQ6S.log
ERROR: Failed to process easyconfig
/tools/easybuild.local/easyconfigs/f/FastQC/FastQC-0.11.3.eb: NO LONGER
SUPPORTED since v2.0: Fallback to default easyblock ConfigureMake (from
easybuild.easyblocks.generic.configuremake); use "easyblock =
'ConfigureMake'" in easyconfig file?; see
http://easybuild.readthedocs.org/en/latest/Deprecated-functionality.html for
more information

Reply via email to