[Reproducible-commits] [debbindiff] 02/03: Change how we handle a missing RPM module

Jérémy Bobbio lunar at moszumanska.debian.org
Wed Jun 24 18:26:17 UTC 2015


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

lunar pushed a commit to branch master
in repository debbindiff.

commit 7529ce98df74396f803b308b923d40d2cf3d5738
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Wed Jun 24 18:07:16 2015 +0000

    Change how we handle a missing RPM module
    
    Make it more robust and also explain the fallback in a comment.
---
 debbindiff/comparators/__init__.py | 13 ++++++++++++-
 debbindiff/comparators/rpm.py      |  7 +------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/debbindiff/comparators/__init__.py b/debbindiff/comparators/__init__.py
index bba46d5..25cc864 100644
--- a/debbindiff/comparators/__init__.py
+++ b/debbindiff/comparators/__init__.py
@@ -42,7 +42,18 @@ from debbindiff.comparators.ipk import compare_ipk_files
 from debbindiff.comparators.iso9660 import compare_iso9660_files
 from debbindiff.comparators.pdf import compare_pdf_files
 from debbindiff.comparators.png import compare_png_files
-from debbindiff.comparators.rpm import compare_rpm_files
+try:
+    from debbindiff.comparators.rpm import compare_rpm_files
+except ImportError as ex:
+    if ex.message != 'No module named rpm':
+        raise
+    def compare_rpm_files(path1, path2, source=None):
+        logger.info("Python rpm module not found.")
+        differences = compare_binary_files(path1, path2, source)
+        if differences:
+            differences[0].comment = (differences[0].comment or '') + \
+                '\nUnable to find Python rpm module. Falling back to binary comparison.'
+        return differences
 from debbindiff.comparators.squashfs import compare_squashfs_files
 from debbindiff.comparators.text import compare_text_files
 from debbindiff.comparators.tar import compare_tar_files
diff --git a/debbindiff/comparators/rpm.py b/debbindiff/comparators/rpm.py
index 7018b27..b9e9c13 100644
--- a/debbindiff/comparators/rpm.py
+++ b/debbindiff/comparators/rpm.py
@@ -21,6 +21,7 @@ from __future__ import absolute_import
 import os.path
 import subprocess
 from contextlib import contextmanager
+import rpm
 import debbindiff.comparators
 from debbindiff import logger, tool_required
 from debbindiff.comparators.utils import binary_fallback, make_temp_directory
@@ -65,12 +66,6 @@ def extract_rpm_payload(path):
 
 @binary_fallback
 def compare_rpm_files(path1, path2, source=None):
-    try:
-        import rpm
-    except ImportError:
-        logger.info("Python module rpm not found.")
-        return []
-
     differences = []
 
     # compare headers

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



More information about the Reproducible-commits mailing list