From 1abc042d224692b830ca863acad3cec438fe341f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20O=C5=BCarowski?= <piotr@debian.org>
Date: Wed, 21 Jul 2010 21:11:50 +0200
Subject: [PATCH] dh_python2: add --depend command line option (use it if
 requires.txt doesn't contain dependency that package needs)

---
 debian/changelog                 | 7 +++++++
 debpython/depends.py             | 7 ++++++-
 debpython/pydist.py              | 2 +-
 dh_python2                       | 3 +++
 tests/t1/debian/pydist-overrides | 2 +-
 tests/t1/debian/rules            | 2 +-
 6 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 6c9095f..ab7ca0f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+python-defaults (2.6.5-10) UNRELEASED; urgency=low
+
+  * dh_python2: add --depend command line option (use it if requires.txt
+    doesn't contain dependency that package needs)
+
+ -- Piotr Ożarowski <piotr@debian.org>  Wed, 21 Jul 2010 21:10:19 +0200
+
 python-defaults (2.6.5-9) unstable; urgency=low
 
   [ Piotr Ożarowski ]
diff --git a/debpython/depends.py b/debpython/depends.py
index d8156bd..87d4c77 100644
--- a/debpython/depends.py
+++ b/debpython/depends.py
@@ -20,7 +20,7 @@
 # THE SOFTWARE.
 
 import logging
-from debpython.pydist import parse_pydep
+from debpython.pydist import parse_pydep, guess_dependency
 from debpython.version import SUPPORTED, DEFAULT, debsorted, vrepr, vrange_str
 
 log = logging.getLogger('dh_python')
@@ -152,4 +152,9 @@ class Dependencies(object):
             for fn in stats['requires.txt']:
                 for i in parse_pydep(fn):
                     self.depend(i)
+
+        # add dependencies from --depend
+        for item in options.depends:
+            self.depend(guess_dependency(item))
+
         log.debug(self)
diff --git a/debpython/pydist.py b/debpython/pydist.py
index e1fcdd0..88e97b3 100644
--- a/debpython/pydist.py
+++ b/debpython/pydist.py
@@ -121,7 +121,7 @@ def guess_dependency(req, version=None):
     details = data.get(req_dict['name'].lower())
     if details:
         for item in details:
-            if version not in item.get('versions', version):
+            if version and version not in item.get('versions', version):
                 # rule doesn't match version, try next one
                 continue
 
diff --git a/dh_python2 b/dh_python2
index 72e8456..3934f02 100755
--- a/dh_python2
+++ b/dh_python2
@@ -417,6 +417,9 @@ def main():
     parser.add_option('-X', '--exclude', action='append', dest='regexpr',
         help='exclude items that match given REGEXPR. You may use this option'
              'multiple times to build up a list of things to exclude.')
+    parser.add_option('--depend', action='append',
+        dest='depends', help='generate dependencies for given '
+                             'Python distributions')
     # ignore some debhelper options:
     parser.add_option('-O', help=SUPPRESS_HELP)
 
diff --git a/tests/t1/debian/pydist-overrides b/tests/t1/debian/pydist-overrides
index e0d0d0d..24b440d 100644
--- a/tests/t1/debian/pydist-overrides
+++ b/tests/t1/debian/pydist-overrides
@@ -1,2 +1,2 @@
 Mako python-mako (>= 0.2)
-SQLAlchemy python-sqlalchemy (<< 0.6)
+SQLAlchemy python-sqlalchemy (>= 0.6)
diff --git a/tests/t1/debian/rules b/tests/t1/debian/rules
index 1d07860..3a17902 100755
--- a/tests/t1/debian/rules
+++ b/tests/t1/debian/rules
@@ -5,4 +5,4 @@
 override_dh_pysupport:
 	find debian/ -name jquery.js -exec \
 	ln -fs /usr/share/javascript/jquery/jquery.js '{}' \;
-	DH_VERBOSE=1 ../../dh_python2
+	DH_VERBOSE=1 ../../dh_python2 --depend 'SQLAlchemy >= 0.6.1'
-- 
GitLab