[kernel] r6434 - in dists/trunk/linux-2.6/debian: arch/amd64/vserver arch/i386/vserver arch/powerpc/vserver bin lib/python/debian_linux

Bastian Blank waldi at costa.debian.org
Sun Apr 16 23:53:59 UTC 2006


Author: waldi
Date: Sun Apr 16 23:53:58 2006
New Revision: 6434

Modified:
   dists/trunk/linux-2.6/debian/arch/amd64/vserver/defines
   dists/trunk/linux-2.6/debian/arch/i386/vserver/defines
   dists/trunk/linux-2.6/debian/arch/powerpc/vserver/defines
   dists/trunk/linux-2.6/debian/bin/gencontrol.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py
Log:
* debian/arch/amd64/vserver/defines, debian/arch/i386/vserver/defines,
  debian/arch/powerpc/vserver/defines: Add util-vserver to Recommends.
* debian/bin/gencontrol.py: Fix dependency generation of image packages.
* debian/lib/python/debian_linux/debian.py
  - Make type checks in relation classes more strict.
  - Support checking of each entry against the config.


Modified: dists/trunk/linux-2.6/debian/arch/amd64/vserver/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/amd64/vserver/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/amd64/vserver/defines	Sun Apr 16 23:53:58 2006
@@ -3,6 +3,9 @@
  amd64-k8
  em64t-p4
 
+[image]
+recommends: util-vserver
+
 [amd64-k8]
 class: AMD64 K8 
 longclass: 64bit AMD Athlon64, AthlonFX, Opteron and Turion64

Modified: dists/trunk/linux-2.6/debian/arch/i386/vserver/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/i386/vserver/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/i386/vserver/defines	Sun Apr 16 23:53:58 2006
@@ -3,13 +3,14 @@
  686
  k7
 
+[image]
+recommends: util-vserver, libc6-i686
+
 [686]
 class: PPro/Celeron/PII/PIII/P4
 longclass: Pentium Pro/Celeron/Pentium II/Pentium III/Pentium 4
-recommends: libc6-i686
 
 [k7]
 class: AMD K7
 longclass: 32bit AMD Duron/Athlon/AthlonXP
-recommends: libc6-i686
 

Modified: dists/trunk/linux-2.6/debian/arch/powerpc/vserver/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/powerpc/vserver/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/powerpc/vserver/defines	Sun Apr 16 23:53:58 2006
@@ -3,6 +3,9 @@
  powerpc
  powerpc64
 
+[image]
+recommends: util-vserver
+
 [powerpc]
 depends: mkvmlinuz (>= 18)
 

Modified: dists/trunk/linux-2.6/debian/bin/gencontrol.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/gencontrol.py	(original)
+++ dists/trunk/linux-2.6/debian/bin/gencontrol.py	Sun Apr 16 23:53:58 2006
@@ -111,16 +111,16 @@
         image_latest = self.templates["control.image.latest"]
         headers_latest = self.templates["control.headers.latest"]
 
+        config_entry_relations = self.config.merge('relations', arch, subarch, flavour)
+
         image_depends = package_relation_list()
         if vars.get('initramfs', True):
             generators = vars['initramfs-generators']
             config_entry_commands_initramfs = self.config.merge('commands-image-initramfs-generators', arch, subarch, flavour)
-            config_entry_relations = self.config.merge('relations', arch, subarch, flavour)
             commands = [config_entry_commands_initramfs[i] for i in generators if config_entry_commands_initramfs.has_key(i)]
             makeflags['INITRD_CMD'] = ' '.join(commands)
             l = package_relation_group()
-            l.extend([package_relation(config_entry_relations[i]) for i in generators])
-            l.append(package_relation(config_entry_relations['initramfs-fallback']))
+            l.extend(generators + ['initramfs-fallback'])
             image_depends.append(l)
 
         packages_own = []
@@ -133,8 +133,8 @@
         else:
             image = image_type_modulesinline
 
-        packages_own.append(self.process_real_image(image[0], image_depends, vars))
-        packages_own.extend(self.process_packages(image[1:], vars))
+        for i in image:
+            packages_own.append(self.process_real_image(i, {'depends': image_depends}, config_entry_relations, vars))
         packages_dummy.extend(self.process_packages(image_latest, vars))
 
         if image in (image_type_modulesextra, image_type_modulesinline):
@@ -174,7 +174,7 @@
         else:
             self.abiname = self.vars['abiname'] = '-%s' % self.config['abiname',]['abiname']
 
-    def process_real_image(self, in_entry, depends, vars):
+    def process_real_image(self, in_entry, relations, config, vars):
         entry = self.process_package(in_entry, vars)
         if vars.has_key('desc'):
             entry['Description'].long[1:1] = [vars['desc']]
@@ -182,8 +182,9 @@
             value = entry.get(field, package_relation_list())
             t = vars.get(field.lower(), [])
             value.extend(t)
-            if depends and field == 'Depends':
-                value.append(depends)
+            t = relations.get(field.lower(), [])
+            value.extend(t)
+            value.config(config)
             entry[field] = value
         return entry
 

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py	Sun Apr 16 23:53:58 2006
@@ -107,16 +107,7 @@
 
     def __init__(self, value = None):
         if value is not None:
-            match = self._re.match(value)
-            if match is None:
-                raise RuntimeError, "Can't parse dependency %s" % value
-            match = match.groups()
-            self.name = match[0]
-            self.version = match[1]
-            if match[2] is not None:
-                self.arches = re.split('\s+', match[2])
-            else:
-                self.arches = []
+            self.parse(value)
         else:
             self.name = None
             self.version = None
@@ -130,11 +121,29 @@
             ret.extend([' [', ' '.join(self.arches), ']'])
         return ''.join(ret)
 
+    def config(self, entry):
+        if self.version is not None or self.arches:
+            return
+        value = entry.get(self.name, None)
+        if value is None:
+            return
+        self.parse(value)
+
+    def parse(self, value):
+        match = self._re.match(value)
+        if match is None:
+            raise RuntimeError, "Can't parse dependency %s" % value
+        match = match.groups()
+        self.name = match[0]
+        self.version = match[1]
+        if match[2] is not None:
+            self.arches = re.split('\s+', match[2])
+        else:
+            self.arches = []
+
 class package_relation_list(list):
     def __init__(self, value = None):
-        if isinstance(value, (list, tuple)):
-            self.extend(value)
-        elif value is not None:
+        if value is not None:
             self.extend(value)
 
     def __str__(self):
@@ -146,31 +155,37 @@
                 return i
         return None
 
+    def append(self, value):
+        if isinstance(value, basestring):
+            value = package_relation_group(value)
+        elif not isinstance(value, package_relation_group):
+            raise ValueError, "got %s" % type(value)
+        j = self._match(value)
+        if j:
+            j._update_arches(value)
+        else:
+            super(package_relation_list, self).append(value)
+
+    def config(self, entry):
+        for i in self:
+            i.config(entry)
+
     def extend(self, value):
         if isinstance(value, basestring):
-            value = [package_relation_group(j.strip()) for j in re.split(',', value.strip())]
+            value = [j.strip() for j in re.split(',', value.strip())]
+        elif not isinstance(value, (list, tuple)):
+            raise ValueError, "got %s" % type(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)
+            self.append(i)
 
 class package_relation_group(list):
     def __init__(self, value = None):
-        if isinstance(value, package_relation_list):
+        if value is not None:
             self.extend(value)
-        elif value is not None:
-            self._extend(value)
 
     def __str__(self):
         return ' | '.join([str(i) for i in self])
 
-    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:
@@ -184,6 +199,25 @@
                     if arch not in i.arches:
                         i.arches.append(arch)
 
+    def append(self, value):
+        if isinstance(value, basestring):
+            value = package_relation(value)
+        elif not isinstance(value, package_relation):
+            raise ValueError
+        super(package_relation_group, self).append(value)
+
+    def config(self, entry):
+        for i in self:
+            i.config(entry)
+
+    def extend(self, value):
+        if isinstance(value, basestring):
+            value = [j.strip() for j in re.split('\|', value.strip())]
+        elif not isinstance(value, (list, tuple)):
+            raise ValueError
+        for i in value:
+            self.append(i)
+
 class package(dict):
     _fields = utils.sorted_dict((
         ('Package', str),



More information about the Kernel-svn-changes mailing list