-
Notifications
You must be signed in to change notification settings - Fork 211
Closed
Labels
bug reporteasystackIssues and PRs related to easystack filesIssues and PRs related to easystack files
Milestone
Description
We are trying to use Easystack for building software. We noticed some issues:
- Whenever a SYSTEM toolchain comes up and the software version is float (e.g. 2.32) or integer (e.g. 20150215) EB crashes.
You can find below examples from the Easystack file that break:
binutils:
toolchains:
SYSTEM:
versions:
2.32:
2.30:
2.35:
2.34:
Autotools:
toolchains:
SYSTEM:
versions:
20150215:
In both cases, when using other toolchains e.g. GCCcore it works as expected. Only when there is a combination of the SYSTEM toolchain and the float or int version the issue occurs.
You can find below the error we are getting:
== 2021-05-19 10:25:11,710 easystack.py:223 INFO Building from easystack: 'easystack.yaml'
Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/nvme/h/buildsets/eb_cyclone/software/EasyBuild/4.3.4/lib/python3.6/site-packages/easybuild/main.py", line 544, in <module>
main()
File "/nvme/h/buildsets/eb_cyclone/software/EasyBuild/4.3.4/lib/python3.6/site-packages/easybuild/main.py", line 231, in main
orig_paths, general_options = parse_easystack(options.easystack)
File "/nvme/h/buildsets/eb_cyclone/software/EasyBuild/4.3.4/lib/python3.6/site-packages/easybuild/framework/easystack.py", line 228, in parse_easystack
easyconfig_names = easystack.compose_ec_filenames()
File "/nvme/h/buildsets/eb_cyclone/software/EasyBuild/4.3.4/lib/python3.6/site-packages/easybuild/framework/easystack.py", line 59, in compose_ec_filenames
'versionsuffix': sw.versionsuffix,
File "/nvme/h/buildsets/eb_cyclone/software/EasyBuild/4.3.4/lib/python3.6/site-packages/easybuild/tools/module_naming_scheme/utilities.py", line 63, in det_full_ec_version
ecver = ''.join([x for x in [ec.get('versionprefix', ''), ecver, ec.get('versionsuffix', '')] if x])
TypeError: sequence item 0: expected string, float found
- Another issue comes up when the software version is float with zero at the end. For example 2019.10 or 9.50. Whenever we have such version EasyBuild is looking for 2019.1 or 9.5 and crashes. For example we have:
Ghostscript:
toolchains:
GCCcore-8.3.0:
versions:
9.50:
EasyBuild is looking for Ghostscript version 9.5 instead of 9.50 and we get a missing config error.
- EasyBuild ignores the "_" in the version. For example:
XML-Parser:
toolchains:
GCCcore-8.3.0:
versions:
2.44_01:
versionsuffix: '-Perl-5.28.0'
EB is looking for XML-Parser-2.4401-GCCcore-8.3.0-Perl-5.28.0.eb
instead of XML-Parser-2.44_01-GCCcore-8.3.0-Perl-5.28.0.eb
Metadata
Metadata
Assignees
Labels
bug reporteasystackIssues and PRs related to easystack filesIssues and PRs related to easystack files