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), _______________________________________________ Kernel-svn-changes mailing list Kernel-svn-changes@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes