+++ /dev/null
- docs/changes.rst | 3 ++
- virtualenv.py | 92 +++++++++++++++++++++++++++++---------------------------
- 2 files changed, 50 insertions(+), 45 deletions(-)
-
-diff --git a/docs/changes.rst b/docs/changes.rst
-index 80c3dc1..1d9c1fe 100644
---- a/docs/changes.rst
-+++ b/docs/changes.rst
-@@ -1,6 +1,9 @@
- Release History
- ===============
-
-+* Remove virtualenv file's path from directory when executing with a new
-+ python. Fixes issue #779, #763 (PR #805)
-+
- 13.1.2 (2015-08-23)
- ~~~~~~~~~~~~~~~~~~~
-
-diff --git a/virtualenv.py b/virtualenv.py
-index da25205..64e70d4 100755
---- a/virtualenv.py
-+++ b/virtualenv.py
-@@ -5,9 +5,22 @@
- __version__ = "13.1.2"
- virtualenv_version = __version__ # legacy
-
--import base64
--import sys
- import os
-+import sys
-+
-+# If we are running in a new interpreter to create a virtualenv,
-+# we do NOT want paths from our existing location interfering with anything,
-+# So we remove this file's directory from sys.path - most likely to be
-+# the previous interpreter's site-packages. Solves #705, #763, #779
-+if os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'):
-+ del_paths = []
-+ for path in sys.path:
-+ if os.path.realpath(os.path.dirname(__file__)) == os.path.realpath(path):
-+ del_paths.append(path)
-+ for path in del_paths:
-+ sys.path.remove(path)
-+
-+import base64
- import codecs
- import optparse
- import re
-@@ -23,6 +36,11 @@ import struct
- import subprocess
- import tarfile
-
-+try:
-+ import ConfigParser
-+except ImportError:
-+ import configparser as ConfigParser
-+
- if sys.version_info < (2, 6):
- print('ERROR: %s' % sys.exc_info()[1])
- print('ERROR: this script requires Python 2.6 or greater.')
-@@ -33,11 +51,6 @@ try:
- except NameError:
- basestring = str
-
--try:
-- import ConfigParser
--except ImportError:
-- import configparser as ConfigParser
--
- join = os.path.join
- py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1])
-
-@@ -1096,45 +1109,34 @@ def change_prefix(filename, dst_prefix):
-
- def copy_required_modules(dst_prefix, symlink):
- import imp
-- # If we are running under -p, we need to remove the current
-- # directory from sys.path temporarily here, so that we
-- # definitely get the modules from the site directory of
-- # the interpreter we are running under, not the one
-- # virtualenv.py is installed under (which might lead to py2/py3
-- # incompatibility issues)
-- _prev_sys_path = sys.path
-- if os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'):
-- sys.path = sys.path[1:]
-- try:
-- for modname in REQUIRED_MODULES:
-- if modname in sys.builtin_module_names:
-- logger.info("Ignoring built-in bootstrap module: %s" % modname)
-- continue
-- try:
-- f, filename, _ = imp.find_module(modname)
-- except ImportError:
-- logger.info("Cannot import bootstrap module: %s" % modname)
-+
-+ for modname in REQUIRED_MODULES:
-+ if modname in sys.builtin_module_names:
-+ logger.info("Ignoring built-in bootstrap module: %s" % modname)
-+ continue
-+ try:
-+ f, filename, _ = imp.find_module(modname)
-+ except ImportError:
-+ logger.info("Cannot import bootstrap module: %s" % modname)
-+ else:
-+ if f is not None:
-+ f.close()
-+ # special-case custom readline.so on OS X, but not for pypy:
-+ if modname == 'readline' and sys.platform == 'darwin' and not (
-+ is_pypy or filename.endswith(join('lib-dynload', 'readline.so'))):
-+ dst_filename = join(dst_prefix, 'lib', 'python%s' % sys.version[:3], 'readline.so')
-+ elif modname == 'readline' and sys.platform == 'win32':
-+ # special-case for Windows, where readline is not a
-+ # standard module, though it may have been installed in
-+ # site-packages by a third-party package
-+ pass
- else:
-- if f is not None:
-- f.close()
-- # special-case custom readline.so on OS X, but not for pypy:
-- if modname == 'readline' and sys.platform == 'darwin' and not (
-- is_pypy or filename.endswith(join('lib-dynload', 'readline.so'))):
-- dst_filename = join(dst_prefix, 'lib', 'python%s' % sys.version[:3], 'readline.so')
-- elif modname == 'readline' and sys.platform == 'win32':
-- # special-case for Windows, where readline is not a
-- # standard module, though it may have been installed in
-- # site-packages by a third-party package
-- pass
-- else:
-- dst_filename = change_prefix(filename, dst_prefix)
-- copyfile(filename, dst_filename, symlink)
-- if filename.endswith('.pyc'):
-- pyfile = filename[:-1]
-- if os.path.exists(pyfile):
-- copyfile(pyfile, dst_filename[:-1], symlink)
-- finally:
-- sys.path = _prev_sys_path
-+ dst_filename = change_prefix(filename, dst_prefix)
-+ copyfile(filename, dst_filename, symlink)
-+ if filename.endswith('.pyc'):
-+ pyfile = filename[:-1]
-+ if os.path.exists(pyfile):
-+ copyfile(pyfile, dst_filename[:-1], symlink)
-
-
- def subst_path(prefix_path, prefix, home_dir):
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- http://www.virtualenv.org/
- https://pypi.python.org/pypi/virtualenv
- https://github.com/pypa/virtualenv/
-"
-SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE="doc test"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- )"
-
-DOCS=( docs/index.rst docs/changes.rst )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.8.2-no-versioned-script.patch
- "${FILESDIR}"/${PN}-12.1.1-skip-broken-test.patch
- "${FILESDIR}"/${P}-PYTHONPATH-backport.patch
-)
-
-python_compile_all() {
- use doc && emake -C docs html
-}
-
-python_test() {
- py.test -v -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
- distutils-r1_python_install_all
-}
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- http://www.virtualenv.org/
- https://pypi.python.org/pypi/virtualenv
- https://github.com/pypa/virtualenv/
-"
-SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE="doc test"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- )"
-
-DOCS=( docs/index.rst docs/changes.rst )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.8.2-no-versioned-script.patch
- "${FILESDIR}"/${PN}-12.1.1-skip-broken-test.patch
-)
-
-python_compile_all() {
- use doc && emake -C docs html
-}
-
-python_test() {
- py.test -v -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
- distutils-r1_python_install_all
-}
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy )
-
-inherit distutils-r1
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- http://www.virtualenv.org/
- https://pypi.python.org/pypi/virtualenv
- https://github.com/pypa/virtualenv/
-"
-SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE="doc test"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- )"
-
-DOCS=( docs/index.rst docs/changes.rst )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.8.2-no-versioned-script.patch
- "${FILESDIR}"/${PN}-12.1.1-skip-broken-test.patch
-)
-
-python_compile_all() {
- use doc && emake -C docs html
-}
-
-python_test() {
- py.test -v -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( "${S}"/docs/_build/html/. )
- distutils-r1_python_install_all
-}
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy )
-
-inherit distutils-r1
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- http://www.virtualenv.org/
- https://pypi.python.org/pypi/virtualenv
- https://github.com/pypa/virtualenv/
-"
-SRC_URI="https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE="doc test"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- >=dev-python/setuptools-19.6.2[${PYTHON_USEDEP}]
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
- )"
-
-DOCS=( docs/index.rst docs/changes.rst )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-12.1.1-skip-broken-test.patch
-)
-
-python_compile_all() {
- use doc && emake -C docs html
-}
-
-python_test() {
- py.test -v -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( docs/_build/html/. )
- distutils-r1_python_install_all
-}