packages: python-virtualenv/python-virtualenv.spec, python-virtualenv/unpac...

baggins baggins at pld-linux.org
Wed Aug 31 12:30:51 CEST 2011


Author: baggins                      Date: Wed Aug 31 10:30:51 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fix for site dirs split into 'lib' and 'share' in PLD python,
  patch by Łukasz Szczęsny <luk/at/mimuw.edu.pl>

---- Files affected:
packages/python-virtualenv:
   python-virtualenv.spec (1.13 -> 1.14) , unpack-support.py (NONE -> 1.1)  (NEW), virtualenv-pld.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/python-virtualenv/python-virtualenv.spec
diff -u packages/python-virtualenv/python-virtualenv.spec:1.13 packages/python-virtualenv/python-virtualenv.spec:1.14
--- packages/python-virtualenv/python-virtualenv.spec:1.13	Wed Aug 31 10:35:28 2011
+++ packages/python-virtualenv/python-virtualenv.spec	Wed Aug 31 12:30:46 2011
@@ -7,11 +7,18 @@
 Group:		Development/Languages
 Source0:	http://pypi.python.org/packages/source/v/virtualenv/virtualenv-%{version}.tar.gz
 # Source0-md5:	1072b66d53c24e019a8f1304ac9d9fc5
+Source1:	https://raw.github.com/pypa/virtualenv/%{version}/bin/rebuild-script.py
+# Source1-md5:	b9748dcf1c81dc85a8368dcb7c680494
+Source2:	unpack-support.py
 URL:		http://pypi.python.org/pypi/virtualenv
+Patch0:		virtualenv-pld.patch
 BuildRequires:	python
 BuildRequires:	python-modules
 BuildRequires:	rpm-pythonprov
 Requires:	python-setuptools
+# Blame binary-only python packages authors
+# virtualenv wants *.py
+Requires:	python-devel-src
 BuildArch:	noarch
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -24,6 +31,15 @@
 
 %prep
 %setup -q -n virtualenv-%{version}
+%{__install} -d bin
+%{__install} -m 755 -p %{SOURCE1} bin/
+%{__install} -m 755 -p %{SOURCE2} bin/
+
+python ./bin/unpack-support.py
+
+%patch0 -p1
+
+python ./bin/rebuild-script.py
 
 %build
 %{__python} setup.py build
@@ -53,6 +69,10 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.14  2011/08/31 10:30:46  baggins
+- fix for site dirs split into 'lib' and 'share' in PLD python,
+  patch by Łukasz Szczęsny <luk/at/mimuw.edu.pl>
+
 Revision 1.13  2011/08/31 08:35:28  baggins
 - 1.6.4
 

================================================================
Index: packages/python-virtualenv/unpack-support.py
diff -u /dev/null packages/python-virtualenv/unpack-support.py:1.1
--- /dev/null	Wed Aug 31 12:30:51 2011
+++ packages/python-virtualenv/unpack-support.py	Wed Aug 31 12:30:46 2011
@@ -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)))
+	f.close()

================================================================
Index: packages/python-virtualenv/virtualenv-pld.patch
diff -u /dev/null packages/python-virtualenv/virtualenv-pld.patch:1.1
--- /dev/null	Wed Aug 31 12:30:51 2011
+++ packages/python-virtualenv/virtualenv-pld.patch	Wed Aug 31 12:30:46 2011
@@ -0,0 +1,54 @@
+diff --git a/virtualenv.py b/virtualenv.py
+index c173dd4..e460b79 100644
+--- a/virtualenv.py
++++ b/virtualenv.py
+@@ -1045,6 +1045,14 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear):
+         site_filename = site_filename.replace('$py.class', '.py')
+     site_filename_dst = change_prefix(site_filename, home_dir)
+     site_dir = os.path.dirname(site_filename_dst)
++    # PLD fix
++    try:
++        os.symlink(
++            make_relative_path(join(lib_dir, 'site-packages'), site_dir), 
++            join(site_dir, 'site-packages')
++        )
++    except (OSError, NotImplementedError):
++        logger.info('Symlinking site-packages failed.')
+     writefile(site_filename_dst, SITE_PY)
+     writefile(join(site_dir, 'orig-prefix.txt'), prefix)
+     site_packages_filename = join(site_dir, 'no-global-site-packages.txt')
+
+diff --git a/virtualenv_support/site.py b/virtualenv_support/site.py
+index 3f4585a..4c52afe 100644
+--- a/virtualenv_support/site.py
++++ b/virtualenv_support/site.py
+@@ -234,7 +234,8 @@ def addsitepackages(known_paths, sys_prefix=sys.prefix, exec_prefix=sys.exec_pre
+                                          "python" + sys.version[:3],
+                                          "site-packages"),
+                             os.path.join(prefix, "lib", "site-python"),
+-                            os.path.join(prefix, "python" + sys.version[:3], "lib-dynload")]
++                            os.path.join(prefix, "python" + sys.version[:3], "lib-dynload"),
++                            os.path.join(prefix, "lib64", "python" + sys.version[:3], "lib-dynload")]
+                 lib64_dir = os.path.join(prefix, "lib64", "python" + sys.version[:3], "site-packages")
+                 if (os.path.exists(lib64_dir) and 
+                     os.path.realpath(lib64_dir) not in [os.path.realpath(p) for p in sitedirs]):
+@@ -253,6 +254,9 @@ def addsitepackages(known_paths, sys_prefix=sys.prefix, exec_prefix=sys.exec_pre
+                                              "python" + sys.version[:3],
+                                              "dist-packages"))
+                 sitedirs.append(os.path.join(prefix, "lib", "dist-python"))
++                # PLD fix
++                sitedirs.append(os.path.join(prefix, "share",
++                                             "python" + sys.version[:3]))
+             else:
+                 sitedirs = [prefix, os.path.join(prefix, "lib", "site-packages")]
+             if sys.platform == 'darwin':
+@@ -568,7 +572,8 @@ def virtual_install_main_packages():
+             if os.path.exists(plat_path):
+                 paths.append(plat_path)
+     else:
+-        paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3])]
++        paths = [os.path.join(sys.real_prefix, 'lib', 'python'+sys.version[:3]),
++                 os.path.join(sys.real_prefix, 'share', 'python'+sys.version[:3])]
+         hardcoded_relative_dirs = paths[:] # for the special 'darwin' case below
+         lib64_path = os.path.join(sys.real_prefix, 'lib64', 'python'+sys.version[:3])
+         if os.path.exists(lib64_path):
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/python-virtualenv/python-virtualenv.spec?r1=1.13&r2=1.14&f=u



More information about the pld-cvs-commit mailing list