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 incompatible with python3 #3027

Closed
bartoldeman opened this issue Sep 23, 2019 · 1 comment · Fixed by #3186
Closed

Bootstrap script incompatible with python3 #3027

bartoldeman opened this issue Sep 23, 2019 · 1 comment · Fixed by #3186
Milestone

Comments

@bartoldeman
Copy link
Contributor

As observed in #3017 bootstrap_eb.py is not compatible with Python3. It relies on /usr/bin/env python being Python 2 (which is still the case on most but not all Linux distributions).

Fixing that is not a simple case of translating the file, as it included a base64'ed gzipped setuptools helper that is outdated.

One way that seems to work for stage1 is something akin too:

wget https://bootstrap.pypa.io/get-pip.py
export EB_TMPLOC=<sometmplocation like /tmp/tmpRG7iSQ/eb_stage1>
export PYTHONPATH=$EB_TMPLOC
python3 get-pip.py --prefix=$EB_TMPLOC
$EB_TMPLOC/bin/pip --prefix=$EB_TMPLOC easybuild

after that it can do stage2 as usual, since eb is installed now.

I'm just floating this as an idea since it's a complete redesign of the stage1 of the bootstrap.

@boegel boegel added this to the next release (4.0.1) milestone Sep 23, 2019
@boegel
Copy link
Member

boegel commented Sep 23, 2019

I started working on this, and it's indeed a bit more work that just porting the script itself.

The good thing is that since EasyBuild 4.0 no longer requires setuptools at all, we can actually move get rid of the base64'd distribute installation script (and just check if setuptools is available in case somebody installs an older version of EasyBuild, rather than trying to install it ourselves which is a bit of a desperate attempt anyway).

That also means no longer using easy_install during stage 1 (which is provided by setuptools), we should just use setup.py install (which implies downloading and unpacking the source tarballs first).

Kickstarted the effort in #3028...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants