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

20.0.3: pypy could be relative symlinks for executables? #1596

Closed
asottile opened this issue Feb 12, 2020 · 1 comment · Fixed by #1610
Closed

20.0.3: pypy could be relative symlinks for executables? #1596

asottile opened this issue Feb 12, 2020 · 1 comment · Fixed by #1610

Comments

@asottile
Copy link
Contributor

this is a very minor difference with previous versions, but is making it difficult to properly fix virtualenv-tools3

$ virtualenv --version
16.7.9
$ virtualenv venv -p pypy
Running virtualenv with interpreter /home/asottile/bin/pypy
Already using interpreter /home/asottile/bin/pypy
New pypy executable in /tmp/venv/bin/pypy
Installing setuptools, pip, wheel...
done.
$ ls -al ./venv/bin/
total 64
drwxr-xr-x 2 asottile asottile 4096 Feb 12 09:36 .
drwxr-xr-x 8 asottile asottile 4096 Feb 12 09:36 ..
-rw-r--r-- 1 asottile asottile 2198 Feb 12 09:36 activate
-rw-r--r-- 1 asottile asottile 1417 Feb 12 09:36 activate.csh
-rw-r--r-- 1 asottile asottile 3082 Feb 12 09:36 activate.fish
-rw-r--r-- 1 asottile asottile 1751 Feb 12 09:36 activate.ps1
-rw-r--r-- 1 asottile asottile 1517 Feb 12 09:36 activate_this.py
-rwxr-xr-x 1 asottile asottile  232 Feb 12 09:36 easy_install
-rwxr-xr-x 1 asottile asottile  232 Feb 12 09:36 easy_install-2.7
lrwxrwxrwx 1 asottile asottile   58 Feb 12 09:36 libpypy-c.so -> /home/asottile/opt/pypy2.7-v7.3.0-linux64/bin/libpypy-c.so
-rwxr-xr-x 1 asottile asottile  223 Feb 12 09:36 pip
-rwxr-xr-x 1 asottile asottile  223 Feb 12 09:36 pip2
-rwxr-xr-x 1 asottile asottile  223 Feb 12 09:36 pip2.7
-rwxr-xr-x 1 asottile asottile 6296 Feb 12 09:36 pypy
lrwxrwxrwx 1 asottile asottile    4 Feb 12 09:36 python -> pypy
lrwxrwxrwx 1 asottile asottile    4 Feb 12 09:36 python2 -> pypy
lrwxrwxrwx 1 asottile asottile    4 Feb 12 09:36 python2.7 -> pypy
-rwxr-xr-x 1 asottile asottile 2327 Feb 12 09:36 python-config
-rwxr-xr-x 1 asottile asottile  210 Feb 12 09:36 wheel

(notice python / python2 / python2.7 are relative symlinks)

if we continue this and make a 20.x virtualenv from that:

$ ./venv/bin/pip install virtualenv -qq
$ ./venv/bin/virtualenv --version
virtualenv 20.0.3 from /tmp/venv/site-packages/virtualenv/__init__.pyc
$ ./venv/bin/virtualenv venvpp
created virtual environment in 202ms PyPy2Posix(dest=/tmp/venvpp, clear=False, global=False) with seeder FromAppData pip=latest setuptools=latest wheel=latest app_data_dir=/home/asottile/.local/share/virtualenv/seed-v1 via=copy
$ ls -al venvpp/bin/
total 72
drwxr-xr-x 2 asottile asottile 4096 Feb 12 09:37 .
drwxr-xr-x 6 asottile asottile 4096 Feb 12 09:37 ..
-rw-r--r-- 1 asottile asottile 2200 Feb 12 09:37 activate
-rw-r--r-- 1 asottile asottile 1419 Feb 12 09:37 activate.csh
-rw-r--r-- 1 asottile asottile 3050 Feb 12 09:37 activate.fish
-rw-r--r-- 1 asottile asottile 1751 Feb 12 09:37 activate.ps1
-rw-r--r-- 1 asottile asottile 1185 Feb 12 09:37 activate_this.py
-rwxr-xr-x 1 asottile asottile  234 Feb 12 09:37 easy_install
-rwxr-xr-x 1 asottile asottile  234 Feb 12 09:37 easy_install2
-rwxr-xr-x 1 asottile asottile  234 Feb 12 09:37 easy_install-2.7
lrwxrwxrwx 1 asottile asottile   58 Feb 12 09:37 libpypy-c.so -> /home/asottile/opt/pypy2.7-v7.3.0-linux64/bin/libpypy-c.so
-rwxr-xr-x 1 asottile asottile  225 Feb 12 09:37 pip
-rwxr-xr-x 1 asottile asottile  225 Feb 12 09:37 pip2
-rwxr-xr-x 1 asottile asottile  225 Feb 12 09:37 pip-2.7
-rwxr-xr-x 1 asottile asottile 6296 Feb 12 09:37 pypy
lrwxrwxrwx 1 asottile asottile   20 Feb 12 09:37 python -> /tmp/venvpp/bin/pypy
lrwxrwxrwx 1 asottile asottile   20 Feb 12 09:37 python2 -> /tmp/venvpp/bin/pypy
-rwxr-xr-x 1 asottile asottile  212 Feb 12 09:37 wheel
-rwxr-xr-x 1 asottile asottile  212 Feb 12 09:37 wheel2
-rwxr-xr-x 1 asottile asottile  212 Feb 12 09:37 wheel-2.7

and here they are symlinks but absolute (making it difficult to relocate)

also it seems python2.7 is missing, but that's separate

I'd be happy to help write a patch -- though I need to re-figure-out the new code layout :)

@gaborbernat
Copy link
Contributor

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

Successfully merging a pull request may close this issue.

2 participants