Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bootstrap script doesn't take into account runtime dep on setuptools in recent vsc-base #1578

Closed
boegel opened this issue Jan 27, 2016 · 1 comment
Milestone

Comments

@boegel
Copy link
Member

boegel commented Jan 27, 2016

On a system where setuptools is not available yet, the EasyBuild bootstrap procedure fails as follows:

== sanity checking...
== FAILED: Installation ended unsuccessfully (build directory: /tmp/tmpRiTVcf/EasyBuild/2.6.0/dummy-dummy): build failed (first 300 chars): Sanity check failed: sanity check command eb --version exited with code 1 (output: Traceback (most recent call last):
  File "/users/staff/math/maffia/test/software/python/python/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/users/staff/m
== Results of the build can be found in the log file /tmp/eb-qcJVWH/easybuild-EasyBuild-2.6.0-20160126.162017.bVqpN.log
Traceback (most recent call last):
  File "bootstrap_eb.py", line 727, in <module>
    main()
  File "bootstrap_eb.py", line 537, in main
    stage2(tmpdir, templates, install_path, distribute_egg_dir, sourcepath)
  File "bootstrap_eb.py", line 455, in stage2
    easybuild_main()
  File "/tmp/tmpRiTVcf/eb_stage1/lib/python2.7/site-packages/easybuild_framework-2.6.0-py2.7.egg/easybuild/main.py", line 350, in main
    ecs_with_res = build_and_install_software(ordered_ecs, init_session_state, exit_on_failure=exit_on_failure)
  File "/tmp/tmpRiTVcf/eb_stage1/lib/python2.7/site-packages/easybuild_framework-2.6.0-py2.7.egg/easybuild/main.py", line 148, in build_and_install_software
    raise EasyBuildError(test_msg)
easybuild.tools.build_log.EasyBuildError: 'Build of /tmp/tmpRiTVcf/EasyBuild-2.6.0.eb failed (err: \'build failed (first 300 chars): Sanity check failed: sanity check command eb --version exited with code 1 (output: Traceback (most recent call last):\\n  File "/users/staff/math/maffia/test/software/python/python/lib/python2.7/runpy.py", line 162, in _run_module_as_main\\n    "__main__", fname, loader, pkg_name)\\n  File "/users/staff/m\’)'

The actual problem is this:

~/test/software/easybuild/software/EasyBuild/2.6.0/lib/python2.7/site-packages/vsc_base-2.4.16-py2.7.egg/vsc/__init__.py", line 29, in <module>
    import pkg_resources
ImportError: No module named pkg_resources

Recent versions of vsc-base have a runtime dependency on setuptools, but the bootstrap script is not taking this into account.

During stage 2, it's hard injecting the path to the temporary distribute installation from stage 0 in $PYTHONPATH through preinstallopts.
Because of this setuptools is not being installed when vsc-base (and vsc-install) are installed.

But when distribute is no longer available through $PYTHONPATH (e.g. during the sanity check), things fails because pkg_resources (provided by setuptools) is not available.

So, we need to drop the preinstallopts hack in stage 2, or handle it differently.

It's possible this can be fixed in the bootstrap script itself, but maybe changes to the EasyBuildMeta easyblock are required as well...

@boegel
Copy link
Member Author

boegel commented Mar 5, 2016

This problem is fixed by the change in #1655

@boegel boegel closed this as completed Mar 5, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant