[Reproducible-builds] [dh-python] 36/183: Interpreter: enable multiarch for python2.7, fix check_extname

Jérémy Bobbio lunar at moszumanska.debian.org
Fri Sep 19 15:30:16 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 abf05c185152d57718a026b54e186a4ef0ad257d
Author: Piotr Ożarowski <piotr at debian.org>
Date:   Wed Jul 3 18:37:12 2013 +0200

    Interpreter: enable multiarch for python2.7, fix check_extname
---
 dhpython/interpreter.py | 44 +++++++++++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 19 deletions(-)

diff --git a/dhpython/interpreter.py b/dhpython/interpreter.py
index 6ff21d6..94d966d 100644
--- a/dhpython/interpreter.py
+++ b/dhpython/interpreter.py
@@ -38,6 +38,7 @@ SHEBANG_RE = re.compile(r'''
     ''', re.VERBOSE)
 EXTFILE_RE = re.compile(r'''
     (?P<name>.*?)
+    (?P<debug>_d)?
     (?:\.
         (?P<stableabi>abi\d+)
      |(?:\.
@@ -45,14 +46,13 @@ EXTFILE_RE = re.compile(r'''
             (?P<impl>cpython|pypy)
             -
             (?P<ver>\d{2})
-            (?P<flags>[a-z]*?)
+            (?P<flags>[a-z]*)
         )?
         (?:
             (?:(?<!\.)-)?  # minus sign only if soabi is defined
             (?P<multiarch>[^/]*?)
         )?
     ))?
-    (?P<debug>_d)?
     \.so$''', re.VERBOSE)
 log = logging.getLogger('dhpython')
 
@@ -331,7 +331,7 @@ class Interpreter:
             soabi, multiarch = self._get_config(version)
         except Exception:
             log.debug('cannot get multiarch', exc_info=True)
-            # interpreter without multiach support
+            # interpreter without multiarch support
             return ''
         return multiarch
 
@@ -371,30 +371,36 @@ class Interpreter:
         if info['stableabi']:
             # files with stable ABI in name don't need changes
             return
+        if info['debug'] and self.debug is False:
+            # do not change Python 2.X extensions already marked as debug
+            # (the other way arround is acceptable)
+            return
 
-        i = Interpreter(self, version=version)
-        if info['ver']:
-            i.version = "{}.{}".format(info['ver'][0], info['ver'][1])
-        if not i.debug and (info['debug'] or 'd' in (info['flags'] or '')):
-            i.debug = True
         try:
-            soabi, multiarch = i._get_config()
+            soabi, multiarch = self._get_config(version)
         except Exception:
             log.debug('cannot get soabi/multiarch', exc_info=True)
             return
+
+        if info['soabi'] and soabi and info['soabi'] != soabi:
+            return
+
+        tmp_soabi = info['soabi'] or soabi
+        tmp_multiarch = info['multiarch'] or multiarch
+
         result = info['name']
-        if i.impl == 'cpython3' and i.version >> '3.2' and result.endswith('module'):
+        if self.impl == 'cpython3' and version >> '3.2' and result.endswith('module'):
             result = result[:-6]
-        if info['soabi'] or soabi:
-            result = "{}.{}".format(result, info['soabi'] or soabi)
-            if info['multiarch'] or multiarch:
-                result = "{}-{}".format(result, info['multiarch'] or multiarch)
-        # uncomment next two lines to enable multiarch renaming in Python 2.7
-        #elif i.impl == 'cpython2' and i.version == '2.7':
-        #    result = "{}.{}".format(result, info['multiarch'] or multiarch)
-
-        if self.debug and self.impl == 'cpython2':
+        elif self.debug and self.impl == 'cpython2':
             result += '_d'
+
+        if tmp_soabi:
+            result = "{}.{}".format(result, tmp_soabi)
+            if tmp_multiarch:
+                result = "{}-{}".format(result, tmp_multiarch)
+        elif self.impl == 'cpython2' and version == '2.7':
+            result = "{}.{}".format(result, tmp_multiarch)
+
         result += '.so'
         if fname == result:
             return

-- 
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