[kernel] r5279 - in people/waldi/linux-2.6/debian: bin lib/python/debian_linux

Bastian Blank waldi at costa.debian.org
Thu Jan 5 14:20:01 UTC 2006


Author: waldi
Date: Thu Jan  5 14:20:00 2006
New Revision: 5279

Modified:
   people/waldi/linux-2.6/debian/bin/gencontrol.py
   people/waldi/linux-2.6/debian/lib/python/debian_linux/debian.py
Log:
* debian/bin/gencontrol.py: Don't fail if some relation fields are empty.
* debian/lib/python/debian_linux/debian.py: Merge relation entries.


Modified: people/waldi/linux-2.6/debian/bin/gencontrol.py
==============================================================================
--- people/waldi/linux-2.6/debian/bin/gencontrol.py	(original)
+++ people/waldi/linux-2.6/debian/bin/gencontrol.py	Thu Jan  5 14:20:00 2006
@@ -127,7 +127,7 @@
             in_entry['Description'] += "\n.\n" + vars['desc']
         entry = self.process_package(in_entry, vars)
         for field in 'Depends', 'Provides', 'Suggests', 'Recommends', 'Conflicts':
-            value = entry.get(field, [])
+            value = entry.get(field, package_relation_list())
             t = vars.get(field.lower(), [])
             value.extend(t)
             entry[field] = value

Modified: people/waldi/linux-2.6/debian/lib/python/debian_linux/debian.py
==============================================================================
--- people/waldi/linux-2.6/debian/lib/python/debian_linux/debian.py	(original)
+++ people/waldi/linux-2.6/debian/lib/python/debian_linux/debian.py	Thu Jan  5 14:20:00 2006
@@ -1,4 +1,4 @@
-import re, utils
+import itertools, re, utils
 
 def read_changelog():
     r = re.compile(r"""
@@ -121,10 +121,23 @@
     def __str__(self):
         return ', '.join([str(i) for i in self])
 
+    def _match(self, value):
+        for i in self:
+            if i._match(value):
+                return i
+        return None
+
     def extend(self, value):
         if isinstance(value, basestring):
             value = [package_relation_group(j.strip()) for j in re.split(',', value.strip())]
-        super(package_relation_list, self).extend(value)
+        for i in value:
+            if isinstance(i, basestring):
+                i = package_relation_group(i)
+            j = self._match(i)
+            if j:
+                j._update_arches(i)
+            else:
+                self.append(i)
 
 class package_relation_group(list):
     def __init__(self, value = None):
@@ -139,6 +152,19 @@
     def _extend(self, value):
         self.extend([package_relation(j.strip()) for j in re.split('\|', value.strip())])
 
+    def _match(self, value):
+        for i, j in itertools.izip(self, value):
+            if i.name != j.name or i.version != j.version:
+                return None
+        return self
+
+    def _update_arches(self, value):
+        for i, j in itertools.izip(self, value):
+            if i.arches:
+                for arch in j.arches:
+                    if arch not in i.arches:
+                        i.arches.append(arch)
+
 class package(dict):
     _fields = utils.sorted_dict((
         ('Package', str),



More information about the Kernel-svn-changes mailing list