[Pkg-ocaml-maint-commits] [SCM] pkglab packaging branch, master, updated. debian/1.4.2-9-3-gbcb49d9

Ralf Treinen treinen at free.fr
Mon Apr 19 21:05:06 UTC 2010


The following commit has been merged in the master branch:
commit 8140f73dc045eb34ca40a22c3b17aa0d54d65ef8
Author: Ralf Treinen <treinen at free.fr>
Date:   Mon Apr 19 22:54:20 2010 +0200

    fix proposiitonal logic in build-dep clauses (Zack's patch)

diff --git a/debian/changelog b/debian/changelog
index 2b47932..8f2e30b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+pkglab (1.4.2-10) unstable; urgency=low
+
+  * Fix logic in add-sources.py (used by edos-builddebcheck): If one of
+    the packages in a disjunction is build-essential then the whole
+    disjunctive clause is discarded. Thanks to Zack for the patch!
+    (closes: #574380).
+
+ -- Ralf Treinen <treinen at debian.org>  Mon, 19 Apr 2010 22:53:55 +0200
+
 pkglab (1.4.2-9) unstable; urgency=low
 
   * Fixed formatting in manpage (closes: #571742)
diff --git a/debian/contrib/add-sources.py b/debian/contrib/add-sources.py
index e9f41f2..78b7521 100755
--- a/debian/contrib/add-sources.py
+++ b/debian/contrib/add-sources.py
@@ -46,9 +46,7 @@ def pkg_of_src(src):
 
     def dep_for_me(dep):
         for_me = None
-        if buildessentials.count(dep['name']) > 0:
-            for_me = False
-        elif dep['arch'] is None:
+        if dep['arch'] is None:
             for_me = True
         elif dep['arch']:
             (polarity, _) = dep['arch'][0]
@@ -72,12 +70,23 @@ def pkg_of_src(src):
                     rels.extend(relations[name])
             return rels
 
+        def is_trivial_dep(or_deps):
+            """checks whether a given disjunction is trivially satisfiable,
+            e.g. because it contains an unversioned build-essential dependency
+            """
+            for dep in or_deps:
+                if dep['name'] in buildessentials \
+                        and not (dep.has_key('version') and dep['version']):
+                    return True	# unversioned build-dep on a build-essential
+            return False
+
         src_rels = get_rels(fields, relations)
         bin_rels = []
         for or_deps in src_rels:
-            my_or_deps = map(strip_arch, filter(dep_for_me, or_deps))
-            if my_or_deps:
-                bin_rels.append(my_or_deps)
+            if not is_trivial_dep(or_deps):
+                my_or_deps = map(strip_arch, filter(dep_for_me, or_deps))
+                if my_or_deps:
+                    bin_rels.append(my_or_deps)
 
         return bin_rels
 

-- 
pkglab packaging



More information about the Pkg-ocaml-maint-commits mailing list