diff --git a/easybuild/framework/easyconfig/easyconfig.py b/easybuild/framework/easyconfig/easyconfig.py index c3ffc7a380..a0d47dd086 100644 --- a/easybuild/framework/easyconfig/easyconfig.py +++ b/easybuild/framework/easyconfig/easyconfig.py @@ -1818,7 +1818,6 @@ def get_easyblock_class(easyblock, name=None, error_on_failed_import=True, error except ImportError as err: # when an ImportError occurs, make sure that it's caused by not finding the easyblock module, # and not because of a broken import statement in the easyblock module - print('modulepath' + modulepath) modname = modulepath.replace('easybuild.easyblocks.', '') error_re = re.compile(r"No module named '?.*/?%s'?" % modname) _log.debug("error regexp for ImportError on '%s' easyblock: %s", modname, error_re.pattern) diff --git a/easybuild/framework/easyconfig/tools.py b/easybuild/framework/easyconfig/tools.py index ade0954a40..2a3260ae80 100644 --- a/easybuild/framework/easyconfig/tools.py +++ b/easybuild/framework/easyconfig/tools.py @@ -395,6 +395,7 @@ def parse_easyconfigs(paths, validate=True): """ easyconfigs = [] generated_ecs = False + for (path, generated) in paths: path = os.path.abspath(path) # keep track of whether any files were generated diff --git a/easybuild/main.py b/easybuild/main.py index ff4d74d584..6f09c9f938 100644 --- a/easybuild/main.py +++ b/easybuild/main.py @@ -70,7 +70,7 @@ from easybuild.tools.parallelbuild import submit_jobs from easybuild.tools.repository.repository import init_repository from easybuild.tools.testing import create_test_report, overall_test_report, regtest, session_state -from easybuild.tools.build_from_specsfile import handle_specsfile +from easybuild.tools.build_from_easystack import parse_easystack _log = None @@ -224,6 +224,13 @@ def main(args=None, logfile=None, do_build=None, testing=False, modtool=None): last_log = find_last_log(logfile) or '(none)' print_msg(last_log, log=_log, prefix=False) + # if easystack is provided with the command, commands with arguments from it will be executed + if options.easystack: + # TODO add general_options (i.e. robot) to build options + orig_paths, general_options = parse_easystack(options.easystack) + if general_options: + raise EasyBuildError("Support for general options (flags) is not supported yet.") + # check whether packaging is supported when it's being used if options.package: check_pkg_support() @@ -322,12 +329,6 @@ def main(args=None, logfile=None, do_build=None, testing=False, modtool=None): # determine paths to easyconfigs determined_paths = det_easyconfig_paths(categorized_paths['easyconfigs']) - - # if specsfile is provided with the command, commands with arguments from it will be executed - if options.specsfile: - # TODO add general_options (i.e. robot) to build options - determined_paths, general_options = handle_specsfile(options.specsfile) - if (options.copy_ec and not tweaked_ecs_paths) or options.fix_deprecated_easyconfigs or options.show_ec: if options.copy_ec: @@ -422,7 +423,7 @@ def main(args=None, logfile=None, do_build=None, testing=False, modtool=None): ordered_ecs = resolve_dependencies(easyconfigs, modtool) else: ordered_ecs = easyconfigs - elif pr_options or options.specsfile: + elif pr_options: ordered_ecs = None else: print_msg("No easyconfigs left to be built.", log=_log, silent=testing) diff --git a/easybuild/tools/build_from_specsfile.py b/easybuild/tools/build_from_easystack.py similarity index 68% rename from easybuild/tools/build_from_specsfile.py rename to easybuild/tools/build_from_easystack.py index b30c71393b..ab5fd27aa9 100644 --- a/easybuild/tools/build_from_specsfile.py +++ b/easybuild/tools/build_from_easystack.py @@ -4,45 +4,34 @@ from easybuild.base import fancylogger -_log = fancylogger.getLogger('specsfile', fname=False) +_log = fancylogger.getLogger('easystack', fname=False) # general specs applicable to all commands -class Specsfile(object): +class Easystack(object): def __init__(self): self.easybuild_version = None self.robot = False self.software_list = [] - # returns list of all commands - finished - def compose_full_paths(self): - easyconfigs_full_paths = [] + # returns list of all easyconfig names - finished + def compose_ec_names(self): + ec_names = [] for sw in self.software_list: - path_to_append = self.get_ec_path(sw) - - if path_to_append is None: + ec_to_append = '%s-%s-%s-%s.eb' % (str(sw.software), str(sw.version), + str(sw.toolchain_name), str(sw.toolchain_version)) + if ec_to_append is None: continue else: - easyconfigs_full_paths.append(path_to_append) - return easyconfigs_full_paths - - # single command - def get_ec_path(self, sw): - full_path = search_easyconfigs(query='%s-%s-%s-%s' % ( - str(sw.software), str(sw.version), str(sw.toolchain_name), str(sw.toolchain_version)), - short=False, filename_only=False, - terse=False, consider_extra_paths=True, print_result=False, case_sensitive=False) - if len(full_path) == 1: - return full_path[0] - else: - print('%s does not have clearly specified parameters - %s matches found. Skipping. \n' % - (sw.software, str(len(full_path)))) - - # todo: flags applicable to all sw (i.e. robot) + ec_names.append(ec_to_append) + return ec_names + + # flags applicable to all sw (i.e. robot) def get_general_options(self): general_options = {} - general_options['robot'] = self.robot - general_options['easybuild_version'] = self.easybuild_version + # TODO add support for general_options + # general_options['robot'] = self.robot + # general_options['easybuild_version'] = self.easybuild_version return general_options @@ -56,30 +45,30 @@ def __init__(self, software, version, toolchain, toolchain_version, toolchain_na self.toolchain_name = toolchain_name self.toolchain = toolchain - self.version_suffix = None + self.versionsuffix = None - def get_version_suffix(self): - return self.version_suffix or '' + def get_versionsuffix(self): + return self.versionsuffix or '' # implement this to your own needs - to create custom yaml/json/xml parser class GenericSpecsParser(object): - @staticmethod + @ staticmethod def parse(filename): raise NotImplementedError class YamlSpecParser(GenericSpecsParser): - @staticmethod + @ staticmethod def parse(filename): try: with open(filename, 'r') as f: spec_dict = yaml.safe_load(f) - eb = Specsfile() + eb = Easystack() except FileNotFoundError: - raise EasyBuildError("Could not read provided specsfile.") + raise EasyBuildError("Could not read provided easystack.") sw_dict = spec_dict["software"] @@ -120,14 +109,11 @@ def parse(filename): elif str(yaml_version) == 'exclude-labels' \ or str(yaml_version) == 'include-labels': continue - else: - print('Software % s has wrong yaml structure!' % (str(software))) - raise EasyBuildError('Wrong yaml structure') + raise EasyBuildError('Software % s has wrong yaml structure!' % (str(software))) except (KeyError, TypeError, IndexError): - print('Software % s has wrong yaml structure!' % (str(software))) - raise EasyBuildError('Wrong yaml structure') + raise EasyBuildError('Software % s has wrong yaml structure!' % (str(software))) # assign general EB attributes eb.easybuild_version = spec_dict.get('easybuild_version', None) @@ -135,16 +121,16 @@ def parse(filename): return eb -def handle_specsfile(filename): - _log.info("Building from specsfile: '%s'" % filename) +def parse_easystack(filename): + _log.info("Building from easystack: '%s'" % filename) # class instance which contains all info about planned build eb = YamlSpecParser.parse(filename) - easyconfigs_full_paths = eb.compose_full_paths() + easyconfigs_full_paths = eb.compose_ec_names() general_options = eb.get_general_options() - _log.debug("Specsfile parsed. Proceeding to install these Easyconfigs: \n'%s'" % ',\n'.join(easyconfigs_full_paths)) + _log.debug("Easystack parsed. Proceeding to install these Easyconfigs: \n'%s'" % ',\n'.join(easyconfigs_full_paths)) return easyconfigs_full_paths, general_options diff --git a/easybuild/tools/options.py b/easybuild/tools/options.py index 80c3255eb3..56106995c7 100644 --- a/easybuild/tools/options.py +++ b/easybuild/tools/options.py @@ -604,8 +604,8 @@ def informative_options(self): 'show-full-config': ("Show current EasyBuild configuration (all settings)", None, 'store_true', False), 'show-system-info': ("Show system information relevant to EasyBuild", None, 'store_true', False), 'terse': ("Terse output (machine-readable)", None, 'store_true', False), - 'specsfile': ( - "Accepts file containing build specifications (i.e. yaml), parses it and prints all eb commands to run", + 'easystack': ( + "Parses file containing build specifications (i.e. yaml) and initiates build accordingly", None, 'store', None), }) diff --git a/test/framework/options.py b/test/framework/options.py index a60a2bcdd5..40d198c78c 100644 --- a/test/framework/options.py +++ b/test/framework/options.py @@ -5453,24 +5453,24 @@ def test_sysroot(self): os.environ['EASYBUILD_SYSROOT'] = doesnotexist self.assertErrorRegex(EasyBuildError, error_pattern, self._run_mock_eb, ['--show-config'], raise_error=True) - def test_wrong_read_specsfile(self): - """Test for --specsfile when wrong name is provided""" + def test_wrong_read_easystack(self): + """Test for --easystack when wrong name is provided""" topdir = os.path.dirname(os.path.abspath(__file__)) - toy_specsfile = os.path.join(topdir, 'specsfiles', 'test_specsfile_nonexistent.yaml') + toy_easystack = os.path.join(topdir, 'easystacks', 'test_easystack_nonexistent.yaml') - args = ['--specsfile', toy_specsfile] + args = ['--easystack', toy_easystack] self.mock_stdout(True) self.mock_stderr(True) - self.assertErrorRegex(EasyBuildError, "Could not read provided specsfile", self.eb_main, args, raise_error=True) + self.assertErrorRegex(EasyBuildError, "Could not read provided easystack", self.eb_main, args, raise_error=True) self.mock_stdout(False) self.mock_stderr(False) - def test_wrong_specsfile_structure(self): - """Test for --specsfile when yaml specsfile has wrong structure""" + def test_wrong_easystack_structure(self): + """Test for --easystack when yaml easystack has wrong structure""" topdir = os.path.dirname(os.path.abspath(__file__)) - toy_specsfile = os.path.join(topdir, 'specsfiles', 'test_specsfile_wrong_structure.yaml') + toy_easystack = os.path.join(topdir, 'easystacks', 'test_easystack_wrong_structure.yaml') - args = ['--specsfile', toy_specsfile] + args = ['--easystack', toy_easystack] self.mock_stdout(True) self.mock_stderr(True) self.assertErrorRegex(EasyBuildError, "Wrong yaml structure", self.eb_main, args, raise_error=True) @@ -5480,12 +5480,12 @@ def test_wrong_specsfile_structure(self): # basic stuff in yaml - just to test the basics # no implicit dependencies - all listed in yaml (thus no need for --robot # expecting successful build - def test_specsfile_basic(self): - """Test for --specsfile -> success case""" + def test_basic_easystack(self): + """Test for --easystack -> success case""" topdir = os.path.dirname(os.path.abspath(__file__)) - toy_specsfile = os.path.join(topdir, 'specsfiles', 'test_specsfile_basic.yaml') + toy_easystack = os.path.join(topdir, 'easystacks', 'test_easystack_basic.yaml') - args = ['--specsfile', toy_specsfile, '--stop', '--debug'] + args = ['--easystack', toy_easystack, '--stop', '--debug'] stdout, err = self.eb_main(args, do_build=True, return_error=True, testing=True) print(stdout) @@ -5496,12 +5496,12 @@ def test_specsfile_basic(self): # basic stuff in yaml # `--robot` is added and dependencies are not listed # expecting successful build - def test_specsfile_robot(self): - """Test for --specsfile -> success case""" + def test_easystack_robot(self): + """Test for --easystack -> success case""" topdir = os.path.dirname(os.path.abspath(__file__)) - toy_specsfile = os.path.join(topdir, 'specsfiles', 'test_specsfile_robot.yaml') + toy_easystack = os.path.join(topdir, 'easystacks', 'test_easystack_robot.yaml') - args = ['--specsfile', toy_specsfile, '--stop', '--robot', '--debug'] + args = ['--easystack', toy_easystack, '--stop', '--debug'] stdout, err = self.eb_main(args, do_build=True, return_error=True) print(stdout) diff --git a/test/framework/specsfiles/test_specsfile_1.yaml b/test/framework/specsfiles/test_easystack_1.yaml similarity index 100% rename from test/framework/specsfiles/test_specsfile_1.yaml rename to test/framework/specsfiles/test_easystack_1.yaml diff --git a/test/framework/specsfiles/test_specsfile_basic.yaml b/test/framework/specsfiles/test_easystack_basic.yaml similarity index 100% rename from test/framework/specsfiles/test_specsfile_basic.yaml rename to test/framework/specsfiles/test_easystack_basic.yaml diff --git a/test/framework/specsfiles/test_specsfile_robot.yaml b/test/framework/specsfiles/test_easystack_robot.yaml similarity index 100% rename from test/framework/specsfiles/test_specsfile_robot.yaml rename to test/framework/specsfiles/test_easystack_robot.yaml diff --git a/test/framework/specsfiles/test_specsfile_wrong_structure.yaml b/test/framework/specsfiles/test_easystack_wrong_structure.yaml similarity index 100% rename from test/framework/specsfiles/test_specsfile_wrong_structure.yaml rename to test/framework/specsfiles/test_easystack_wrong_structure.yaml diff --git a/test_result.log b/test_result.log new file mode 100644 index 0000000000..181a9cf4f5 --- /dev/null +++ b/test_result.log @@ -0,0 +1,572 @@ +Filtered CommandLineOptionsTest tests using 'test_specsfile_robot', retained 1/117 tests: test_specsfile_robot +== 2020-11-04 15:01:15,465 build_log.py:227 INFO This is EasyBuild 4.3.2.dev0 (framework: 4.3.1.dev0, easyblocks: 4.3.2.dev0) on host gligar05.gastly.os. +== 2020-11-04 15:01:15,465 build_log.py:230 INFO Command line: --buildpath='/tmp/eb-kqyr9omy/eb-cugnzcm6/tmpujd2gefp' --containerpath='/tmp/eb-kqyr9omy/eb-cugnzcm6/containers' --deprecated='10000000' --ignoreconfigfiles='' --installpath='/tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq' --packagepath='/tmp/eb-kqyr9omy/eb-cugnzcm6/packages' --prefix='/tmp/eb-kqyr9omy/eb-cugnzcm6' --repositorypath='/tmp/eb-kqyr9omy/eb-cugnzcm6/ebfiles_repo' --robot='/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs' --robot-paths='/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs' --sourcepath='/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/sources' --specsfile='/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/specsfiles/test_specsfile_robot.yaml' --stop +== 2020-11-04 15:01:15,466 build_log.py:232 INFO Using /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3 as temporary directory +== 2020-11-04 15:01:15,466 robot.py:58 INFO Using robot path(s): ['/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs'] +== 2020-11-04 15:01:15,466 filetools.py:456 INFO Command eb found at /user/gent/438/vsc43810/easybuild/easybuild-framework/eb +== 2020-11-04 15:01:15,467 options.py:1626 INFO Using default external modules metadata cfg files: ['/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/etc/cray_external_modules_metadata.cfg', '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/etc/ohpc_external_modules_metadata.cfg'] +== 2020-11-04 15:01:15,485 systemtools.py:879 INFO Found Python version 3.6 +== 2020-11-04 15:01:15,486 systemtools.py:899 INFO Running EasyBuild with Python 3 (version 3.6) +== 2020-11-04 15:01:15,486 filetools.py:2240 INFO /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/fake_vsc_rk7599lo moved to /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/fake_vsc_rk7599lo +== 2020-11-04 15:01:15,486 hooks.py:111 INFO No location for hooks implementation provided, no hooks defined +== 2020-11-04 15:01:15,486 hooks.py:142 INFO Defined hooks verified, all known hooks: +== 2020-11-04 15:01:15,600 environment.py:97 INFO Environment variable LD_LIBRARY_PATH set to (previous value: '') +== 2020-11-04 15:01:15,600 environment.py:97 INFO Environment variable LD_PRELOAD set to (previous value: '') +== 2020-11-04 15:01:15,601 filetools.py:456 INFO Command eb found at /user/gent/438/vsc43810/easybuild/easybuild-framework/eb +== 2020-11-04 15:01:15,601 tools.py:264 INFO Location to 'eb' script (found via $PATH): /user/gent/438/vsc43810/easybuild/easybuild-framework/eb +== 2020-11-04 15:01:15,601 tools.py:282 INFO Not considering /user/gent/438/vsc43810/easybuild (no easybuild/easyconfigs subdir found) +== 2020-11-04 15:01:15,601 tools.py:290 INFO Also considering installation prefix /kyukon/home/gent/438/vsc43810/easybuild (via resolved path to 'eb')... +== 2020-11-04 15:01:15,602 build_from_specsfile.py:139 INFO Building from specsfile: '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/specsfiles/test_specsfile_robot.yaml' +== 2020-11-04 15:01:15,608 build_log.py:265 INFO Searching (case-insensitive) for 'binutils-2.25-GCCcore-4.9.3' in /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs +== 2020-11-04 15:01:15,608 filetools.py:852 INFO No index found for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs, creating one... +== 2020-11-04 15:01:15,616 build_log.py:265 INFO Searching (case-insensitive) for 'binutils-2.26-GCCcore-4.9.3' in /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs +== 2020-11-04 15:01:15,616 filetools.py:852 INFO No index found for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs, creating one... +== 2020-11-04 15:01:15,630 build_log.py:265 INFO Searching (case-insensitive) for 'bzip2-1.0.6-GCC-4.9.2' in /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs +== 2020-11-04 15:01:15,630 filetools.py:852 INFO No index found for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs, creating one... +== 2020-11-04 15:01:15,647 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:15,657 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:15,657 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:15,657 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:15,657 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:15,658 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:15,786 environment.py:97 INFO Environment variable LD_LIBRARY_PATH set to (previous value: '') +== 2020-11-04 15:01:15,786 environment.py:97 INFO Environment variable LD_PRELOAD set to (previous value: '') +== 2020-11-04 15:01:15,806 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:15,807 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:15,819 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:15,820 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'binutils') +== 2020-11-04 15:01:15,820 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb with rawcontent: # should be software specific, but OK for testing purposes +easyblock = 'EB_toy' + +name = 'binutils' +version = '2.25' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +# Testing purposes only so remove deps +#builddependencies = [ +# ('M4', '1.4.17'), +# ('flex', '2.5.39'), +# ('Bison', '3.0.4'), +# # zlib required, but being linked in statically, so not a runtime dep +# ('zlib', '1.2.8'), +# # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils +# ('binutils', version, '', True) +#] + +moduleclass = 'tools' + +== 2020-11-04 15:01:15,820 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:15,822 easyconfig.py:643 INFO setting easyconfig parameter description: value binutils: GNU binary utilities (type: ) +== 2020-11-04 15:01:15,822 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value EB_toy (type: ) +== 2020-11-04 15:01:15,822 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://directory.fsf.org/project/binutils/ (type: ) +== 2020-11-04 15:01:15,822 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value tools (type: ) +== 2020-11-04 15:01:15,822 easyconfig.py:643 INFO setting easyconfig parameter name: value binutils (type: ) +== 2020-11-04 15:01:15,823 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['https://ftpmirror.gnu.org/gnu/%(namelower)s'] (type: ) +== 2020-11-04 15:01:15,823 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(name)s-%(version)s.tar.gz'] (type: ) +== 2020-11-04 15:01:15,823 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'GCCcore', 'version': '4.9.3'} (type: ) +== 2020-11-04 15:01:15,823 easyconfig.py:643 INFO setting easyconfig parameter version: value 2.25 (type: ) +== 2020-11-04 15:01:15,823 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:15,823 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:15,824 easyconfig.py:2078 INFO No index found for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs, so creating it... +== 2020-11-04 15:01:15,832 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:15,834 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:15,834 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:15,834 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:15,834 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:15,834 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:15,834 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:15,835 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:15,836 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:15,836 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'GCCcore') +== 2020-11-04 15:01:15,836 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb with rawcontent: # should be EB_GCC, but OK for testing purposes +easyblock = 'EB_toy' + +name = "GCCcore" +version = '4.9.3' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror +] + +#gcc_name = 'GCC' + +sources = [ + SOURCELOWER_TAR_BZ2, +] + +moduleclass = 'compiler' + +== 2020-11-04 15:01:15,836 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:15,836 easyconfig.py:643 INFO setting easyconfig parameter description: value The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...). (type: ) +== 2020-11-04 15:01:15,836 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value EB_toy (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://gcc.gnu.org/ (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value compiler (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter name: value GCCcore (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s'] (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(namelower)s-%(version)s.tar.bz2'] (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'system', 'version': 'system'} (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:643 INFO setting easyconfig parameter version: value 4.9.3 (type: ) +== 2020-11-04 15:01:15,837 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:15,837 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:15,884 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gcccore', github_account='gcccore', name='GCCcore', nameletter='G', nameletterlower='g', namelower='gcccore', toolchain_name='system', toolchain_version='system', version='4.9.3', version_major='4', version_major_minor='4.9', version_minor='9', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:15,884 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:15,884 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:15,884 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:15,884 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:15,884 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:15,884 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:15,886 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='binutils', github_account='binutils', name='binutils', nameletter='b', nameletterlower='b', namelower='binutils', toolchain_name='GCCcore', toolchain_version='4.9.3', version='2.25', version_major='2', version_major_minor='2.25', version_minor='25', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:15,887 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:15,887 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:15,887 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:15,887 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:15,887 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:15,887 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:15,888 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:15,889 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:15,889 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:15,889 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:15,889 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:15,889 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:15,889 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:15,890 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:15,890 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:15,890 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'binutils') +== 2020-11-04 15:01:15,891 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb with rawcontent: # should be software specific, but OK for testing purposes +easyblock = 'EB_toy' + +name = 'binutils' +version = '2.26' + +homepage = 'http://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '4.9.3'} + +sources = [SOURCE_TAR_GZ] +source_urls = [GNU_SOURCE] + +# Testing purposes only so remove deps +#builddependencies = [ +# ('M4', '1.4.17'), +# ('flex', '2.5.39'), +# ('Bison', '3.0.4'), +# # zlib required, but being linked in statically, so not a runtime dep +# ('zlib', '1.2.8'), +# # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils +# ('binutils', version, '', True) +#] + +moduleclass = 'tools' + +== 2020-11-04 15:01:15,891 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter description: value binutils: GNU binary utilities (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value EB_toy (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://directory.fsf.org/project/binutils/ (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value tools (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter name: value binutils (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['https://ftpmirror.gnu.org/gnu/%(namelower)s'] (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(name)s-%(version)s.tar.gz'] (type: ) +== 2020-11-04 15:01:15,891 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'GCCcore', 'version': '4.9.3'} (type: ) +== 2020-11-04 15:01:15,892 easyconfig.py:643 INFO setting easyconfig parameter version: value 2.26 (type: ) +== 2020-11-04 15:01:15,892 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:15,892 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:15,893 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='binutils', github_account='binutils', name='binutils', nameletter='b', nameletterlower='b', namelower='binutils', toolchain_name='GCCcore', toolchain_version='4.9.3', version='2.26', version_major='2', version_major_minor='2.26', version_minor='26', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:15,893 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:15,893 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:15,893 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:15,893 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:15,893 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:15,893 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:15,894 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:15,895 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:15,895 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:15,895 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:15,895 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:15,895 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:15,895 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:15,895 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:15,897 easyconfig.py:1787 INFO Derived full easyblock module path for ConfigureMake: easybuild.easyblocks.generic.configuremake +== 2020-11-04 15:01:15,897 easyconfig.py:1835 INFO Successfully obtained class 'ConfigureMake' for easyblock 'ConfigureMake' (software name 'bzip2') +== 2020-11-04 15:01:15,897 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/bzip2/bzip2-1.0.6-GCC-4.9.2.eb with rawcontent: # not really (there's an EB_bzip2 easyblock), but fine for use in unit tests +easyblock = 'ConfigureMake' + +name = 'bzip2' +version = '1.0.6' + +homepage = 'http://www.bzip.org/' +description = """bzip2 is a freely available, patent free, high-quality data compressor. It typically +compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical +compressors), whilst being around twice as fast at compression and six times faster at decompression.""" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} +toolchainopts = {'pic': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['http://www.bzip.org/%(version)s'] + +builddependencies = [('gzip', '1.6')] + +moduleclass = 'tools' + +== 2020-11-04 15:01:15,897 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:15,897 easyconfig.py:643 INFO setting easyconfig parameter builddependencies: value [('gzip', '1.6')] (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter description: value bzip2 is a freely available, patent free, high-quality data compressor. It typically +compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical +compressors), whilst being around twice as fast at compression and six times faster at decompression. (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value ConfigureMake (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://www.bzip.org/ (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value tools (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter name: value bzip2 (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['http://www.bzip.org/%(version)s'] (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(name)s-%(version)s.tar.gz'] (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'GCC', 'version': '4.9.2'} (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter toolchainopts: value {'pic': True} (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:643 INFO setting easyconfig parameter version: value 1.0.6 (type: ) +== 2020-11-04 15:01:15,898 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:15,898 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:15,898 easyconfig.py:2074 INFO Found loaded index for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs +== 2020-11-04 15:01:15,899 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:15,900 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:15,900 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:15,900 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:15,900 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:15,900 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:15,901 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:15,901 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:15,902 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:15,902 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'GCC') +== 2020-11-04 15:01:15,902 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb with rawcontent: # should be EB_GCC, but OK for testing purposes +easyblock = 'EB_toy' + +name = "GCC" +version = '4.9.2' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] + +local_mpfr_version = '3.1.2' + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % local_mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % local_mpfr_version, '../mpfr-%s' % local_mpfr_version)] + +# commented out 'languages' setting since dummy GCC easyblock doesn't define this as a known easyconfig parameter +# languages = ['c', 'c++', 'fortran', 'lto'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +== 2020-11-04 15:01:15,902 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:15,902 easyconfig.py:643 INFO setting easyconfig parameter description: value The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...). (type: ) +== 2020-11-04 15:01:15,902 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value EB_toy (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://gcc.gnu.org/ (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter maxparallel: value 4 (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value compiler (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter name: value GCC (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter patches: value [('mpfr-3.1.2-allpatches-20140630.patch', '../mpfr-3.1.2')] (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', 'http://ftpmirror.gnu.org/gmp', 'http://ftpmirror.gnu.org/mpfr', 'http://www.multiprecision.org/mpc/download'] (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(namelower)s-%(version)s.tar.bz2', 'gmp-6.0.0a.tar.bz2', 'mpfr-3.1.2.tar.gz', 'mpc-1.0.2.tar.gz'] (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'system', 'version': 'system'} (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:643 INFO setting easyconfig parameter version: value 4.9.2 (type: ) +== 2020-11-04 15:01:15,903 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:15,903 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:15,904 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gcc', github_account='gcc', name='GCC', nameletter='G', nameletterlower='g', namelower='gcc', toolchain_name='system', toolchain_version='system', version='4.9.2', version_major='4', version_major_minor='4.9', version_minor='9', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:15,904 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:15,904 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:15,904 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:15,904 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:15,904 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:15,904 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:15,906 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='bzip2', github_account='bzip2', name='bzip2', nameletter='b', nameletterlower='b', namelower='bzip2', toolchain_name='GCC', toolchain_version='4.9.2', version='1.0.6', version_major='1', version_major_minor='1.0', version_minor='0', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:16,051 environment.py:97 INFO Environment variable LD_LIBRARY_PATH set to (previous value: '') +== 2020-11-04 15:01:16,052 environment.py:97 INFO Environment variable LD_PRELOAD set to (previous value: '') +== 2020-11-04 15:01:16,058 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:16,062 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:16,062 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:16,062 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:16,062 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:16,062 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:16,063 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:16,063 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:16,065 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:16,065 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'GCC') +== 2020-11-04 15:01:16,065 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb with rawcontent: # should be EB_GCC, but OK for testing purposes +easyblock = 'EB_toy' + +name = "GCC" +version = '4.9.2' + +homepage = 'http://gcc.gnu.org/' +description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...).""" + +toolchain = SYSTEM + +source_urls = [ + 'http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', # GCC auto-resolving HTTP mirror + 'http://ftpmirror.gnu.org/gmp', # idem for GMP + 'http://ftpmirror.gnu.org/mpfr', # idem for MPFR + 'http://www.multiprecision.org/mpc/download', # MPC official +] + +local_mpfr_version = '3.1.2' + +sources = [ + SOURCELOWER_TAR_BZ2, + 'gmp-6.0.0a.tar.bz2', + 'mpfr-%s.tar.gz' % local_mpfr_version, + 'mpc-1.0.2.tar.gz', +] + +patches = [('mpfr-%s-allpatches-20140630.patch' % local_mpfr_version, '../mpfr-%s' % local_mpfr_version)] + +# commented out 'languages' setting since dummy GCC easyblock doesn't define this as a known easyconfig parameter +# languages = ['c', 'c++', 'fortran', 'lto'] + +# building GCC sometimes fails if make parallelism is too high, so let's limit it +maxparallel = 4 + +moduleclass = 'compiler' + +== 2020-11-04 15:01:16,066 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter description: value The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, + as well as libraries for these languages (libstdc++, libgcj,...). (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value EB_toy (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://gcc.gnu.org/ (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter maxparallel: value 4 (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value compiler (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter name: value GCC (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter patches: value [('mpfr-3.1.2-allpatches-20140630.patch', '../mpfr-3.1.2')] (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['http://ftpmirror.gnu.org/%(namelower)s/%(namelower)s-%(version)s', 'http://ftpmirror.gnu.org/gmp', 'http://ftpmirror.gnu.org/mpfr', 'http://www.multiprecision.org/mpc/download'] (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(namelower)s-%(version)s.tar.bz2', 'gmp-6.0.0a.tar.bz2', 'mpfr-3.1.2.tar.gz', 'mpc-1.0.2.tar.gz'] (type: ) +== 2020-11-04 15:01:16,067 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'system', 'version': 'system'} (type: ) +== 2020-11-04 15:01:16,068 easyconfig.py:643 INFO setting easyconfig parameter version: value 4.9.2 (type: ) +== 2020-11-04 15:01:16,068 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:16,068 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:16,069 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gcc', github_account='gcc', name='GCC', nameletter='G', nameletterlower='g', namelower='gcc', toolchain_name='system', toolchain_version='system', version='4.9.2', version_major='4', version_major_minor='4.9', version_minor='9', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:16,070 easyconfig.py:384 INFO Found toolchain hierarchy for toolchain {'name': 'GCC', 'version': '4.9.2'}: [{'name': 'GCC', 'version': '4.9.2'}] +== 2020-11-04 15:01:16,070 modules.py:606 INFO Checking whether gzip/1.6-GCC-4.9.2 exists... +== 2020-11-04 15:01:16,070 modules.py:627 INFO Module gzip/1.6-GCC-4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,072 modules.py:634 INFO Result for existence check of gzip/1.6-GCC-4.9.2 module: False +== 2020-11-04 15:01:16,072 easyconfig.py:2074 INFO Found loaded index for /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs +== 2020-11-04 15:01:16,072 easyconfig.py:2250 INFO Minimally resolving dependency {'full_mod_name': None, 'short_mod_name': None, 'name': 'gzip', 'version': '1.6', 'versionsuffix': '', 'toolchain': {'name': 'GCC', 'version': '4.9.2'}, 'toolchain_inherited': True, 'system': False, 'hidden': False, 'build_only': True, 'external_module': False, 'external_module_metadata': {}} using toolchain {'name': 'GCC', 'version': '4.9.2'} +== 2020-11-04 15:01:16,072 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:16,072 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:16,073 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:16,073 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:16,073 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:16,073 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:16,073 modules.py:606 INFO Checking whether binutils/2.25-GCCcore-4.9.3 exists... +== 2020-11-04 15:01:16,073 modules.py:627 INFO Module binutils/2.25-GCCcore-4.9.3 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,074 modules.py:634 INFO Result for existence check of binutils/2.25-GCCcore-4.9.3 module: False +== 2020-11-04 15:01:16,075 modules.py:606 INFO Checking whether binutils/2.26-GCCcore-4.9.3 exists... +== 2020-11-04 15:01:16,075 modules.py:627 INFO Module binutils/2.26-GCCcore-4.9.3 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,076 modules.py:634 INFO Result for existence check of binutils/2.26-GCCcore-4.9.3 module: False +== 2020-11-04 15:01:16,076 modules.py:606 INFO Checking whether bzip2/1.0.6-GCC-4.9.2 exists... +== 2020-11-04 15:01:16,076 modules.py:627 INFO Module bzip2/1.0.6-GCC-4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,077 modules.py:634 INFO Result for existence check of bzip2/1.0.6-GCC-4.9.2 module: False +== 2020-11-04 15:01:16,077 build_log.py:265 INFO resolving dependencies ... +== 2020-11-04 15:01:16,077 modules.py:606 INFO Checking whether GCCcore/4.9.3 exists... +== 2020-11-04 15:01:16,077 modules.py:614 INFO Module GCCcore/4.9.3 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,215 modules.py:627 INFO Module GCCcore/4.9.3 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,218 modules.py:634 INFO Result for existence check of GCCcore/4.9.3 module: False +== 2020-11-04 15:01:16,219 modules.py:606 INFO Checking whether GCCcore/4.9.3 exists... +== 2020-11-04 15:01:16,219 modules.py:614 INFO Module GCCcore/4.9.3 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,219 modules.py:627 INFO Module GCCcore/4.9.3 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,219 modules.py:634 INFO Result for existence check of GCCcore/4.9.3 module: False +== 2020-11-04 15:01:16,219 modules.py:606 INFO Checking whether gzip/1.6-GCC-4.9.2 exists... +== 2020-11-04 15:01:16,220 modules.py:614 INFO Module gzip/1.6-GCC-4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,392 modules.py:627 INFO Module gzip/1.6-GCC-4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,393 modules.py:634 INFO Result for existence check of gzip/1.6-GCC-4.9.2 module: False +== 2020-11-04 15:01:16,393 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,393 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,541 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,544 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,545 robot.py:432 INFO Robot: resolving dependency {'name': 'GCCcore', 'version': '4.9.3', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCCcore/4.9.3', 'short_mod_name': 'GCCcore/4.9.3', 'system': True} with /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb +== 2020-11-04 15:01:16,545 easyconfig.py:2146 INFO Contents of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb verified against easyconfig filename, matches {'name': 'GCCcore', 'version': '4.9.3', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCCcore/4.9.3', 'short_mod_name': 'GCCcore/4.9.3', 'system': True} +== 2020-11-04 15:01:16,548 robot.py:432 INFO Robot: resolving dependency {'name': 'GCCcore', 'version': '4.9.3', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCCcore/4.9.3', 'short_mod_name': 'GCCcore/4.9.3', 'system': True} with /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb +== 2020-11-04 15:01:16,548 easyconfig.py:2146 INFO Contents of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb verified against easyconfig filename, matches {'name': 'GCCcore', 'version': '4.9.3', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCCcore/4.9.3', 'short_mod_name': 'GCCcore/4.9.3', 'system': True} +== 2020-11-04 15:01:16,550 robot.py:432 INFO Robot: resolving dependency {'full_mod_name': 'gzip/1.6-GCC-4.9.2', 'short_mod_name': 'gzip/1.6-GCC-4.9.2', 'name': 'gzip', 'version': '1.6', 'versionsuffix': '', 'toolchain': {'name': 'GCC', 'version': '4.9.2'}, 'toolchain_inherited': False, 'system': False, 'hidden': False, 'build_only': True, 'external_module': False, 'external_module_metadata': {}} with /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-GCC-4.9.2.eb +== 2020-11-04 15:01:16,551 easyconfig.py:444 INFO Performing quick parse to check for valid easyconfig file... +== 2020-11-04 15:01:16,553 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:16,553 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:16,554 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:16,554 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:16,554 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:16,555 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:16,555 easyconfig.py:453 INFO Obtained list of valid module classes: ['base', 'astro', 'bio', 'cae', 'chem', 'compiler', 'data', 'debugger', 'devel', 'geo', 'ide', 'lang', 'lib', 'math', 'mpi', 'numlib', 'perf', 'quantum', 'phys', 'system', 'toolchain', 'tools', 'vis'] +== 2020-11-04 15:01:16,556 easyconfig.py:1787 INFO Derived full easyblock module path for ConfigureMake: easybuild.easyblocks.generic.configuremake +== 2020-11-04 15:01:16,556 easyconfig.py:1835 INFO Successfully obtained class 'ConfigureMake' for easyblock 'ConfigureMake' (software name 'gzip') +== 2020-11-04 15:01:16,556 easyconfig.py:662 INFO Parsing easyconfig file /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-GCC-4.9.2.eb with rawcontent: ## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright (c) 2012-2013 Cyprus Institute / CaSToRC +# Authors:: Thekla Loizou +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_06-19.html +## + +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.6' + +homepage = 'http://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'GCC', 'version': '4.9.2'} + +# http://ftp.gnu.org/gnu/gzip/gzip-1.6.tar.gz +source_urls = [GNU_SOURCE] +sources = ['%(name)s-%(version)s.tar.gz'] + +# make sure the gzip, gunzip and compress binaries are available after installation +sanity_check_paths = { + 'files': ['bin/gunzip', 'bin/gzip', 'bin/uncompress'], + 'dirs': [], +} + +moduleclass = 'tools' + +== 2020-11-04 15:01:16,557 parser.py:139 INFO Type checking of easyconfig parameter values passed! +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter description: value gzip (GNU zip) is a popular data compression program as a replacement for compress (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter easyblock: value ConfigureMake (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter homepage: value http://www.gnu.org/software/gzip/ (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter moduleclass: value tools (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter name: value gzip (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter sanity_check_paths: value {'files': ['bin/gunzip', 'bin/gzip', 'bin/uncompress'], 'dirs': []} (type: ) +== 2020-11-04 15:01:16,557 easyconfig.py:643 INFO setting easyconfig parameter source_urls: value ['https://ftpmirror.gnu.org/gnu/%(namelower)s'] (type: ) +== 2020-11-04 15:01:16,558 easyconfig.py:643 INFO setting easyconfig parameter sources: value ['%(name)s-%(version)s.tar.gz'] (type: ) +== 2020-11-04 15:01:16,558 easyconfig.py:643 INFO setting easyconfig parameter toolchain: value {'name': 'GCC', 'version': '4.9.2'} (type: ) +== 2020-11-04 15:01:16,558 easyconfig.py:643 INFO setting easyconfig parameter version: value 1.6 (type: ) +== 2020-11-04 15:01:16,558 easyconfig.py:704 INFO Parsing dependency specifications... +== 2020-11-04 15:01:16,558 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:16,559 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gzip', github_account='gzip', name='gzip', nameletter='g', nameletterlower='g', namelower='gzip', toolchain_name='GCC', toolchain_version='4.9.2', version='1.6', version_major='1', version_major_minor='1.6', version_minor='6', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:16,559 easyconfig.py:793 INFO Validating easyconfig +== 2020-11-04 15:01:16,559 easyconfig.py:798 INFO Checking OS dependencies +== 2020-11-04 15:01:16,560 easyconfig.py:853 INFO OS dependencies ok: [] +== 2020-11-04 15:01:16,560 easyconfig.py:803 INFO Checking skipsteps +== 2020-11-04 15:01:16,560 easyconfig.py:808 INFO Checking build option lists +== 2020-11-04 15:01:16,560 easyconfig.py:811 INFO Checking licenses +== 2020-11-04 15:01:16,560 easyconfig.py:2146 INFO Contents of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-GCC-4.9.2.eb verified against easyconfig filename, matches {'full_mod_name': 'gzip/1.6-GCC-4.9.2', 'short_mod_name': 'gzip/1.6-GCC-4.9.2', 'name': 'gzip', 'version': '1.6', 'versionsuffix': '', 'toolchain': {'name': 'GCC', 'version': '4.9.2'}, 'toolchain_inherited': False, 'system': False, 'hidden': False, 'build_only': True, 'external_module': False, 'external_module_metadata': {}} +== 2020-11-04 15:01:16,562 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,562 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,562 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,562 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,563 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,563 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,563 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,563 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,563 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,563 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,563 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,564 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,564 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,564 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,564 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,564 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,565 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,565 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,565 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,565 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,565 modules.py:606 INFO Checking whether GCC/4.9.2 exists... +== 2020-11-04 15:01:16,565 modules.py:614 INFO Module GCC/4.9.2 not found in list of available modules, checking via 'module show'... +== 2020-11-04 15:01:16,565 modules.py:627 INFO Module GCC/4.9.2 not found via module avail/show, checking whether it is a wrapper +== 2020-11-04 15:01:16,566 modules.py:634 INFO Result for existence check of GCC/4.9.2 module: False +== 2020-11-04 15:01:16,566 robot.py:432 INFO Robot: resolving dependency {'name': 'GCC', 'version': '4.9.2', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCC/4.9.2', 'short_mod_name': 'GCC/4.9.2', 'system': True} with /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb +== 2020-11-04 15:01:16,566 easyconfig.py:2146 INFO Contents of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb verified against easyconfig filename, matches {'name': 'GCC', 'version': '4.9.2', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCC/4.9.2', 'short_mod_name': 'GCC/4.9.2', 'system': True} +== 2020-11-04 15:01:16,567 robot.py:432 INFO Robot: resolving dependency {'name': 'GCC', 'version': '4.9.2', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCC/4.9.2', 'short_mod_name': 'GCC/4.9.2', 'system': True} with /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb +== 2020-11-04 15:01:16,567 easyconfig.py:2146 INFO Contents of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb verified against easyconfig filename, matches {'name': 'GCC', 'version': '4.9.2', 'toolchain': {'name': 'system', 'version': ''}, 'versionsuffix': '', 'parsed': True, 'hidden': False, 'full_mod_name': 'GCC/4.9.2', 'short_mod_name': 'GCC/4.9.2', 'system': True} +== 2020-11-04 15:01:16,568 robot.py:468 INFO Dependency resolution complete, building as follows: [{'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb', 'short_mod_name': 'GCCcore/4.9.3', 'full_mod_name': 'GCCcore/4.9.3', 'dependencies': [], 'builddependencies': [], 'hiddendependencies': [], 'hidden': False}, {'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb', 'short_mod_name': 'binutils/2.25-GCCcore-4.9.3', 'full_mod_name': 'binutils/2.25-GCCcore-4.9.3', 'dependencies': [], 'builddependencies': [], 'hiddendependencies': [], 'hidden': False}, {'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb', 'short_mod_name': 'binutils/2.26-GCCcore-4.9.3', 'full_mod_name': 'binutils/2.26-GCCcore-4.9.3', 'dependencies': [], 'builddependencies': [], 'hiddendependencies': [], 'hidden': False}, {'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb', 'short_mod_name': 'GCC/4.9.2', 'full_mod_name': 'GCC/4.9.2', 'dependencies': [], 'builddependencies': [], 'hiddendependencies': [], 'hidden': False}, {'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-GCC-4.9.2.eb', 'short_mod_name': 'gzip/1.6-GCC-4.9.2', 'full_mod_name': 'gzip/1.6-GCC-4.9.2', 'dependencies': [], 'builddependencies': [], 'hiddendependencies': [], 'hidden': False}, {'ec': , 'spec': '/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/b/bzip2/bzip2-1.0.6-GCC-4.9.2.eb', 'short_mod_name': 'bzip2/1.0.6-GCC-4.9.2', 'full_mod_name': 'bzip2/1.0.6-GCC-4.9.2', 'dependencies': [], 'builddependencies': [{'full_mod_name': 'gzip/1.6-GCC-4.9.2', 'short_mod_name': 'gzip/1.6-GCC-4.9.2', 'name': 'gzip', 'version': '1.6', 'versionsuffix': '', 'toolchain': {'name': 'GCC', 'version': '4.9.2'}, 'toolchain_inherited': False, 'system': False, 'hidden': False, 'build_only': True, 'external_module': False, 'external_module_metadata': {}}], 'hiddendependencies': [], 'hidden': False}] +== 2020-11-04 15:01:16,569 build_log.py:265 INFO processing EasyBuild easyconfig /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb +== 2020-11-04 15:01:16,569 easyblock.py:3255 INFO Resetting environment +== 2020-11-04 15:01:16,569 environment.py:118 INFO Unsetting environment variable PYTHONPATH (value: /user/gent/438/vsc43810/easybuild/easybuild-framework:/user/gent/438/vsc43810/easybuild/easybuild-easyblocks:/user/gent/438/vsc43810/easybuild/easybuild-easyconfigs) +== 2020-11-04 15:01:16,569 easyconfig.py:1787 INFO Derived full easyblock module path for EB_toy: easybuild.easyblocks.toy +== 2020-11-04 15:01:16,569 easyconfig.py:1835 INFO Successfully obtained class 'EB_toy' for easyblock 'EB_toy' (software name 'GCCcore') +== 2020-11-04 15:01:16,570 environment.py:97 INFO Environment variable LMOD_QUIET set to 1 (previous value: '1') +== 2020-11-04 15:01:16,570 environment.py:97 INFO Environment variable LMOD_IGNORE_CACHE set to 1 (previous value: '1') +== 2020-11-04 15:01:16,570 environment.py:97 INFO Environment variable LMOD_REDIRECT set to no (previous value: 'no') +== 2020-11-04 15:01:16,570 environment.py:97 INFO Environment variable LMOD_EXTENDED_DEFAULT set to no (previous value: 'no') +== 2020-11-04 15:01:16,570 modules.py:291 INFO Full path for Lmod command is /usr/share/lmod/lmod/libexec/lmod, so using it +== 2020-11-04 15:01:16,571 modules.py:435 INFO Prepended list of module paths with path used by EasyBuild: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:16,571 easyblock.py:280 INFO This is EasyBuild 4.3.2.dev0 (framework: 4.3.1.dev0, easyblocks: 4.3.2.dev0) on host gligar05.gastly.os. +== 2020-11-04 15:01:16,571 easyblock.py:286 INFO This is easyblock EB_toy from module easybuild.easyblocks.toy (/kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/easybuild/easyblocks/t/toy.py) +== 2020-11-04 15:01:16,572 easyblock.py:894 INFO Build dir set to /tmp/eb-kqyr9omy/eb-cugnzcm6/tmpujd2gefp/GCCcore/4.9.3/system-system +== 2020-11-04 15:01:16,572 easyblock.py:954 INFO Software install dir set to /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/GCCcore/4.9.3 +== 2020-11-04 15:01:16,572 easyblock.py:959 INFO Module install dir set to /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/modules/all +== 2020-11-04 15:01:16,572 easyblock.py:265 INFO Init completed for application name GCCcore version 4.9.3 +== 2020-11-04 15:01:16,572 environment.py:97 INFO Environment variable TOY set to GCCcore-4.9.3 (previously undefined) +== 2020-11-04 15:01:16,572 easyblock.py:3273 INFO Obtained application instance of for GCCcore (easyblock: EB_toy) +== 2020-11-04 15:01:16,572 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:16,573 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gcccore', github_account='gcccore', name='GCCcore', nameletter='G', nameletterlower='g', namelower='gcccore', toolchain_name='system', toolchain_version='system', version='4.9.3', version_major='4', version_major_minor='4.9', version_minor='9', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:16,573 one.py:159 INFO Skipping reformatting value for parameter 'toolchain' +== 2020-11-04 15:01:16,574 filetools.py:1513 INFO Creating directory /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/reprod_20201104150116_15135 (parents: True, set_gid: False, sticky: False) +== 2020-11-04 15:01:16,574 easyblock.py:3476 INFO Dumped easyconfig instance to /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/reprod_20201104150116_15135/GCCcore-4.9.3.eb +== 2020-11-04 15:01:16,575 filetools.py:1513 INFO Creating directory /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/reprod_20201104150116_15135/easyblocks (parents: True, set_gid: False, sticky: False) +== 2020-11-04 15:01:16,575 filetools.py:2032 INFO /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/easybuild/easyblocks/t/toy.py copied to /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/reprod_20201104150116_15135/easyblocks/toy.py +== 2020-11-04 15:01:16,575 easyblock.py:3456 INFO Dumped easyblock toy.py required for reproduction to /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/reprod_20201104150116_15135/easyblocks +== 2020-11-04 15:01:16,575 easyblock.py:1691 INFO Number of iterations to perform for central part of installation procedure: 1 +== 2020-11-04 15:01:16,576 build_log.py:265 INFO building and installing GCCcore/4.9.3... +== 2020-11-04 15:01:16,576 filetools.py:1615 INFO Lock /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock does not exist +== 2020-11-04 15:01:16,576 filetools.py:1556 INFO Creating lock at /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock... +== 2020-11-04 15:01:16,576 filetools.py:1513 INFO Creating directory /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock (parents: True, set_gid: False, sticky: False) +== 2020-11-04 15:01:16,576 filetools.py:1565 INFO Lock created: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock +== 2020-11-04 15:01:16,576 build_log.py:265 INFO fetching files... +== 2020-11-04 15:01:16,577 easyblock.py:3033 INFO Starting fetch step +== 2020-11-04 15:01:16,577 easyconfig.py:1600 INFO Generating template values... +== 2020-11-04 15:01:16,577 easyconfig.py:1619 INFO Template values: arch='x86_64', bitbucket_account='gcccore', builddir='/tmp/eb-kqyr9omy/eb-cugnzcm6/tmpujd2gefp/GCCcore/4.9.3/system-system', github_account='gcccore', installdir='/tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/GCCcore/4.9.3', name='GCCcore', nameletter='G', nameletterlower='g', namelower='gcccore', toolchain_name='system', toolchain_version='system', version='4.9.3', version_major='4', version_major_minor='4.9', version_minor='9', versionprefix='', versionsuffix='' +== 2020-11-04 15:01:16,577 easyblock.py:3039 INFO Running method fetch_step part of step fetch +== 2020-11-04 15:01:16,577 easyblock.py:1800 WARNING Easyconfig does not specify an EasyBuild-version (key 'easybuild_version')! Assuming the latest version +== 2020-11-04 15:01:16,577 filetools.py:456 INFO Command eb found at /user/gent/438/vsc43810/easybuild/easybuild-framework/eb +== 2020-11-04 15:01:16,578 tools.py:264 INFO Location to 'eb' script (found via $PATH): /user/gent/438/vsc43810/easybuild/easybuild-framework/eb +== 2020-11-04 15:01:16,578 tools.py:282 INFO Not considering /user/gent/438/vsc43810/easybuild (no easybuild/easyconfigs subdir found) +== 2020-11-04 15:01:16,578 tools.py:290 INFO Also considering installation prefix /kyukon/home/gent/438/vsc43810/easybuild (via resolved path to 'eb')... +== 2020-11-04 15:01:16,903 filetools.py:623 WARNING URL http://ftpmirror.gnu.org/gcccore/gcccore-4.9.3/gcccore-4.9.3.tar.bz2 was not found (HTTP response code 404), not trying again +== 2020-11-04 15:01:16,904 filetools.py:649 WARNING Download of http://ftpmirror.gnu.org/gcccore/gcccore-4.9.3/gcccore-4.9.3.tar.bz2 to /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/sources/g/GCCcore/gcccore-4.9.3.tar.bz2 failed, done trying +== 2020-11-04 15:01:16,965 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/easybuild-framework/easybuild/base/exceptions.py:124 in __init__): Couldn't find file gcccore-4.9.3.tar.bz2 anywhere, and downloading it didn't work either... Paths attempted (in order): /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/gcccore-4.9.3.tar.bz2, /user/gent/438/vsc43810/easybuild/easybuild-easyconfigs/easybuild/easyconfigs/g/GCCcore/gcccore-4.9.3.tar.bz2, /user/gent/438/vsc43810/easybuild/easybuild-easyconfigs/easybuild/easyconfigs/GCCcore/gcccore-4.9.3.tar.bz2, /user/gent/438/vsc43810/easybuild/easybuild-easyconfigs/easybuild/easyconfigs/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/sources/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/sources/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/sandbox/sources/gcccore-4.9.3.tar.bz2, http://ftpmirror.gnu.org/gcccore/gcccore-4.9.3/gcccore-4.9.3.tar.bz2 (at easybuild/easybuild-framework/easybuild/framework/easyblock.py:816 in obtain_file) +== 2020-11-04 15:01:16,965 filetools.py:1623 INFO Removing lock /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock... +== 2020-11-04 15:01:16,966 filetools.py:330 INFO Path /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock successfully removed. +== 2020-11-04 15:01:16,966 filetools.py:1627 INFO Lock removed: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmptc_hgmxq/software/.locks/_tmp_eb-kqyr9omy_eb-cugnzcm6_tmptc_hgmxq_software_GCCcore_4.9.3.lock +== 2020-11-04 15:01:16,966 easyblock.py:3311 WARNING build failed (first 300 chars): Couldn't find file gcccore-4.9.3.tar.bz2 anywhere, and downloading it didn't work either... Paths attempted (in order): /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild +== 2020-11-04 15:01:16,966 easyblock.py:295 INFO Closing log for application name GCCcore version 4.9.3 +== 2020-11-04 15:01:16,966 build_log.py:265 INFO FAILED: Installation ended unsuccessfully (build directory: /tmp/eb-kqyr9omy/eb-cugnzcm6/tmpujd2gefp/GCCcore/4.9.3/system-system): build failed (first 300 chars): Couldn't find file gcccore-4.9.3.tar.bz2 anywhere, and downloading it didn't work either... Paths attempted (in order): /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild (took 0 sec) +== 2020-11-04 15:01:16,967 build_log.py:265 INFO Results of the build can be found in the log file(s) /tmp/eb-kqyr9omy/eb-cugnzcm6/eb-ykrzsf93/eb-32rcb9i3/easybuild-GCCcore-4.9.3-20201104.150116.kpkcp.log +== 2020-11-04 15:01:16,968 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/easybuild-framework/easybuild/base/exceptions.py:124 in __init__): build failed (first 300 chars): Couldn't find file gcccore-4.9.3.tar.bz2 anywhere, and downloading it didn't work either... Paths attempted (in order): /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild (at easybuild/easybuild-framework/easybuild/main.py:119 in build_and_install_software) +== 2020-11-04 15:01:16,969 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/easybuild-framework/easybuild/base/exceptions.py:124 in __init__): Build of /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb failed (err: "build failed (first 300 chars): Couldn't find file gcccore-4.9.3.tar.bz2 anywhere, and downloading it didn't work either... Paths attempted (in order): /kyukon/home/gent/438/vsc43810/easybuild/easybuild-framework/test/framework/easyconfigs/test_ecs/g/GCCcore/g/GCCcore/gcccore-4.9.3.tar.bz2, /kyukon/home/gent/438/vsc43810/easybuild") (at easybuild/easybuild-framework/easybuild/main.py:151 in build_and_install_software) +