Dear Yann,

On 09/12/2019 17:11, Yann Sagon wrote:
Dear list,

I'm having the following issue when trying to build cairo.

[sagon@node025 openpose] $ eb --configfiles=/opt/cluster/easybuild/dev.cfg cairo-1.16.0-GCCcore-8.3.0.eb
== temporary log file in case of crash /tmp/eb-AVpHdo/easybuild-5vTSb6.log
ERROR: Failed to process easyconfig /home/sagon/easybuild/o/openpose/cairo-1.16.0-GCCcore-8.3.0.eb: Failed to find easyconfig file 'pixman-0.38.0-GCCcore-8.3.0.eb' when determining module name for: {'external_module_metadata': {}, 'short_mod_name': None, 'toolchain': {'version': '8.3.0', 'name': 'GCCcore'}, 'name': 'pixman', 'full_mod_name': None, 'system': False, 'build_only': False, 'versionsuffix': '', 'version': '0.38.0', 'toolchain_inherited': True, 'hidden': False, 'external_module': False}

Strange because pixman does exist for GCCcore/8.3.0:
[sagon@node025 openpose] $ ml GCCcore/8.3.0 pixman/0.38.0
[sagon@node025 openpose] $ ml show pixman
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /opt/ebmodules/all/Compiler/GCCcore/8.3.0/pixman/0.38.0.lua:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
prepend_path("CPATH","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0/include")
prepend_path("LD_LIBRARY_PATH","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0/lib")
prepend_path("LIBRARY_PATH","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0/lib")
prepend_path("PKG_CONFIG_PATH","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0/lib/pkgconfig")
setenv("EBROOTPIXMAN","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0")
setenv("EBVERSIONPIXMAN","0.38.0")
setenv("EBDEVELPIXMAN","/opt/ebsofts/pixman/0.38.0-GCCcore-8.3.0/easybuild/Compiler-GCCcore-8.3.0-pixman-0.38.0-easybuild-devel")

It's first time I have this issue and I just upgraded to EB 4.1.0... maybe it's related?!

I have this in my dev.cfg:

module-naming-scheme = HierarchicalMNS

I read something about fixed-installdir-naming-scheme. As I'm using HierarchicalMNS, I understand it's better to add this to my config:

[override]
fixed-installdir-naming-scheme = 0

I have tried to build cairo with and without this option without change.

Enabling or disabling fixed-installdir-naming-scheme only affects the name of the installation directory (and whether or not you can use "eb --module-only" to install an additional module file with a different module naming scheme for an existing installation, see also https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html#fixed-installdir-naming-scheme-enabled-by-default .

The problem you're hitting is that when you're using HierarchicalMNS, the easyconfig file for each of the dependencies must be available. EasyBuild relies on same stuff (like 'moduleclass') which is only available in the easyconfig file to determine the module name in a module hierarchy (which is step 0 in determining whether a module is already avaiable for that dependency).

Check whether "eb --search pixman-0.38.0" yields any results for the pixman easyconfig file.

The solution to your problem is most likely to pass the location of the pixman easyconfig file to either --robot or --robot-paths. A common way to avoid this issue in general is to add the location of the easyconfigs archive (see 'repositorypath' in the output of "eb --show-config") to --robot-paths in your EasyBuild configuration; see also https://easybuild.readthedocs.io/en/latest/Using_the_EasyBuild_command_line.html#controlling-the-robot-search-path.


regards,

Kenneth


Best

Reply via email to