[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