[Reproducible-builds] [dh-python] 13/183: add Interpreter.old_sitedirs

Jérémy Bobbio lunar at moszumanska.debian.org
Fri Sep 19 15:30:13 UTC 2014


This is an automated email from the git hooks/post-receive script.

lunar pushed a commit to branch pu/reproducible_builds
in repository dh-python.

commit c977a6a5ac265bdcccaa95bae3c302ef7a57b3fe
Author: Piotr Ożarowski <piotr at debian.org>
Date:   Sat Jun 29 15:49:10 2013 +0200

    add Interpreter.old_sitedirs
---
 dh_python2              | 23 +++++------------------
 dh_python3              | 21 ++++-----------------
 dhpython/__init__.py    | 21 +++++++++++++++++++++
 dhpython/interpreter.py | 31 ++++++++++++++++++++++++++++++-
 4 files changed, 60 insertions(+), 36 deletions(-)

diff --git a/dh_python2 b/dh_python2
index 63ce3b3..25ab2cc 100755
--- a/dh_python2
+++ b/dh_python2
@@ -69,22 +69,13 @@ def fix_locations(package):
     for version in SUPPORTED:
         interpreter.version = version
 
-        to_check = [i % version for i in (
-                    'usr/local/lib/python%s/site-packages',
-                    'usr/local/lib/python%s/dist-packages',
-                    'var/lib/python-support/python%s',
-                    'usr/lib/pymodules/python%s')]
-        if version >= '2.6':
-            to_check.append("usr/lib/python%s/site-packages" % version)
         dstdir = interpreter.sitedir(package)
-
-        for location in to_check:
-            srcdir = "debian/%s/%s" % (package, location)
+        for srcdir in interpreter.old_sitedirs(package):
             if isdir(srcdir):
                 if version in found_versions:
                     log.error('files for version %s '
                               'found in two locations:\n %s\n %s',
-                              version, location, found_versions[version])
+                              version, srcdir, found_versions[version])
                     exit(2)
                 log.info('Python %s should install files in %s. '
                          'Did you forget "--install-layout=deb"?',
@@ -94,15 +85,11 @@ def fix_locations(package):
                 # TODO: what about relative symlinks?
                 log.debug('moving files from %s to %s', srcdir, dstdir)
                 os.renames(srcdir, dstdir)
-                found_versions[version] = location
+                found_versions[version] = srcdir
 
         # do the same with debug locations
-        dbg_to_check = ['usr/lib/debug/%s' % i for i in to_check]
-        dbg_to_check.append("usr/lib/debug/usr/lib/pyshared/python%s" % version)
-        dstdir = interpreter.sitedir(gdb=True, package=package)
-
-        for location in dbg_to_check:
-            srcdir = "debian/%s/%s" % (package, location)
+        dstdir = interpreter.sitedir(package, gdb=True)
+        for srcdir in interpreter.old_sitedirs(package, gdb=True):
             if isdir(srcdir):
                 if not isdir(dstdir):
                     os.makedirs(dstdir)
diff --git a/dh_python3 b/dh_python3
index 87cbc7c..0d86a26 100755
--- a/dh_python3
+++ b/dh_python3
@@ -56,17 +56,8 @@ def fix_locations(package):
     for version in SUPPORTED:
         interpreter.version = version
 
-        to_check = [i % version for i in (
-                    'usr/local/lib/python%s/site-packages',
-                    'usr/local/lib/python%s/dist-packages',
-                    'usr/lib/python%s/site-packages',
-                    'usr/lib/python%s/dist-packages',
-                    'var/lib/python-support/python%s',
-                    'usr/lib/pymodules/python%s')]
-        dstdir = interpreter.sitedir(package=package)
-
-        for location in to_check:
-            srcdir = "debian/%s/%s" % (package, location)
+        dstdir = interpreter.sitedir(package)
+        for srcdir in interpreter.old_sitedirs(package):
             if isdir(srcdir):
                 # TODO: what about relative symlinks?
                 log.debug('moving files from %s to %s', srcdir, dstdir)
@@ -76,12 +67,8 @@ def fix_locations(package):
                     os.rmdir(parent_dir)
 
         # do the same with debug locations
-        dbg_to_check = ['usr/lib/debug/%s' % i for i in to_check]
-        dbg_to_check.append("usr/lib/debug/usr/lib/pyshared/python%s" % version)
-        dstdir = interpreter.sitedir(gdb=True, package=package)
-
-        for location in dbg_to_check:
-            srcdir = "debian/%s/%s" % (package, location)
+        dstdir = interpreter.sitedir(package, gdb=True)
+        for srcdir in interpreter.old_sitedirs(package, gdb=True):
             if isdir(srcdir):
                 log.debug('moving files from %s to %s', srcdir, dstdir)
                 share_files(srcdir, dstdir, package.endswith('-dbg'))
diff --git a/dhpython/__init__.py b/dhpython/__init__.py
index f91a34b..b213956 100644
--- a/dhpython/__init__.py
+++ b/dhpython/__init__.py
@@ -27,6 +27,27 @@ MINPYCDEP = {'cpython2': 'python (>= 2.6.6-3)',
              'cpython3': 'python3 (>= 3.2.3-3~)',
              'pypy': 'pypy'}
 
+# Interpreter site-directories
+OLD_SITE_DIRS = {
+    'cpython2': [
+        '/usr/local/lib/python{}/site-packages',
+        '/usr/local/lib/python{}/dist-packages',
+        '/var/lib/python-support/python{}',
+        '/usr/lib/pymodules/python{}',
+        lambda version: '/usr/lib/python{}/site-packages'.format(version)
+                        if version >= '2.6' else None],
+    'cpython3': [
+        '/usr/local/lib/python{}/site-packages',
+        '/usr/local/lib/python{}/dist-packages',
+        '/usr/lib/python{}/site-packages',
+        '/usr/lib/python{}/dist-packages',
+        '/var/lib/python-support/python{}',
+        '/usr/lib/pymodules/python{}'],
+    'pypy': [
+        '/usr/local/lib/pypy/site-packages',
+        '/usr/local/lib/pypy/dist-packages',
+        '/usr/lib/pypy/site-packages']}
+
 # PyDist related
 PYDIST_DIRS = {
     'cpython2': '/usr/share/python/dist/',
diff --git a/dhpython/interpreter.py b/dhpython/interpreter.py
index 31c6f30..5b5785a 100644
--- a/dhpython/interpreter.py
+++ b/dhpython/interpreter.py
@@ -22,6 +22,7 @@ import logging
 import os
 import re
 from os.path import join, split
+from dhpython import OLD_SITE_DIRS
 
 SHEBANG_RE = re.compile(r'''
     (?:\#!\s*){0,1}  # shebang prefix
@@ -212,7 +213,10 @@ class Interpreter:
         >>> i.sitedir(version=Version('3.2'))
         '/usr/lib/python3/dist-packages/'
         """
-        version = Version(version or self.version)
+        try:
+            version = Version(version or self.version)
+        except Exception as err:
+            raise ValueError("cannot find valid version: %s" % err)
         if self.impl == 'pypy':
             path = '/usr/lib/pypy/dist-packages/'
         elif version << Version('2.6'):
@@ -229,6 +233,31 @@ class Interpreter:
 
         return path
 
+    def old_sitedirs(self, package=None, version=None, gdb=False):
+        """Return deprecated paths to site-packages directories."""
+        try:
+            version = Version(version or self.version)
+        except Exception as err:
+            raise ValueError("cannot find valid version: %s" % err)
+        result = []
+        for item in OLD_SITE_DIRS.get(self.impl, []):
+            if isinstance(item, str):
+                result.append(item.format(version))
+            else:
+                res = item(version)
+                if res is not None:
+                    result.append(res)
+
+        if gdb:
+            result = ['/usr/lib/debug{}'.format(i) for i in result]
+            if self.impl.startswith('cpython'):
+                result.append('/usr/lib/debug/usr/lib/pyshared/python{}'.format(version))
+        if package:
+            result = ['debian/{}{}'.format(package, i) for i in result]
+
+        return result
+
+
     def cache_file(self, fpath, version=None):
         """Given path to a .py file, return path to its .pyc/.pyo file.
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dh-python.git



More information about the Reproducible-builds mailing list