Package: pypy
Version: 2.6.1+dfsg-2
Severity: normal

Dear Maintainer,

Why pypy is specified as the interpreter for a virtualenv, the layout
is significantly different than the layout for cpython virtualenvs.

I noticed this because with cpython, it is possible to install more than
one executable to the same virtualenv directory, and the files do not
interfere, but with pypy they do.

I believe this is Debian-specific, since upstreams uses cpython's
site-packages by design (at least, the pypy3 build does, I haven't
needed to install upstream pypy2).

In particular:

* pypy installs `include/` as a symlink instead of a directory containing
  symlinks (can be fixed with --always-copy, but ugh)

* pypy installs site-packages/ at the top level instead of in
  lib/python2.7/

$ cat > test-script.sh << EOF
#!/bin/sh
set -e
mkdir -p venv-tests
cd venv-tests
for python in python2.7 pypy
do
    rm -rf venv-$python
    virtualenv -p $python venv-$python
    echo == Files for $python ==
    find venv-$python | grep -v dist-info/ | sed 's:[^/]*\.py[coi]\?$:*.py:' | 
sort -u
    echo
done
EOF
$ sh test-script.sh
New python executable in venv-python2.7/bin/python2.7
Also creating executable in venv-python2.7/bin/python
Installing setuptools, pip...done.
Running virtualenv with interpreter /usr/bin/python2.7
== Files for python2.7 ==
venv-python2.7
venv-python2.7/bin
venv-python2.7/bin/activate
venv-python2.7/bin/activate.csh
venv-python2.7/bin/activate.fish
venv-python2.7/bin/easy_install
venv-python2.7/bin/easy_install-2.7
venv-python2.7/bin/pip
venv-python2.7/bin/pip2
venv-python2.7/bin/pip2.7
venv-python2.7/bin/*.py
venv-python2.7/bin/python
venv-python2.7/bin/python2
venv-python2.7/bin/python2.7
venv-python2.7/include
venv-python2.7/include/python2.7
venv-python2.7/lib
venv-python2.7/lib/python2.7
venv-python2.7/lib/python2.7/distutils
venv-python2.7/lib/python2.7/distutils/distutils.cfg
venv-python2.7/lib/python2.7/distutils/*.py
venv-python2.7/lib/python2.7/encodings
venv-python2.7/lib/python2.7/lib-dynload
venv-python2.7/lib/python2.7/no-global-site-packages.txt
venv-python2.7/lib/python2.7/orig-prefix.txt
venv-python2.7/lib/python2.7/*.py
venv-python2.7/lib/python2.7/site-packages
venv-python2.7/lib/python2.7/site-packages/_markerlib
venv-python2.7/lib/python2.7/site-packages/_markerlib/*.py
venv-python2.7/lib/python2.7/site-packages/pip
venv-python2.7/lib/python2.7/site-packages/pip-1.5.6.dist-info
venv-python2.7/lib/python2.7/site-packages/pip/backwardcompat
venv-python2.7/lib/python2.7/site-packages/pip/backwardcompat/*.py
venv-python2.7/lib/python2.7/site-packages/pip/commands
venv-python2.7/lib/python2.7/site-packages/pip/commands/*.py
venv-python2.7/lib/python2.7/site-packages/pip/*.py
venv-python2.7/lib/python2.7/site-packages/pip/vcs
venv-python2.7/lib/python2.7/site-packages/pip/vcs/*.py
venv-python2.7/lib/python2.7/site-packages/pkg_resources
venv-python2.7/lib/python2.7/site-packages/pkg_resources/*.py
venv-python2.7/lib/python2.7/site-packages/pkg_resources/_vendor
venv-python2.7/lib/python2.7/site-packages/pkg_resources/_vendor/packaging
venv-python2.7/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/*.py
venv-python2.7/lib/python2.7/site-packages/pkg_resources/_vendor/*.py
venv-python2.7/lib/python2.7/site-packages/*.py
venv-python2.7/lib/python2.7/site-packages/setuptools
venv-python2.7/lib/python2.7/site-packages/setuptools-18.3.1.dist-info
venv-python2.7/lib/python2.7/site-packages/setuptools/command
venv-python2.7/lib/python2.7/site-packages/setuptools/command/*.py
venv-python2.7/lib/python2.7/site-packages/setuptools/*.py
venv-python2.7/lib/python2.7/site-packages/setuptools/script (dev).tmpl
venv-python2.7/lib/python2.7/site-packages/setuptools/script.tmpl
venv-python2.7/lib/python-wheels
venv-python2.7/lib/python-wheels/chardet-2.3.0-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/colorama-0.3.3-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/distlib-0.2.1-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/html5lib-0.999-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/pip-1.5.6-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/requests-2.7.0-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/setuptools-18.3.1-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/six-1.10.0-py2.py3-none-any.whl
venv-python2.7/lib/python-wheels/urllib3-1.11-py2.py3-none-any.whl
venv-python2.7/local
venv-python2.7/local/bin
venv-python2.7/local/include
venv-python2.7/local/lib

New pypy executable in venv-pypy/bin/pypy
Installing setuptools, pip...done.
Running virtualenv with interpreter /usr/bin/pypy
== Files for pypy ==
venv-pypy
venv-pypy/bin
venv-pypy/bin/activate
venv-pypy/bin/activate.csh
venv-pypy/bin/activate.fish
venv-pypy/bin/easy_install
venv-pypy/bin/easy_install-2.7
venv-pypy/bin/pip
venv-pypy/bin/pip2
venv-pypy/bin/pip2.7
venv-pypy/bin/*.py
venv-pypy/bin/pypy
venv-pypy/bin/python
venv-pypy/bin/python2
venv-pypy/bin/python2.7
venv-pypy/include
venv-pypy/lib
venv-pypy/lib_pypy
venv-pypy/lib_pypy/*.py
venv-pypy/lib-python
venv-pypy/lib-python/2.7
venv-pypy/lib-python/2.7/distutils
venv-pypy/lib-python/2.7/distutils/distutils.cfg
venv-pypy/lib-python/2.7/distutils/*.py
venv-pypy/lib-python/2.7/distutils/__pycache__
venv-pypy/lib-python/2.7/distutils/__pycache__/*.py
venv-pypy/lib-python/2.7/encodings
venv-pypy/lib-python/2.7/no-global-site-packages.txt
venv-pypy/lib-python/2.7/orig-prefix.txt
venv-pypy/lib-python/2.7/*.py
venv-pypy/lib-python/2.7/__pycache__
venv-pypy/lib-python/2.7/__pycache__/*.py
venv-pypy/lib/python-wheels
venv-pypy/lib/python-wheels/chardet-2.3.0-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/colorama-0.3.3-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/distlib-0.2.1-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/html5lib-0.999-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/pip-1.5.6-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/requests-2.7.0-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/setuptools-18.3.1-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/six-1.10.0-py2.py3-none-any.whl
venv-pypy/lib/python-wheels/urllib3-1.11-py2.py3-none-any.whl
venv-pypy/site-packages
venv-pypy/site-packages/_markerlib
venv-pypy/site-packages/_markerlib/*.py
venv-pypy/site-packages/_markerlib/__pycache__
venv-pypy/site-packages/_markerlib/__pycache__/*.py
venv-pypy/site-packages/pip
venv-pypy/site-packages/pip-1.5.6.dist-info
venv-pypy/site-packages/pip/backwardcompat
venv-pypy/site-packages/pip/backwardcompat/*.py
venv-pypy/site-packages/pip/backwardcompat/__pycache__
venv-pypy/site-packages/pip/backwardcompat/__pycache__/*.py
venv-pypy/site-packages/pip/commands
venv-pypy/site-packages/pip/commands/*.py
venv-pypy/site-packages/pip/commands/__pycache__
venv-pypy/site-packages/pip/commands/__pycache__/*.py
venv-pypy/site-packages/pip/*.py
venv-pypy/site-packages/pip/__pycache__
venv-pypy/site-packages/pip/__pycache__/*.py
venv-pypy/site-packages/pip/vcs
venv-pypy/site-packages/pip/vcs/*.py
venv-pypy/site-packages/pip/vcs/__pycache__
venv-pypy/site-packages/pip/vcs/__pycache__/*.py
venv-pypy/site-packages/pkg_resources
venv-pypy/site-packages/pkg_resources/*.py
venv-pypy/site-packages/pkg_resources/__pycache__
venv-pypy/site-packages/pkg_resources/__pycache__/*.py
venv-pypy/site-packages/pkg_resources/_vendor
venv-pypy/site-packages/pkg_resources/_vendor/packaging
venv-pypy/site-packages/pkg_resources/_vendor/packaging/*.py
venv-pypy/site-packages/pkg_resources/_vendor/packaging/__pycache__
venv-pypy/site-packages/pkg_resources/_vendor/packaging/__pycache__/*.py
venv-pypy/site-packages/pkg_resources/_vendor/*.py
venv-pypy/site-packages/pkg_resources/_vendor/__pycache__
venv-pypy/site-packages/pkg_resources/_vendor/__pycache__/*.py
venv-pypy/site-packages/*.py
venv-pypy/site-packages/__pycache__
venv-pypy/site-packages/__pycache__/*.py
venv-pypy/site-packages/setuptools
venv-pypy/site-packages/setuptools-18.3.1.dist-info
venv-pypy/site-packages/setuptools/command
venv-pypy/site-packages/setuptools/command/*.py
venv-pypy/site-packages/setuptools/command/__pycache__
venv-pypy/site-packages/setuptools/command/__pycache__/*.py
venv-pypy/site-packages/setuptools/*.py
venv-pypy/site-packages/setuptools/__pycache__
venv-pypy/site-packages/setuptools/__pycache__/*.py
venv-pypy/site-packages/setuptools/script (dev).tmpl
venv-pypy/site-packages/setuptools/script.tmpl



-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (600, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.1.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages pypy depends on:
ii  dpkg          1.18.3
ii  libbz2-1.0    1.0.6-8
ii  libc6         2.19-22
ii  libexpat1     2.1.0-7
ii  libffi6       3.2.1-3
ii  libgdbm3      1.8.3-13.1
ii  libncurses5   6.0+20150810-1
ii  libsqlite3-0  3.8.11.1-1
ii  libssl1.0.0   1.0.2d-1
ii  libtinfo5     6.0+20150810-1
ii  pypy-lib      2.6.1+dfsg-2
ii  zlib1g        1:1.2.8.dfsg-2+b1

Versions of packages pypy recommends:
ii  libunwind-dev  1.1-4

Versions of packages pypy suggests:
ii  pypy-doc  2.6.1+dfsg-2
pn  pypy-tk   <none>

-- no debconf information

Reply via email to