From: Jan Rękorajski Date: Wed, 19 Oct 2016 07:17:34 +0000 (+0200) Subject: - more x32 fixes, should work now on all archs X-Git-Tag: auto/th/python-virtualenv-15.0.1-3 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=0f8f7537b41132265c70ffa03a57ed358f2a636a;p=packages%2Fpython-virtualenv.git - more x32 fixes, should work now on all archs - rel 3 --- diff --git a/multilib.patch b/multilib.patch index b33ab80..8955bd6 100644 --- a/multilib.patch +++ b/multilib.patch @@ -64,3 +64,32 @@ def resolve_interpreter(exe): """ +--- virtualenv-15.0.1/virtualenv_support/site.py~ 2016-10-19 09:09:07.000000000 +0200 ++++ virtualenv-15.0.1/virtualenv_support/site.py 2016-10-19 09:11:26.681732254 +0200 +@@ -243,6 +243,13 @@ + sitedirs.insert(0, lib64_dir) + else: + sitedirs.append(lib64_dir) ++ libx32_dir = os.path.join(prefix, "libx32", "python" + sys.version[:3], "site-packages") ++ if (os.path.exists(libx32_dir) and ++ os.path.realpath(libx32_dir) not in [os.path.realpath(p) for p in sitedirs]): ++ if _is_64bit: ++ sitedirs.append(libx32_dir) ++ else: ++ sitedirs.insert(0, libx32_dir) + try: + # sys.getobjects only available in --with-pydebug build + sys.getobjects +@@ -589,6 +596,12 @@ + paths.insert(0, lib64_path) + else: + paths.append(lib64_path) ++ libx32_path = os.path.join(sys.real_prefix, 'libx32', 'python'+sys.version[:3]) ++ if os.path.exists(libx32_path): ++ if _is_64bit: ++ paths.append(libx32_path) ++ else: ++ paths.insert(0, libx32_path) + # This is hardcoded in the Python executable, but relative to + # sys.prefix. Debian change: we need to add the multiarch triplet + # here, which is where the real stuff lives. As per PEP 421, in diff --git a/python-virtualenv.spec b/python-virtualenv.spec index c99254f..a5607bf 100644 --- a/python-virtualenv.spec +++ b/python-virtualenv.spec @@ -9,13 +9,15 @@ Summary: Tool to create isolated Python environments Summary(pl.UTF-8): Narzędzie do tworzenia oddzielonych środowisk Pythona Name: python-virtualenv Version: 15.0.1 -Release: 2 +Release: 3 License: MIT Group: Development/Languages #Source0Download: https://pypi.python.org/simple/virtualenv/ Source0: https://pypi.python.org/packages/source/v/virtualenv/virtualenv-%{version}.tar.gz # Source0-md5: 28d76a0d9cbd5dc42046dd14e76a6ecc +Source1: unpack-support.py Patch0: multilib.patch +Patch1: rebuild-support.patch URL: https://pypi.python.org/pypi/virtualenv %if %{with python2} BuildRequires: python >= 1:2.6 @@ -97,7 +99,11 @@ Project. Zostało wydane na liberalnej licencji w stylu MIT. %prep %setup -q -n virtualenv-%{version} +install -p -p %{SOURCE1} bin +%{__python} ./bin/unpack-support.py %patch0 -p1 +%patch1 -p1 +%{__python} ./bin/rebuild-script.py %build %if %{with python2} diff --git a/rebuild-support.patch b/rebuild-support.patch new file mode 100644 index 0000000..7ad5f08 --- /dev/null +++ b/rebuild-support.patch @@ -0,0 +1,12 @@ +--- virtualenv-1.8.4/bin/rebuild-script.py 2011-08-31 12:30:48.000000000 +0200 ++++ virtualenv-1.9.1/bin/rebuild-script.py 2013-04-05 20:06:30.000000000 +0200 +@@ -29,7 +29,7 @@ + data = match.group(3) + + print('Found file %s' % fn_decoded) +- pathname = os.path.join(here, '..', 'virtualenv_embedded', fn_decoded) ++ pathname = os.path.join(here, '..', 'virtualenv_support', fn_decoded) + + with open(pathname, 'rb') as f: + embedded = f.read() + diff --git a/unpack-support.py b/unpack-support.py new file mode 100644 index 0000000..d357315 --- /dev/null +++ b/unpack-support.py @@ -0,0 +1,23 @@ +#!/usr/bin/python + +import re +import os +import sys + +cmd_folder = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.join(cmd_folder, '..')) + +import virtualenv + +file_regex = re.compile( + r'##file (.*?)\n([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*convert\("""(.*?)"""\)', + re.S) + +f = open('virtualenv.py', 'rb') +content = f.read() +f.close() +match = None +for match in file_regex.finditer(content): + f = open(os.path.join('virtualenv_support', match.group(1)), 'wb') + f.write(eval("virtualenv." + match.group(2)).encode('utf-8')) + f.close()