Commit 1e53f8d9 authored by Vinay Sajip's avatar Vinay Sajip

Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.

parent a0d10732
...@@ -9,6 +9,7 @@ import ensurepip ...@@ -9,6 +9,7 @@ import ensurepip
import os import os
import os.path import os.path
import shutil import shutil
import struct
import subprocess import subprocess
import sys import sys
import tempfile import tempfile
...@@ -87,6 +88,14 @@ class BasicTest(BaseTest): ...@@ -87,6 +88,14 @@ class BasicTest(BaseTest):
self.isdir(self.bindir) self.isdir(self.bindir)
self.isdir(self.include) self.isdir(self.include)
self.isdir(*self.lib) self.isdir(*self.lib)
# Issue 21197
p = self.get_env_file('lib64')
conditions = ((struct.calcsize('P') == 8) and (os.name == 'posix') and
(sys.platform != 'darwin'))
if conditions:
self.assertTrue(os.path.islink(p))
else:
self.assertFalse(os.path.exists(p))
data = self.get_text_file_contents('pyvenv.cfg') data = self.get_text_file_contents('pyvenv.cfg')
if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__'
in os.environ): in os.environ):
......
""" """
Virtual environment (venv) package for Python. Based on PEP 405. Virtual environment (venv) package for Python. Based on PEP 405.
Copyright (C) 2011-2012 Vinay Sajip. Copyright (C) 2011-2014 Vinay Sajip.
Licensed to the PSF under a contributor agreement. Licensed to the PSF under a contributor agreement.
usage: python -m venv [-h] [--system-site-packages] [--symlinks] [--clear] usage: python -m venv [-h] [--system-site-packages] [--symlinks] [--clear]
...@@ -30,6 +30,7 @@ optional arguments: ...@@ -30,6 +30,7 @@ optional arguments:
import logging import logging
import os import os
import shutil import shutil
import struct
import subprocess import subprocess
import sys import sys
import types import types
...@@ -132,10 +133,18 @@ class EnvBuilder: ...@@ -132,10 +133,18 @@ class EnvBuilder:
else: else:
binname = 'bin' binname = 'bin'
incpath = 'include' incpath = 'include'
libpath = os.path.join(env_dir, 'lib', 'python%d.%d' % sys.version_info[:2], 'site-packages') libpath = os.path.join(env_dir, 'lib',
'python%d.%d' % sys.version_info[:2],
'site-packages')
context.inc_path = path = os.path.join(env_dir, incpath) context.inc_path = path = os.path.join(env_dir, incpath)
create_if_needed(path) create_if_needed(path)
create_if_needed(libpath) create_if_needed(libpath)
# Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX
if ((struct.calcsize('P') == 8) and (os.name == 'posix') and
(sys.platform != 'darwin')):
p = os.path.join(env_dir, 'lib')
link_path = os.path.join(env_dir, 'lib64')
os.symlink(p, link_path)
context.bin_path = binpath = os.path.join(env_dir, binname) context.bin_path = binpath = os.path.join(env_dir, binname)
context.bin_name = binname context.bin_name = binname
context.env_exe = os.path.join(binpath, exename) context.env_exe = os.path.join(binpath, exename)
......
...@@ -41,6 +41,8 @@ Core and Builtins ...@@ -41,6 +41,8 @@ Core and Builtins
Library Library
------- -------
- Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.
- Issue #17498: Some SMTP servers disconnect after certain errors, violating - Issue #17498: Some SMTP servers disconnect after certain errors, violating
strict RFC conformance. Instead of losing the error code when we issue the strict RFC conformance. Instead of losing the error code when we issue the
subsequent RSET, smtplib now returns the error code and defers raising the subsequent RSET, smtplib now returns the error code and defers raising the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment