Skip to content

using SystemCompiler easyblock for wrapper around system GCC fails if an Intel license is not defined #2815

@branfosj

Description

@branfosj

Building GCCcore-system.eb fails if a suitable Intel license definition is not set

== 2022-10-25 19:38:56,495 filetools.py:2353 INFO Considering INTEL_LICENSE_FILE to find FlexLM license specs: []
== 2022-10-25 19:38:56,495 filetools.py:2353 INFO Considering LM_LICENSE_FILE to find FlexLM license specs: []
== 2022-10-25 19:38:56,495 filetools.py:2353 INFO Considering None to find FlexLM license specs: []
== 2022-10-25 19:38:56,496 filetools.py:2390 INFO Found valid license specs via provided license spec: []
== 2022-10-25 19:38:56,582 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/src/easybuild-framework/easybuild/base/exceptions.py:124 in __init__): No viable license specifications found; specify 'license_file', or define $INTEL_LICENSE_FILE or $LM_LICENSE_FILE (at easybuild/src/easybuild-easyblocks/easybuild/easyblocks/generic/intelbase.py:287 in prepare_step)

Following this through:

  • prepare_step in systemcompiler.py, at EB_GCC.prepare_step(self, *args, **kwargs)
  • super(EB_GCC, self).prepare_step(*args, **kwargs) in gcc.py
  • hit the check for Intel license in intelbase.py

Any of the following avoid the issue:

  • setting requires_runtime_license = False in GCCcore-system.eb
  • changing class SystemCompiler(Bundle, EB_GCC, EB_ifort) to be class SystemCompiler(Bundle, EB_ifort, EB_GCC) in systemcompiler.py
  • setting fake Intel license information

The second of these makes me believe that the correct fix is making sure the inheritance order triggers the right super in gcc.py.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions