Hi Oliver,

On 18/11/15 15:46, Stolpe, Oliver wrote:
Hello list,

I have some homegrown recipes that are installing python modules. They used to work with EasyBuild v2.1.0, but since the new releases of EasyBuild they can't pass the sanity check.
In one of the releases since EasyBuild v2.1.0, we fixed an issue with the sanity check not being properly performed, particularly for extensions (like Python packages).

They search for a bin directory, but some python libs simply don't have any. Right now, I am overriding it by setting

    sanity_check_paths = {
        'files': [],
        'dirs': [('lib', 'lib64')]
    }

Is there a more elegant way to do this?

I'm not sure what so non-elegant about this... Maybe you feel it's not specific enough?

EasyBuild will already perform a sanity check in the sense that it will check whether "python -c 'import foo'" works (with 'foo' being a module name provided by that package).

You're right that we're not enforcing that sanity_check_paths is also defined for Python packages, which was not the case before (which was considered a bug, see https://github.com/hpcugent/easybuild-framework/pull/1366.

If you find this really annoying, we can define a default sanity_check_paths in the generic PythonPackage easyblock to only check for lib or lib64 (not bin).

That makes sense, and can avoid that easyconfigs for Python packages include a rather silly sanity_check_paths as the one you mentioned.

If sanity_check_paths are defined in the easyconfigs, they will still take the upper hand, so this would be a backwards-compatible change.



regards,

Kenneth


Thanks,
  Oliver

== 2015-11-18 13:09:33,267 runpy.PythonPackage INFO Using default sanity check paths: {'files': [], 'dirs': ['bin', ('lib', 'lib64')]} == 2015-11-18 13:09:33,267 runpy.PythonPackage INFO Using specified sanity check commands: [] == 2015-11-18 13:09:33,267 runpy.PythonPackage WARNING Sanity check: no (non-empty) directory of ('bin',) in /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9 == 2015-11-18 13:09:33,268 runpy.filetools INFO Creating directory /tmp/eb-3586qK/tmpkQnTbE/all/pysam (parents: True, set_gid: False, sticky: False) == 2015-11-18 13:09:33,269 runpy.PythonPackage INFO Module file /tmp/eb-3586qK/tmpkQnTbE/all/pysam/0.8.3-foss-2015a-Python-2.7.9 written: #%Module

[......]

== sanity checking...
== FAILED: Installation ended unsuccessfully (build directory: /tools/easybuild/build/pysam/0.8.3/foss-2015a-Python-2.7.9): build failed (first 300 chars): Sanity check failed: no (non-empty) directory of ('bin',) in /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9 == Results of the build can be found in the log file /tmp/eb-3586qK/easybuild-pysam-0.8.3-20151118.130659.LjfHr.log ERROR: Build of /tools/easybuild.local/easyconfigs/p/pysam/pysam-0.8.3-foss-2015a-Python-2.7.9.eb failed (err: "build failed (first 300 chars): Sanity check failed: no (non-empty) directory of ('bin',) in /tools/easybuild/software/pysam/0.8.3-foss-2015a-Python-2.7.9")


--

Oliver Stolpe
Bioinformatics Core Unit
Berlin Institute of Health
Phone: +49 30 450 543605

Luisenstr. 56, 10117 Berlin, Germany

Reply via email to