[kernel] r5327 - in dists/trunk/linux-2.6: . debian debian/arch debian/arch/amd64 debian/arch/arm debian/arch/hppa debian/arch/powerpc debian/arch/sparc debian/bin debian/lib/python/debian_linux debian/templates

Bastian Blank waldi at costa.debian.org
Fri Jan 6 22:32:19 UTC 2006


Author: waldi
Date: Fri Jan  6 22:32:16 2006
New Revision: 5327

Modified:
   dists/trunk/linux-2.6/   (props changed)
   dists/trunk/linux-2.6/debian/README
   dists/trunk/linux-2.6/debian/arch/amd64/Makefile.inc
   dists/trunk/linux-2.6/debian/arch/arm/Makefile.inc
   dists/trunk/linux-2.6/debian/arch/defines
   dists/trunk/linux-2.6/debian/arch/hppa/Makefile.inc
   dists/trunk/linux-2.6/debian/arch/hppa/defines
   dists/trunk/linux-2.6/debian/arch/powerpc/Makefile.inc
   dists/trunk/linux-2.6/debian/arch/powerpc/defines
   dists/trunk/linux-2.6/debian/arch/sparc/Makefile.inc
   dists/trunk/linux-2.6/debian/bin/apply.py
   dists/trunk/linux-2.6/debian/bin/gencontrol.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/config.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/debian.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py
   dists/trunk/linux-2.6/debian/rules.real
   dists/trunk/linux-2.6/debian/templates/control.source.in
Log:
* Set compiler build dependencies from config informations.
* Install debian/lib into headers-all package.
* Unlink version file before writing to them.
* debian/README: Remove outdated information.

r5275:  waldi | 2006-01-05 14:00:15 +0100
* debian/lib/python/debian_linux/debian.py: Move package class from utils.
* debian/lib/python/debian_linux/utils.py: Use package class from debian.

r5277:  waldi | 2006-01-05 14:41:45 +0100
* debian/lib/python/debian_linux/debian.py
  - Add package_relation, package_relation_list and package_relation_group
    classes.
  - Use them in the package class.
* debian/lib/python/debian_linux/gencontrol.py
  - Support new relation classes.

r5278:  waldi | 2006-01-05 14:46:55 +0100
debian/bin/gencontrol.py: Use relation objects for tree entry.

r5279:  waldi | 2006-01-05 15:20:00 +0100
* debian/bin/gencontrol.py: Don't fail if some relation fields are empty.
* debian/lib/python/debian_linux/debian.py: Merge relation entries.

r5280:  waldi | 2006-01-05 15:24:08 +0100
* debian/arch/defines, debian/arch/hppa/defines: Set relations for compiler.
* debian/lib/python/debian_linux/gencontrol.py: Set compiler build dependencies
  from config informations.
* debian/templates/control.source.in: Remove compiler from Build-Depends.

r5281:  waldi | 2006-01-05 15:39:45 +0100
* debian/rules.real
  - Install debian/lib into headers-all package.
  - Call dh_python with python version 2.4.
* debian/templates/control.source.in:
  Add python to build-depends, needed by dh_python.

r5282:  waldi | 2006-01-05 16:36:33 +0100
debian/rules.real
- Remove outdated comment about include_common_config.
- Remove support for headers_dirs.

r5283:  waldi | 2006-01-05 16:38:05 +0100
debian/arch/amd64/Makefile.inc, debian/arch/arm/Makefile.inc,
debian/arch/hppa/Makefile.inc, debian/arch/powerpc/Makefile.inc,
debian/arch/sparc/Makefile.inc: Remove not longer supported variables.

r5284:  waldi | 2006-01-05 16:42:33 +0100
debian/lib/python/debian_linux/gencontrol.py:
Warn if the class setting is not available.

r5287:  waldi | 2006-01-05 19:07:05 +0100
debian/arch/powerpc/defines: Set kernel-arch for all except powerpc64 to ppc.

r5288:  waldi | 2006-01-05 19:08:35 +0100
debian/lib/python/debian_linux/config.py:
Only bail out if a section is not found in any config file.

r5294:  waldi | 2006-01-05 19:26:57 +0100
debian/lib/python/debian_linux/gencontrol.py
- Support config underlay.
- Add some small default implementations.

r5295:  waldi | 2006-01-05 19:39:55 +0100
debian/README: Remove outdated information.

r5325:  waldi | 2006-01-06 22:40:17 +0100
debian/bin/apply.py
- Don't reference the debian_linux module, it is not available.
- Unlink version file before writing to them.


Modified: dists/trunk/linux-2.6/debian/README
==============================================================================
--- dists/trunk/linux-2.6/debian/README	(original)
+++ dists/trunk/linux-2.6/debian/README	Fri Jan  6 22:32:16 2006
@@ -8,26 +8,13 @@
 subarches the subdirectory arch/<arch>/<subarch> with the same file
 structure must be created for each subarch.
 
-Support for arch/subarch-specific patches
------------------------------------------
-Patches specific to a particular architecture or subarchitecture and
-not included into the debian patch set should be placed in the
-debian/patches-arch subdirectory. Patch must be named <arch>.diff or
-<subarch>.diff. If such patch is present, it will be automatically
-applied during the unpacking of the build tree for a particular
-(sub)architecture. Patches present in the debian/patches-arch will also
-be included in the kernel-patch-debian package, suitable for building
-kernels with make-kpkg.
-
-Config files
-------------
+Kernel config files
+-------------------
 Configuration files are constructed dynamically by concatenating a number
 of config files as described below. 
 
 For architecture without subarches:
 
-  Configuration file for kernel-image:
-
   arch/config
   arch/<arch>/config 
   arch/<arch>/config.<flavour>
@@ -65,14 +52,7 @@
 	       this is unset, it will default to @class at .
 @desc@         (Potentially) multi-line verbiage that's appended to
                -image descriptions.
- at ltver@        linux-tree version, a single digit.
- at srcver@       Source version, extracted from the changelog.
-               This is normally @version at -@ltver at .
- at lt_depends@   The Depends field for the linux-tree package.   
- at lt_provides@  The Provides field for the linux-tree package.
 @abiname@      Current abiname, a single digit.
- at allheaders@   Given the arch, a list of all the linux-headers packages for the
-               arch - used for kernel-headers-x.y.z-n-arch.
 
 Normally, the arch-specific contents should be controlled by
 adjusting the corresponding defines file.
@@ -85,88 +65,9 @@
 per-architecture basis and other evil things. So far the valid uses of
 this file include the setting of the following variables:
 
-headers_dirs		
-
-  This variable is substituted into the headers-install script,
-  controlling which asm-* directories are included into the
-  kernel-headers package. By default it is set to karch (see
-  above). See header-install.in file for detail. Typical usage:
-  
-  headers_dirs := sparc | sparc64
-
-headers_subarch
-
-  The subarch to pass to the --subarch option for the make-kpkg
-  call to build the kernel-headers. Typical usage:
-
-  headers_subarch := sparc64
-
-build_subarch
-
-  Setting this variable to non-empty value will cause an option
-  --subarch $(build_subarch) added to 'build' and 'kernel-image'
-  make-kpkg calls. If a substring @flavour@ is present in the
-  definition of this variable, it will be expanded to the current
-  flavour during build time. In general, if you wish to add subarch
-  support for your architecture, you should contact kernel-package
-  maintainer to ensure that the flavour name correctly maps onto a
-  kernel subarch name. Typical usage:
-
-  build_subarch := pmac
-
-  or
-
-  build_subarch := @flavour@
-
-build_makeflags
-
-  This variable may contain the make flags settings for the
-  make-kpkg invocation in the 'build' target. Currently it is
-  only used by amd64, where it should be set to something like
-
-  build_makeflags := 'CC=amd64-linux-gcc V=1'
-
-  The value of the variable must be properly quoted. 
- 
-initrd_modules
-
-  This variable may contain a space-separated list of modules
-  which should be hard-linked into the /lib/modules/<version>/initrd
-  directory, so that they will be included by mkinitrd. Full
-  pathname relative to the /lib/modules/<version> directory should
-  be give, no quoting is necessary. Typical usage:
-
-  initrd_modules := kernel/drivers/video/vesafb.ko kernel/security/capability.ko
-
 image_postproc
 
   A command to be run after the kernel image is built. As far as I know,
   it only required on sparc for stripping of the kernel which is too big
   to be booted otherwise. Typical use is too ugly to be presented here.
 
-image_prefix_flavours
-image_prefix
-
-  These variables allow to prepend the 'make-kpkg kernel_image' call with
-  an arbitrary prefix for selected flavours. Some architectures have a
-  32- and 64-bit versions. If kernels are built on the 64-bit hardware, then
-  building a 32-bit kernel usually requires using a wrapper which sets the
-  correct execution domain (such as sparc32 or linux32). If the variable
-  image_prefix_flavours is non-empty and contains a space-separated list
-  if flavours, then make-kpkg invocation to create a kernel_image target
-  will be prepended with contents of the image_prefix variable. Typical
-  usage:
-
-  image_prefix_flavours := sparc32 sparc32-smp
-  image_prefix          := sparc32
-
-extra_postinstall_command
-
-  This variable, if defined, is executed at the end of the
-  post-install script, which is used by kernel-package to add or
-  modify the files going into the kernel image package.
-
-  It can use these variables (but see templates/post-install.in for
-  details): $(subarch), $(flavour), $(version) and $(abiname). Since
-  Makefile.inc is a Makefile, the leading $ need to be escaped as
-  double $$.

Modified: dists/trunk/linux-2.6/debian/arch/amd64/Makefile.inc
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/amd64/Makefile.inc	(original)
+++ dists/trunk/linux-2.6/debian/arch/amd64/Makefile.inc	Fri Jan  6 22:32:16 2006
@@ -1,5 +1,3 @@
 #
 # Variables 
 #
-headers_dirs = x86_64
-

Modified: dists/trunk/linux-2.6/debian/arch/arm/Makefile.inc
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/arm/Makefile.inc	(original)
+++ dists/trunk/linux-2.6/debian/arch/arm/Makefile.inc	Fri Jan  6 22:32:16 2006
@@ -1,5 +1,3 @@
 #
 # Variables 
 #
-include_common_config := no
-default_config := footbridge

Modified: dists/trunk/linux-2.6/debian/arch/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/defines	Fri Jan  6 22:32:16 2006
@@ -28,3 +28,7 @@
 yaird: mkinitrd.yaird
 initramfs-tools: mkinitramfs
 
+[relations]
+gcc: gcc (>= 4:4.0)
+gcc-3.3: gcc-3.3
+

Modified: dists/trunk/linux-2.6/debian/arch/hppa/Makefile.inc
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/hppa/Makefile.inc	(original)
+++ dists/trunk/linux-2.6/debian/arch/hppa/Makefile.inc	Fri Jan  6 22:32:16 2006
@@ -1,4 +1,3 @@
 #
 # Variables 
 #
-headers_dirs = parisc

Modified: dists/trunk/linux-2.6/debian/arch/hppa/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/hppa/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/hppa/defines	Fri Jan  6 22:32:16 2006
@@ -20,3 +20,6 @@
 [parisc64-smp]
 class: multi-processor 64-bit PA-RISC
 
+[relations]
+gcc: gcc (>= 4:4.0), binutils-hppa64, gcc-4.0-hppa64
+

Modified: dists/trunk/linux-2.6/debian/arch/powerpc/Makefile.inc
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/powerpc/Makefile.inc	(original)
+++ dists/trunk/linux-2.6/debian/arch/powerpc/Makefile.inc	Fri Jan  6 22:32:16 2006
@@ -1,4 +1,3 @@
 #
 # Variables 
 #
-headers_dirs = ppc | ppc64 | m68k

Modified: dists/trunk/linux-2.6/debian/arch/powerpc/defines
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/powerpc/defines	(original)
+++ dists/trunk/linux-2.6/debian/arch/powerpc/defines	Fri Jan  6 22:32:16 2006
@@ -6,7 +6,7 @@
  powerpc-miboot
  powerpc64
 kernel-header-dirs: powerpc ppc m68k
-kernel-arch: powerpc
+kernel-arch: ppc
 kpkg-subarch: ppc
 
 [apus]
@@ -23,3 +23,4 @@
 
 [powerpc64]
 kpkg-subarch: powerpc64
+kernel-arch: powerpc

Modified: dists/trunk/linux-2.6/debian/arch/sparc/Makefile.inc
==============================================================================
--- dists/trunk/linux-2.6/debian/arch/sparc/Makefile.inc	(original)
+++ dists/trunk/linux-2.6/debian/arch/sparc/Makefile.inc	Fri Jan  6 22:32:16 2006
@@ -1,7 +1,4 @@
 #
 # Variables 
 #
-headers_dirs := sparc64
 image_postproc = strip -R .comment -R .note -K sun4u_init -K _end -K _start arch/$(subst 32,,$(subst -smp,,$*))/boot/image
-# image_prefix_flavours := sparc32 sparc32-smp
-# image_prefix := sparc32

Modified: dists/trunk/linux-2.6/debian/bin/apply.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/apply.py	(original)
+++ dists/trunk/linux-2.6/debian/bin/apply.py	Fri Jan  6 22:32:16 2006
@@ -1,8 +1,7 @@
 #!/usr/bin/env python2.4
 
-import os.path, sys
+import os, os.path, re, sys
 from warnings import warn
-import debian_linux
 
 _default_home = "@home@"
 _default_revisions = "@revisions@"
@@ -207,13 +206,33 @@
 
     def __init__(self, string = None):
         if string is not None:
-            t = debian_linux.parse_version(string)
-            self.upstream = t['source_upstream']
-            self.revision = t['debian']
+            self.upstream, self.revision = self.parse(string)
 
     def __str__(self):
         return "%s-%s" % (self.upstream, self.revision)
 
+    _re = r"""
+^
+(
+    (?:
+        \d+\.\d+\.\d+\+
+    )?
+    \d+\.\d+\.\d+
+    (?:
+        -.+?
+    )?
+)
+-
+([^-]+)
+$
+"""
+
+    def parse(self, version):
+        match = re.match(self._re, version, re.X)
+        if match is None:
+            raise ValueError
+        return match.groups()
+
 class version_file(object):
     _file = 'version.Debian'
     extra = ()
@@ -252,6 +271,8 @@
             self.extra = tuple(list[1].split('_'))
 
     def _write(self):
+        if os.path.lexists(self._file):
+            os.unlink(self._file)
         file(self._file, 'w').write('%s\n' % self)
 
     def begin(self):

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	Fri Jan  6 22:32:16 2006
@@ -2,6 +2,7 @@
 import os, os.path, re, sys, textwrap, ConfigParser
 sys.path.append("debian/lib/python")
 import debian_linux.gencontrol
+from debian_linux.debian import *
 
 class gencontrol(debian_linux.gencontrol.gencontrol):
     def do_main_packages(self, packages):
@@ -126,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
@@ -141,16 +142,14 @@
                 break
             versions.insert(0, i['Version'])
         for i in (('Depends', 'Provides')):
-            value = []
-            tmp = entry.get(i, None)
-            if tmp:
-                value.extend([j.strip() for j in tmp.split(',')])
+            value = package_relation_list()
+            value.extend(entry.get(i, []))
             if i == 'Depends':
                 value.append("linux-patch-debian-%(version)s (= %(source)s)" % self.changelog[0]['Version'])
                 value.append(' | '.join(["linux-source-%(version)s (= %(source)s)" % v for v in versions]))
             elif i == 'Provides':
                 value.extend(["linux-tree-%(source)s" % v for v in versions])
-            entry[i] = ', '.join(value)
+            entry[i] = value
         return entry
 
 if __name__ == '__main__':

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/config.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/config.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/config.py	Fri Jan  6 22:32:16 2006
@@ -6,7 +6,7 @@
 
 class config_reader(dict):
     """
-    Read configs in debian/arch and in the overlay directory.
+    Read configs in debian/arch and in the underlay directory.
     """
 
     class schema_item_boolean(object):
@@ -34,8 +34,8 @@
 
     config_name = "defines"
 
-    def __init__(self, overlay_dir = None):
-        self._overlay_dir = overlay_dir
+    def __init__(self, underlay = None):
+        self._underlay = underlay
         self._read_base()
 
     def __getitem__(self, key):
@@ -43,8 +43,8 @@
 
     def _get_files(self, name):
         ret = []
-        if self._overlay_dir is not None:
-            ret.append(os.path.join(self._overlay_dir, name))
+        if self._underlay is not None:
+            ret.append(os.path.join(self._underlay, name))
         ret.append(os.path.join('debian/arch', name))
         return ret
 
@@ -181,21 +181,20 @@
     def items(self, section, var = {}):
         ret = {}
         section = '_'.join(section)
-        exception = None
+        exceptions = []
         for config in self.configs:
             try:
                 items = config.items(section)
             except ConfigParser.NoSectionError, e:
-                exception = e
+                exceptions.append(e)
             else:
                 for key, value in items:
                     try:
                         value = self.schema[key](value)
                     except KeyError: pass
                     ret[key] = value
-                exception = None
-        if exception is not None:
-            raise exception
+        if len(exceptions) == len(self.configs):
+            raise exceptions[0]
         return ret
 
     def sections(self):

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	Fri Jan  6 22:32:16 2006
@@ -1,4 +1,4 @@
-import re, utils
+import itertools, re, utils
 
 def read_changelog():
     r = re.compile(r"""
@@ -81,3 +81,129 @@
         ret['source_upstream'] = ret['upstream']
     return ret
 
+class package_relation(object):
+    __slots__ = "name", "version", "arches"
+
+    _re = re.compile(r'^(\S+)(?: \(([^)]+)\))?(?: \[([^]]+)\])?$')
+
+    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 = []
+        else:
+            self.name = None
+            self.version = None
+            self.arches = []
+
+    def __str__(self):
+        ret = [self.name]
+        if self.version is not None:
+            ret.extend([' (', self.version, ')'])
+        if self.arches:
+            ret.extend([' [', ' '.join(self.arches), ']'])
+        return ''.join(ret)
+
+class package_relation_list(list):
+    def __init__(self, value = None):
+        if isinstance(value, (list, tuple)):
+            self.extend(value)
+        elif value is not None:
+            self.extend(value)
+
+    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())]
+        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):
+        if isinstance(value, package_relation_list):
+            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:
+                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),
+        ('Source', str),
+        ('Architecture', utils.field_list),
+        ('Section', str),
+        ('Priority', str),
+        ('Maintainer', str),
+        ('Uploaders', str),
+        ('Standards-Version', str),
+        ('Build-Depends', package_relation_list),
+        ('Build-Depends-Indep', package_relation_list),
+        ('Provides', package_relation_list),
+        ('Depends', package_relation_list),
+        ('Recommends', package_relation_list),
+        ('Suggests', package_relation_list),
+        ('Replaces', package_relation_list),
+        ('Conflicts', package_relation_list),
+        ('Description', utils.field_string),
+    ))
+
+    def __setitem__(self, key, value):
+        try:
+            value = self._fields[key](value)
+        except KeyError: pass
+        super(package, self).__setitem__(key, value)
+
+    def iterkeys(self):
+        for i in self._fields.iterkeys():
+            if self.has_key(i) and self[i]:
+                yield i
+
+    def iteritems(self):
+        for i in self._fields.iterkeys():
+            if self.has_key(i) and self[i]:
+                yield (i, self[i])
+
+    def itervalues(self):
+        for i in self._fields.iterkeys():
+            if self.has_key(i) and self[i]:
+                yield self[i]
+

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py	Fri Jan  6 22:32:16 2006
@@ -1,3 +1,4 @@
+import warnings
 from config import *
 from debian import *
 from utils import *
@@ -11,9 +12,9 @@
             self[package['Package']] = package
 
 class gencontrol(object):
-    def __init__(self):
+    def __init__(self, underlay = None):
         self.changelog = read_changelog()
-        self.config = config_reader()
+        self.config = config_reader(underlay)
         self.templates = templates()
         self.version, self.abiname, self.kpkg_abiname, self.changelog_vars = self.process_changelog({})
 
@@ -113,7 +114,8 @@
             makefile.append("%s-%s:: %s-%s-real" % (i, arch, i, arch))
 
     def do_arch_packages(self, packages, makefile, arch, vars, makeflags, extra):
-        pass
+        for i in (('binary-arch', 'build', 'setup',)):
+            makefile.append("%s-%s-real:" % (i, arch))
 
     def do_arch_packages_post(self, packages, makefile, arch, vars, makeflags, extra):
         pass
@@ -143,7 +145,8 @@
             makefile.append("%s-%s-%s:: %s-%s-%s-real" % (i, arch, subarch, i, arch, subarch))
 
     def do_subarch_packages(self, packages, makefile, arch, subarch, vars, makeflags, extra):
-        pass
+        for i in (('binary-arch', 'build', 'setup',)):
+            makefile.append("%s-%s-%s-real:" % (i, arch, subarch))
 
     def do_flavour(self, packages, makefile, arch, subarch, flavour, vars, makeflags, extra):
         config_entry = self.config['base', arch, subarch, flavour]
@@ -151,17 +154,33 @@
 
         vars['flavour'] = flavour
         if not vars.has_key('class'):
+            warnings.warn('No class entry in config for flavour %s, subarch %s, arch %s' % (flavour, subarch, arch), DeprecationWarning)
             vars['class'] = '%s-class' % flavour
         if not vars.has_key('longclass'):
             vars['longclass'] = vars['class']
 
+        config_base = self.config.merge('base', arch)
+        config_relations = self.config.merge('relations', arch)
+        compiler = config_base.get('compiler', 'gcc')
+        relations_compiler = package_relation_list(config_relations[compiler])
+        for group in relations_compiler:
+            for item in group:
+                item.arches = [arch]
+        packages['source']['Build-Depends'].extend(relations_compiler)
+
         makeflags['FLAVOUR'] = flavour
         self.do_flavour_makeflags(makeflags, arch, subarch, flavour)
         self.do_flavour_makefile(makefile, arch, subarch, flavour, makeflags)
         self.do_flavour_packages(packages, makefile, arch, subarch, flavour, vars, makeflags, extra)
 
     def do_flavour_makeflags(self, makeflags, arch, subarch, flavour):
-        pass
+        config_entry = self.config.merge('base', arch, subarch, flavour)
+        for i in (
+            ('compiler', 'COMPILER'),
+            ('kernel-arch', 'KERNEL_ARCH')
+        ):  
+            if config_entry.has_key(i[0]):
+                makeflags[i[1]] = config_entry[i[0]]
 
     def do_flavour_makefile(self, makefile, arch, subarch, flavour, makeflags):
         for i in ('binary-arch', 'build', 'setup'):
@@ -188,11 +207,17 @@
 
     def process_relation(self, key, e, in_e, vars):
         in_dep = in_e[key]
-        dep = type(in_dep)()
-        for d in in_dep:
-            d = self.substitute(d, vars)
-            if d:
-                dep.append(d)
+        dep = package_relation_list()
+        for in_groups in in_dep:
+            groups = package_relation_group()
+            for in_item in in_groups:
+                item = package_relation()
+                item.name = self.substitute(in_item.name, vars)
+                if in_item.version is not None:
+                    item.version = self.substitute(in_item.version, vars)
+                item.arches = in_item.arches
+                groups.append(item)
+            dep.append(groups)
         e[key] = dep
 
     def process_description(self, e, in_e, vars):
@@ -207,15 +232,15 @@
 
     def process_package(self, in_entry, vars):
         e = package()
-        for key in in_entry.iterkeys():
-            if key in (('Depends', 'Provides', 'Suggests', 'Recommends', 'Conflicts')):
+        for key, value in in_entry.iteritems():
+            if isinstance(value, package_relation_list):
                 self.process_relation(key, e, in_entry, vars)
             elif key == 'Description':
                 self.process_description(e, in_entry, vars)
             elif key[:2] == 'X-':
                 pass
             else:
-                e[key] = self.substitute(in_entry[key], vars)
+                e[key] = self.substitute(value, vars)
         return e
 
     def process_packages(self, in_entries, vars):

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py	Fri Jan  6 22:32:16 2006
@@ -1,4 +1,4 @@
-import re, textwrap
+import debian, re, textwrap
 
 class _sorted_dict(dict):
     __slots__ = ('_list')
@@ -77,48 +77,6 @@
     def __str__(self):
         return '\n '.join(self.split('\n'))
 
-class package(dict):
-    _fields = sorted_dict((
-        ('Package', str),
-        ('Source', str),
-        ('Architecture', field_list),
-        ('Section', str),
-        ('Priority', str),
-        ('Maintainer', str),
-        ('Uploaders', str),
-        ('Standards-Version', str),
-        ('Build-Depends', str),
-        ('Build-Depends-Indep', str),
-        ('Provides', field_list_commata),
-        ('Depends', field_list_commata),
-        ('Recommends', field_list_commata),
-        ('Suggests', field_list_commata),
-        ('Replaces', field_list_commata),
-        ('Conflicts', field_list_commata),
-        ('Description', field_string),
-    ))
-
-    def __setitem__(self, key, value):
-        try:
-            value = self._fields[key](value)
-        except KeyError: pass
-        super(package, self).__setitem__(key, value)
-
-    def iterkeys(self):
-        for i in self._fields.iterkeys():
-            if self.has_key(i) and self[i]:
-                yield i
-
-    def iteritems(self):
-        for i in self._fields.iterkeys():
-            if self.has_key(i) and self[i]:
-                yield (i, self[i])
-
-    def itervalues(self):
-        for i in self._fields.iterkeys():
-            if self.has_key(i) and self[i]:
-                yield self[i]
-
 class templates(dict):
     def __init__(self, dir = None):
         if dir is None:
@@ -143,7 +101,7 @@
         f = file("%s/%s.in" % (self.dir, filename))
 
         while True:
-            e = package()
+            e = debian.package()
             while True:
                 line = f.readline()
                 if not line:

Modified: dists/trunk/linux-2.6/debian/rules.real
==============================================================================
--- dists/trunk/linux-2.6/debian/rules.real	(original)
+++ dists/trunk/linux-2.6/debian/rules.real	Fri Jan  6 22:32:16 2006
@@ -61,9 +61,6 @@
   setup_makeflags += CC="$$$$(CROSS_COMPILE)$(COMPILER)"
 endif
 setup_env += MAKEFLAGS='$(setup_makeflags)'
-ifndef headers_dirs
-  headers_dirs = $(DEB_HOST_ARCH)
-endif
 
 #
 # Targets
@@ -84,9 +81,6 @@
 # the arch-independent config file (arch/config),
 # arch-specific config file (arch/$(karch)/config),
 # and subarch specific one (arch/$(karch)/$(subarch)/config).
-# It is possible to avoid the inclusion of the arch-indep
-# config file by setting include_common_config = no in the
-# arch/$(karch)/Makefile.inc.
 #
 config_common = debian/arch/config debian/arch/$(ARCH)/config
 ifneq ($(SUBARCH),none)
@@ -235,10 +229,11 @@
 install-headers-all:
 	dh_testdir
 	dh_testroot
-	dh_install $(DH_OPTIONS) debian/arch '/usr/src/linux-headers-$(VERSION)/debian'
-	echo $(FLAVOURS) >'debian/linux-headers-$(VERSION)/usr/src/linux-headers-$(VERSION)/flavours'
+	dh_install $(DH_OPTIONS) debian/arch '/usr/src/linux-headers-$(VERSION)'
+	dh_install $(DH_OPTIONS) debian/lib '/usr/src/linux-headers-$(VERSION)'
 	dh_installdocs $(DH_OPTIONS)
 	dh_installchangelogs $(DH_OPTIONS)
+	dh_python $(DH_OPTIONS) -V 2.4 /usr/src/linux-headers-$(VERSION)/lib/python
 	$(MAKE) -f debian/rules.real install-base DH_OPTIONS='$(DH_OPTIONS)'
 
 install-patch: PACKAGE = linux-patch-debian-$(VERSION)

Modified: dists/trunk/linux-2.6/debian/templates/control.source.in
==============================================================================
--- dists/trunk/linux-2.6/debian/templates/control.source.in	(original)
+++ dists/trunk/linux-2.6/debian/templates/control.source.in	Fri Jan  6 22:32:16 2006
@@ -4,5 +4,5 @@
 Maintainer: Debian Kernel Team <debian-kernel at lists.debian.org>
 Uploaders: Andres Salomon <dilinger at debian.org>, Bastian Blank <waldi at debian.org>, Simon Horman <horms at debian.org>, Sven Luther <luther at debian.org>, Jonas Smedegaard <dr at jones.dk>, Norbert Tretkowski <nobse at debian.org>, Frederik Schüler <fs at debian.org>
 Standards-Version: 3.6.1.0
-Build-Depends: gcc (>= 4:4.0) [!m68k], gcc-3.3 [m68k], binutils-hppa64 [hppa], gcc-4.0-hppa64 [hppa], debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 10.029), ocaml-interp, python2.4-minimal
+Build-Depends: debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 10.029), ocaml-interp, python, python2.4-minimal
 Build-Depends-Indep: docbook-utils, gs, transfig, xmlto



More information about the Kernel-svn-changes mailing list