r4062 - in trunk/kernel/linux-2.6: . debian debian/arch/powerpc debian/bin debian/lib/python debian/patches-debian debian/templates

Bastian Blank waldi at costa.debian.org
Mon Aug 29 10:09:40 UTC 2005


Author: waldi
Date: 2005-08-29 10:09:39 +0000 (Mon, 29 Aug 2005)
New Revision: 4062

Added:
   trunk/kernel/linux-2.6/debian/templates/control.headers.arch.in
Removed:
   trunk/kernel/linux-2.6/debian/templates/control.headers.main.in
Modified:
   trunk/kernel/linux-2.6/
   trunk/kernel/linux-2.6/debian/arch/powerpc/defines
   trunk/kernel/linux-2.6/debian/bin/gencontrol.py
   trunk/kernel/linux-2.6/debian/lib/python/debian_linux.py
   trunk/kernel/linux-2.6/debian/patches-debian/qla2xxx-removed.patch
   trunk/kernel/linux-2.6/debian/rules.real
   trunk/kernel/linux-2.6/debian/templates/control.headers.in
   trunk/kernel/linux-2.6/debian/templates/control.headers.latest.in
   trunk/kernel/linux-2.6/debian/templates/control.headers.subarch.in
   trunk/kernel/linux-2.6/debian/templates/control.image.in
   trunk/kernel/linux-2.6/debian/templates/control.image.latest.in
Log:
 r4026:  waldi | 2005-08-23 16:16:40 +0200
 debian/bin/gencontrol.py: Add error messages for arches without definitions.
 
 r4027:  waldi | 2005-08-23 17:17:44 +0200
 * debian/bin/gencontrol.py: Produce headers package for each subarch.
 * debian/templates/control.headers.main.in: Fix commandline.
 * debian/templates/control.headers.subarch.in: Remove.
 
 r4028:  waldi | 2005-08-23 18:04:56 +0200
 /debian/bin/gencontrol.py: Cleanup.
 
 r4029:  waldi | 2005-08-23 19:02:41 +0200
 * debian/bin/gencontrol.py: Move the logic into functions.
 * debian/lib/python/debian_linux.py
   (sorted_dict): Add.
   (entry): Implement via sorted_dict.
 
 r4030:  waldi | 2005-08-23 19:13:06 +0200
 debian/bin/gencontrol.py: Use dict for makeflags.
 
 r4031:  waldi | 2005-08-23 19:18:37 +0200
 debian/bin/gencontrol.py: Support extra packages which multiple architectures.
 
 r4032:  waldi | 2005-08-23 19:31:34 +0200
 * debian/bin/gencontrol.py: Set Architecture for each package.
 * debian/templates/control.headers.in, debian/templates/control.headers.latest.in,
   debian/templates/control.headers.subarch.in, debian/templates/control.image.in,
   debian/templates/control.image.latest.in: Remove Architecture field.
 
 r4033:  waldi | 2005-08-23 19:33:50 +0200
 debian/bin/gencontrol.py: Readd subarch headers package.
 
 r4034:  waldi | 2005-08-23 19:38:05 +0200
 debian/bin/gencontrol.py: Readd setup of variables for template substitution.
 
 r4035:  waldi | 2005-08-23 19:40:58 +0200
 debian/templates/control.headers.subarch.in: Fix package names in description.
 
 r4036:  waldi | 2005-08-23 19:49:12 +0200
 debian/lib/python/debian_linux.py
 (config): Support subarchitectures.
 
 r4037:  waldi | 2005-08-23 22:05:05 +0200
 Add support for linux-headers-$version-all package.
 It is currently blocked by #324741.
 
 * debian/bin/gencontrol.py: Update.
 * debian/lib/python/debian_linux.py: Move none subarch to the beginning of the list.
 * debian/templates/control.headers.main.in: Add.
 
 r4038:  waldi | 2005-08-23 22:42:52 +0200
 * debian/bin/gencontrol.py: Use special rule for building the general headers package.
 * debian/rules.real: Add rules.
 * debian/templates/control.headers.main.in: Drop -all suffix.
 
 r4039:  waldi | 2005-08-23 23:12:53 +0200
 debian/lib/python/debian_linux.py: Support overlay config.
 
 r4040:  waldi | 2005-08-23 23:13:33 +0200
 debian/rules.real: Fix installation of common headers package.
 
 r4045:  waldi | 2005-08-24 00:52:03 +0200
 * debian/arch/powerpc/defines: Add kernel arch settings.
 * debian/lib/python/debian_linux.py: Support kernel arch settings.
 
 r4047:  waldi | 2005-08-24 10:31:57 +0200
 * debian/bin/gencontrol.py: Add proper Architecture line to headers package.
 * debian/templates/control.headers.arch.in: Move from
   debian/templates/control.headers.main.in.
 
 r4049:  waldi | 2005-08-24 19:49:53 +0200
 debian/patches-debian/qla2xxx-removed.patch: Don't remove Kconfig entry.



Property changes on: trunk/kernel/linux-2.6
___________________________________________________________________
Name: svk:merge
   - 510b9475-24dd-0310-9b6c-e0eefe99d49f:/people/waldi/kernel/linux-2.6:3982
   + 510b9475-24dd-0310-9b6c-e0eefe99d49f:/people/waldi/kernel/linux-2.6:4049

Modified: trunk/kernel/linux-2.6/debian/arch/powerpc/defines
===================================================================
--- trunk/kernel/linux-2.6/debian/arch/powerpc/defines	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/arch/powerpc/defines	2005-08-29 10:09:39 UTC (rev 4062)
@@ -3,6 +3,7 @@
  powerpc
  powerpc-smp
  powerpc64
+kernel-arch: ppc
 kpkg-subarch: powerpc
 
 [powerpc]
@@ -12,4 +13,5 @@
 depends: mkvmlinuz (>= 13)
 
 [powerpc64]
+kernel-arch: ppc64
 kpkg-subarch: powerpc64

Modified: trunk/kernel/linux-2.6/debian/bin/gencontrol.py
===================================================================
--- trunk/kernel/linux-2.6/debian/bin/gencontrol.py	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/bin/gencontrol.py	2005-08-29 10:09:39 UTC (rev 4062)
@@ -3,27 +3,35 @@
 sys.path.append("debian/lib/python")
 from debian_linux import *
 
+class packages_list(sorted_dict):
+    def append(self, package):
+        self[package['Package']] = package
+
+    def extend(self, packages):
+        for package in packages:
+            self[package['Package']] = package
+
 def read_changelog():
     r = re.compile(r"""
 ^
 (
-    (?P<header>
-        (?P<header_source>
-            \w[-+0-9a-z.]+
-        )
-        \ 
-        \(
-        (?P<header_version>
-            [^\(\)\ \t]+
-        )
-        \)
-        \s+
-        (?P<header_distribution>
-            [-0-9a-zA-Z]+
-        )
-        \;
+(?P<header>
+    (?P<header_source>
+        \w[-+0-9a-z.]+
     )
+    \ 
+    \(
+    (?P<header_version>
+        [^\(\)\ \t]+
+    )
+    \)
+    \s+
+    (?P<header_distribution>
+        [-0-9a-zA-Z]+
+    )
+    \;
 )
+)
 """, re.VERBOSE)
     f = file("debian/changelog")
     entries = []
@@ -103,6 +111,21 @@
     match = re.match(version_re, version, re.X)
     return match.groupdict()
 
+def process_changelog(in_vars, changelog):
+    ret = [None, None, None, None]
+    ret[0] = version = changelog[0]['Version']
+    vars = in_vars.copy()
+    if version['modifier'] is not None:
+        ret[1] = vars['abiname'] = version['modifier']
+        ret[2] = ""
+    else:
+        ret[1] = vars['abiname'] = c['base']['abiname']
+        ret[2] = "-%s" % vars['abiname']
+    vars['version'] = version['version']
+    vars['major'] = version['major']
+    ret[3] = vars
+    return ret
+
 def process_depends(key, e, in_e, vars):
     in_dep = in_e[key].split(',')
     dep = []
@@ -197,12 +220,6 @@
         return vars[match.group(1)]
     return re.sub(r'@([a-z_]+)@', subst, s)
 
-def vars_changelog(vars, changelog):
-    version = changelog[0]['Version']
-    vars['version'] = version['version']
-    vars['major'] = version['major']
-    return vars
-
 def write_control(list):
     write_rfc822(file("debian/control", 'w'), list)
 
@@ -218,191 +235,145 @@
                 f.write("\t%s\n" % j)
 
 def write_rfc822(f, list):
-    for i in list:
-        for j in i.iteritems():
-            f.write("%s:" % j[0])
-            for k in j[1].split('\n'):
+    for entry in list:
+        for key, value in entry.iteritems():
+            f.write("%s:" % key)
+            if isinstance(value, tuple):
+                value = value[0].join(value[1])
+            for k in value.split('\n'):
               f.write(" %s\n" % k)
         f.write('\n')
 
-def main():
-    changelog = read_changelog()
+def process_real_arch(packages, makefile, config, arch, vars, makeflags):
+    config_entry = config[arch]
+    vars.update(config_entry)
 
-    vars = {}
-    vars = vars_changelog(vars, changelog)
+    if not config_entry.get('available', True):
+        for i in ('binary-arch', 'build', 'setup'):
+            makefile.append(("%s-%s:" % (i, arch), ["@echo Architecture %s is not available!" % arch, "@exit 1"]))
+        return
 
-    c = config()
+    headers_arch = read_template("headers.arch")
+    package_headers_arch = process_package(headers_arch[0], vars)
 
-    vars.update(c['base'])
-
-    version = changelog[0]['Version']
-    if version['modifier'] is not None:
-        abiname = version['modifier']
-        kpkg_abiname = ""
-        vars['abiname'] = abiname
+    name = package_headers_arch['Package']
+    if packages.has_key(name):
+        package_headers_arch = packages.get(name)
+        package_headers_arch['Architecture'][1].append(arch)
     else:
-        abiname = c['base']['abiname']
-        kpkg_abiname = "-%s" % abiname
+        package_headers_arch['Architecture'] = (' ', [arch])
+        package_headers_arch['Depends'] = (', ', [])
+        packages.append(package_headers_arch)
 
-    arches = {}
-    subarches_architecture = {}
-    for arch in c['base']['arches']:
-        if not c[arch].get('available', True):
-            continue
-        t1 = {}
-        for subarch in c[arch].get('subarches', []):
-            t2 = {}
-            if subarch != 'none':
-                for flavour in c["%s-%s" % (arch, subarch)].get('flavours', []):
-                    t2[flavour] = True
-            else:
-                for flavour in c[arch].get('flavours', []):
-                    t2[flavour] = True
-                subarch = None
-            t1[subarch] = t2
-            t3 = subarches_architecture.get(subarch, {})
-            t3[arch] = True
-            subarches_architecture[subarch] = t3
-        arches[arch] = t1
+    for i in (('binary-arch', 'setup',)):
+        makefile.append(("%s-%s:: %s-%s-real" % (i, arch, i, arch), None))
 
-    packages = []
-    makefile = []
+    makeflags['ARCH'] = arch
+    makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
 
-    source = read_template("source")
-    packages.append(process_package(source[0], vars))
+    cmds_binary_arch = []
+    cmds_setup = []
+    cmds_binary_arch.append(("$(MAKE) -f debian/rules.real install-headers-all %s" % makeflags_string,))
+    cmds_setup.append(("$(MAKE) -f debian/rules.real setup-arch %s" % makeflags_string,))
+    makefile.append(("setup-%s-real:" % arch, cmds_setup))
+    makefile.append(("binary-arch-%s-real:" % arch, cmds_binary_arch))
 
-    main = read_template("main")
-    packages.extend(process_packages(main, vars))
+    for subarch in config_entry['subarches']:
+        process_real_subarch(packages, makefile, config, arch, subarch, vars.copy(), makeflags.copy(), package_headers_arch)
 
-    tree = read_template("tree")
-    packages.append(process_real_tree(tree[0], changelog, vars))
+def process_real_flavour(packages, makefile, config, arch, subarch, flavour, vars, makeflags, package_headers_arch):
+    config_entry = config['-'.join((arch, subarch, flavour))]
+    vars.update(config_entry)
 
-    headers_main = read_template("headers.main")
-    a = subarches_architecture[None].keys()
-    a.sort()
-    b = vars.copy()
-    b['arch'] = ' '.join(a)
-    packages.append(process_package(headers_main[0], b))
+    vars['flavour'] = flavour
+    if not vars.has_key('class'):
+        vars['class'] = '%s-class' % flavour
+    if not vars.has_key('longclass'):
+        vars['longclass'] = vars['class']
 
+    image = read_template("image")
     headers = read_template("headers")
+    image_latest = read_template("image.latest")
     headers_latest = read_template("headers.latest")
-    image = read_template("image")
-    image_latest = read_template("image.latest")
 
-    makeflags = [
-        "VERSION='%s'" % version['version'],
-        "SOURCE_VERSION='%s'" % version['source'],
-        "UPSTREAM_VERSION='%s'" % version['upstream'],
-    ]
-    cmds_binary_indep = []
-    cmds_binary_indep.append(("$(MAKE) -f debian/rules.real binary-indep %s" % ' '.join(makeflags),))
-    makefile.append(("binary-indep:", cmds_binary_indep))
+    packages_own = []
+    packages_dummy = []
+    packages_own.append(process_real_image(image[0], vars))
+    packages_own.append(process_package(headers[0], vars))
+    packages_dummy.extend(process_packages(image_latest, vars))
+    packages_dummy.append(process_package(headers_latest[0], vars))
 
-    arch_list = arches.keys()
-    arch_list.sort()
-    for arch in arch_list:
-        arch_vars = vars.copy()
-        arch_vars['arch'] = arch
-        arch_vars.update(c[arch])
+    for package in packages_own + packages_dummy:
+        name = package['Package']
+        if packages.has_key(name):
+            package = packages.get(name)
+            package['Architecture'][1].append(arch)
+        else:
+            package['Architecture'] = (' ', [arch])
+            packages.append(package)
 
-        for i in (('setup',)):
-            makefile.append(("%s-%s:: %s-%s-real" % (i, arch, i, arch), None))
+    package_headers_arch['Depends'][1].append("%s [%s]" % (packages_own[1]['Package'], arch))
 
-        arch_makeflags = makeflags[:]
-        arch_makeflags.append("ARCH='%s'" % arch)
-        cmds_setup = []
-        cmds_setup.append(("$(MAKE) -f debian/rules.real setup-arch %s" % ' '.join(arch_makeflags),))
-        makefile.append(("setup-%s-real:" % arch, cmds_setup))
+    for i in ('binary-arch', 'build', 'setup'):
+        makefile.append(("%s-%s-%s:: %s-%s-%s-%s" % (i, arch, subarch, i, arch, subarch, flavour), None))
+        makefile.append(("%s-%s-%s-%s:: %s-%s-%s-%s-real" % (i, arch, subarch, flavour, i, arch, subarch, flavour), None))
 
-        subarch_list = arches[arch].keys()
-        subarch_list.sort()
-        for subarch in subarch_list:
-            subarch_vars = arch_vars.copy()
+    makeflags['FLAVOUR'] = flavour
+    if config_entry.has_key('kpkg-subarch'):
+        makeflags['KPKG_SUBARCH'] = config_entry['kpkg-subarch']
+    makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
 
-            if subarch is not None:
-                subarch_text = subarch
-                subarch_vars['subarch'] = '%s-' % subarch
-                subarch_vars.update(c['%s-%s' % (arch, subarch)])
-            else:
-                subarch_text = 'none'
-                subarch_vars['subarch'] = ''
+    cmds_binary_arch = []
+    cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-flavour %s" % makeflags_string,))
+    cmds_binary_arch.append(("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='%s'" % ' '.join(["-p%s" % i['Package'] for i in packages_dummy]),))
+    cmds_build = []
+    cmds_build.append(("$(MAKE) -f debian/rules.real build %s" % makeflags_string,))
+    cmds_setup = []
+    cmds_setup.append(("$(MAKE) -f debian/rules.real setup-flavour %s" % makeflags_string,))
+    makefile.append(("binary-arch-%s-%s-%s-real:" % (arch, subarch, flavour), cmds_binary_arch))
+    makefile.append(("build-%s-%s-%s-real:" % (arch, subarch, flavour), cmds_build))
+    makefile.append(("setup-%s-%s-%s-real:" % (arch, subarch, flavour), cmds_setup))
 
-            for i in ('binary-arch', 'build', 'setup'):
-                makefile.append(("%s-%s:: %s-%s-%s" % (i, arch, i, arch, subarch_text), None))
-                makefile.append(("%s-%s-%s::" % (i, arch, subarch_text), None))
-            for i in ('binary-arch', 'setup'):
-                makefile.append(("%s-%s-%s:: %s-%s-%s-real" % (i, arch, subarch_text, i, arch, subarch_text), None))
+def process_real_main(packages, makefile, config, version, abiname, kpkg_abiname, changelog, vars):
+    source = read_template("source")
+    packages['source'] = process_package(source[0], vars)
 
-            subarch_makeflags = arch_makeflags[:]
-            subarch_makeflags.extend([
-                "SUBARCH='%s'" % subarch_text,
-                "ABINAME='%s'" % abiname,
-                "KPKG_ABINAME='%s'" % kpkg_abiname,
-            ])
-            subarch_makeflags_clean = subarch_makeflags[:]
-            if subarch_vars.has_key('kpkg-subarch'):
-                subarch_makeflags.append("KPKG_SUBARCH='%s'" % subarch_vars['kpkg-subarch'])
+    main = read_template("main")
+    packages.extend(process_packages(main, vars))
 
-            cmds_binary_arch = []
-            cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-subarch %s" % ' '.join(subarch_makeflags),))
-            cmds_setup = []
-            cmds_setup.append(("$(MAKE) -f debian/rules.real setup-subarch %s" % ' '.join(subarch_makeflags),))
-            makefile.append(("binary-arch-%s-%s-real:" % (arch, subarch_text), cmds_binary_arch))
-            makefile.append(("setup-%s-%s-real:" % (arch, subarch_text), cmds_setup))
+    tree = read_template("tree")
+    packages.append(process_real_tree(tree[0], changelog, vars))
 
-            flavour_list = arches[arch][subarch].keys()
-            flavour_list.sort()
-            for flavour in flavour_list:
-                flavour_vars = subarch_vars.copy()
-                flavour_vars['flavour'] = flavour
+    makeflags = {
+        'VERSION': version['version'],
+        'SOURCE_VERSION': version['source'],
+        'UPSTREAM_VERSION': version['upstream'],
+        'ABINAME': abiname,
+        'KPKG_ABINAME': kpkg_abiname,
+    }
+    makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
 
-                try:
-                    flavour_vars.update(c['%s-%s-%s' % (arch, subarch_text, flavour)])
-                except ConfigParser.NoSectionError: pass
-                if not flavour_vars.has_key('class'):
-                    flavour_vars['class'] = '%s-class' % flavour
-                if not flavour_vars.has_key('longclass'):
-                    flavour_vars['longclass'] = flavour_vars['class']
+    cmds_binary_indep = []
+    cmds_binary_indep.append(("$(MAKE) -f debian/rules.real binary-indep %s" % makeflags_string,))
+    makefile.append(("binary-indep:", cmds_binary_indep))
 
-                dummy_packages = []
-                dummy_packages.extend(process_packages(image_latest, flavour_vars))
-                packages.append(process_real_image(image[0], flavour_vars))
-                dummy_packages.append(process_package(headers_latest[0], flavour_vars))
-                packages.append(process_package(headers[0], flavour_vars))
-                packages.extend(dummy_packages)
+    for arch in iter(config['base']['arches']):
+        process_real_arch(packages, makefile, config, arch, vars.copy(), makeflags.copy())
 
-                for i in ('binary-arch', 'build', 'setup'):
-                    makefile.append(("%s-%s-%s:: %s-%s-%s-%s" % (i, arch, subarch_text, i, arch, subarch_text, flavour), None))
-                    makefile.append(("%s-%s-%s-%s:: %s-%s-%s-%s-real" % (i, arch, subarch_text, flavour, i, arch, subarch_text, flavour), None))
-
-                flavour_makeflags = subarch_makeflags_clean[:]
-                flavour_makeflags.append("FLAVOUR='%s'" % flavour)
-                if flavour_vars.has_key('kpkg-subarch'):
-                    flavour_makeflags.append("KPKG_SUBARCH='%s'" % flavour_vars['kpkg-subarch'])
-                cmds_binary_arch = []
-                cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-flavour %s" % ' '.join(flavour_makeflags),))
-                cmds_binary_arch.append(("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='%s'" % ' '.join(["-p%s" % i['Package'] for i in dummy_packages]),))
-                cmds_build = []
-                cmds_build.append(("$(MAKE) -f debian/rules.real build %s" % ' '.join(flavour_makeflags),))
-                cmds_setup = []
-                cmds_setup.append(("$(MAKE) -f debian/rules.real setup-flavour %s" % ' '.join(flavour_makeflags),))
-                makefile.append(("binary-arch-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_binary_arch))
-                makefile.append(("build-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_build))
-                makefile.append(("setup-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_setup))
-
     extra = read_template("extra")
     packages.extend(process_packages(extra, vars))
     extra_pn = {}
     for i in extra:
-        a = i['Architecture']
-        pn = extra_pn.get(a, [])
-        pn.append(i)
-        extra_pn[a] = pn
+        arches = i['Architecture'].split(' ')
+        for arch in arches:
+            pn = extra_pn.get(arch, [])
+            pn.append(i)
+            extra_pn[arch] = pn
     archs = extra_pn.keys()
     archs.sort()
     for arch in archs:
         arch_vars = vars.copy()
-        arch_vars.update(c[arch])
+        arch_vars.update(config[arch])
 
         cmds = []
         for i in extra_pn[arch]:
@@ -413,7 +384,61 @@
         makefile.append(("binary-arch-%s:: binary-arch-%s-extra" % (arch, arch), None))
         makefile.append(("binary-arch-%s-extra:" % arch, cmds))
 
-    write_control(packages)
+def process_real_subarch(packages, makefile, config, arch, subarch, vars, makeflags, package_headers_arch):
+    if subarch == 'none':
+        vars['subarch'] = ''
+        config_entry = config[arch]
+    else:
+        vars['subarch'] = '%s-' % subarch
+        config_entry = config['%s-%s' % (arch, subarch)]
+    vars.update(config_entry)
+
+    headers_subarch = read_template("headers.subarch")
+
+    package_headers = process_package(headers_subarch[0], vars)
+
+    name = package_headers['Package']
+    if packages.has_key(name):
+        package_headers = packages.get(name)
+        package_headers['Architecture'][1].append(arch)
+    else:
+        package_headers['Architecture'] = (' ', [arch])
+        packages.append(package_headers)
+
+    for i in ('binary-arch', 'build', 'setup'):
+        makefile.append(("%s-%s:: %s-%s-%s" % (i, arch, i, arch, subarch), None))
+        makefile.append(("%s-%s-%s::" % (i, arch, subarch), None))
+    for i in ('binary-arch', 'setup'):
+        makefile.append(("%s-%s-%s:: %s-%s-%s-real" % (i, arch, subarch, i, arch, subarch), None))
+
+    makeflags['SUBARCH'] = subarch
+    if config_entry.has_key('kpkg-subarch'):
+        makeflags['KPKG_SUBARCH'] = config_entry['kpkg-subarch']
+    makeflags_string = ' '.join(["%s='%s'" % i for i in makeflags.iteritems()])
+
+    cmds_binary_arch = []
+    cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-subarch %s" % makeflags_string,))
+    cmds_setup = []
+    cmds_setup.append(("$(MAKE) -f debian/rules.real setup-subarch %s" % makeflags_string,))
+    makefile.append(("binary-arch-%s-%s-real:" % (arch, subarch), cmds_binary_arch))
+    makefile.append(("setup-%s-%s-real:" % (arch, subarch), cmds_setup))
+
+    for flavour in config_entry['flavours']:
+        process_real_flavour(packages, makefile, config, arch, subarch, flavour, vars.copy(), makeflags.copy(), package_headers_arch)
+
+def main():
+    changelog = read_changelog()
+
+    c = config()
+
+    version, abiname, kpkg_abiname, vars = process_changelog({}, changelog)
+
+    packages = packages_list()
+    makefile = []
+
+    process_real_main(packages, makefile, c, version, abiname, kpkg_abiname, changelog, vars)
+
+    write_control(packages.itervalues())
     write_makefile(makefile)
 
 

Modified: trunk/kernel/linux-2.6/debian/lib/python/debian_linux.py
===================================================================
--- trunk/kernel/linux-2.6/debian/lib/python/debian_linux.py	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/lib/python/debian_linux.py	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,7 +1,5 @@
 import os, os.path, re, sys, textwrap, ConfigParser
 
-config_name = "defines"
-
 class schema_item_boolean(object):
     def __call__(self, i):
         i = i.strip().lower()
@@ -32,36 +30,56 @@
         'depends': schema_item_string,
         'desc': schema_item_string,
         'flavours': schema_item_list,
+        'kernel-arch': schema_item_string,
         'kpkg-subarch': schema_item_string,
         'longclass': schema_item_string,
         'subarches': schema_item_list,
         'suggests': schema_item_string,
     }
 
-    def __init__(self):
+    config_name = "defines"
+
+    def __init__(self, overlay_dir = None):
+        self._overlay_dir = overlay_dir
         self._read_base()
 
+    def _get_files(self, name):
+        ret = []
+        if self._overlay_dir is not None:
+            ret.append(os.path.join(self._overlay_dir, name))
+        ret.append(name)
+        return ret
+
     def _read_arch(self, arch, base):
-        file = "debian/arch/%s/%s" % (arch, config_name)
+        files = self._get_files("debian/arch/%s/%s" % (arch, self.config_name))
         c = config_parser(self.schema)
-        c.read(file)
+        c.read(files)
         t = c.items_convert('base')
         base.update(t)
         self[arch] = t
         subarches = t.get('subarches', [])
         for subarch in subarches:
-            raise RuntimeError
+            try:
+                t2 = c.items_convert(subarch)
+                avail = t2.get('available', True)
+            except ConfigParser.NoSectionError:
+                t2 = {}
+                avail = True
+            if avail:
+                self._read_subarch(arch, subarch, t2)
+            else:
+                self['-'.join((arch, subarch))] = t2
         flavours = t.get('flavours', None)
         if flavours:
             for flavour in flavours:
                 self._read_flavour(arch, 'none', flavour, c)
-            subarches.append('none')
+            subarches.insert(0, 'none')
         t['subarches'] = subarches
 
     def _read_base(self):
-        file = "debian/arch/%s" % config_name
+        files = self._get_files("debian/arch/%s" % self.config_name)
         c = config_parser(self.schema)
-        c.read(file)
+        c.read(files)
         t1 = c.items_convert('base')
         self['base'] = t1
         for arch in t1['arches']:
@@ -87,6 +105,17 @@
                 t = {}
         self["%s-%s-%s" % (arch, subarch, flavour)] = t
 
+    def _read_subarch(self, arch, subarch, base):
+        files = self._get_files("debian/arch/%s/%s/%s" % (arch, subarch, self.config_name))
+        c = config_parser(self.schema)
+        c.read(files)
+        t = c.items_convert('base')
+        base.update(t)
+        self['-'.join((arch, subarch))] = t
+        flavours = t.get('flavours', None)
+        for flavour in flavours:
+            self._read_flavour(arch, subarch, flavour, c)
+
 class config_parser(object, ConfigParser.ConfigParser):
     def __init__(self, schema):
         ConfigParser.ConfigParser.__init__(self)
@@ -100,35 +129,48 @@
             ret[key] = convert(value)
         return ret
 
-class entry(dict):
+class _sorted_dict(dict):
     __slots__ = ('_list')
 
     def __init__(self):
-        super(entry, self).__init__()
+        super(_sorted_dict, self).__init__()
         self._list = []
 
     def __delitem__(self, key):
-        super(entry, self).__delitem__(key)
+        super(_sorted_dict, self).__delitem__(key)
         self._list.remove(key)
 
+    def iterkeys(self):
+        for i in iter(self._list):
+            yield i
+
+    def iteritems(self):
+        for i in iter(self._list):
+            yield (i, self[i])
+
+    def itervalues(self):
+        for i in iter(self._list):
+            yield self[i]
+
+class sorted_dict(_sorted_dict):
+    __slots__ = ()
+
     def __setitem__(self, key, value):
+        super(sorted_dict, self).__setitem__(key, value)
+        if key not in self._list:
+            self._list.append(key)
+
+class entry(_sorted_dict):
+    __slots__ = ()
+
+    def __setitem__(self, key, value):
         super(entry, self).__setitem__(key, value)
-        if key.startswith('_'):
-            return
         if key not in self._list:
             if 'Description' in self._list:
                 self._list.insert(len(self._list)-1, key)
             else:
                 self._list.append(key)
 
-    def iterkeys(self):
-        for i in self._list:
-            yield i
-
-    def iteritems(self):
-        for i in self._list:
-            yield (i, self[i])
-
 class wrap(textwrap.TextWrapper):
     wordsep_re = re.compile(
         r'(\s+|'                                  # any whitespace

Modified: trunk/kernel/linux-2.6/debian/patches-debian/qla2xxx-removed.patch
===================================================================
--- trunk/kernel/linux-2.6/debian/patches-debian/qla2xxx-removed.patch	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/patches-debian/qla2xxx-removed.patch	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,15 +1,3 @@
-diff -aurN a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
---- a/drivers/scsi/Kconfig	2005-06-17 15:48:29.000000000 -0400
-+++ b/drivers/scsi/Kconfig	2005-06-18 15:19:35.000000000 -0400
-@@ -1312,8 +1312,6 @@
- 	  To compile this driver as a module, choose M here: the
- 	  module will be called qlogicpti.
- 
--source "drivers/scsi/qla2xxx/Kconfig"
--
- config SCSI_LPFC
- 	tristate "Emulex LightPulse Fibre Channel Support"
- 	depends on PCI && SCSI
 diff -aurN a/drivers/scsi/Makefile b/drivers/scsi/Makefile
 --- a/drivers/scsi/Makefile	2005-06-17 15:48:29.000000000 -0400
 +++ b/drivers/scsi/Makefile	2005-06-18 15:19:15.000000000 -0400

Modified: trunk/kernel/linux-2.6/debian/rules.real
===================================================================
--- trunk/kernel/linux-2.6/debian/rules.real	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/rules.real	2005-08-29 10:09:39 UTC (rev 4062)
@@ -250,6 +250,15 @@
 	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
 	rm -rf $(DIR)
 
+install-headers-all: DH_OPTIONS = -plinux-headers-$(VERSION)
+install-headers-all:
+	dh_testdir
+	dh_testroot
+	dh_install $(DH_OPTIONS) debian/arch /usr/src/linux-headers-$(VERSION)/debian
+	dh_installdocs $(DH_OPTIONS)
+	dh_installchangelogs $(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+
 install-patch: PACKAGE = linux-patch-debian-$(VERSION)
 install-patch: pbase := /usr/src/kernel-patches/all/$(VERSION)
 install-patch: pfull := debian/$(PACKAGE)$(pbase)

Added: trunk/kernel/linux-2.6/debian/templates/control.headers.arch.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.headers.arch.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.headers.arch.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -0,0 +1,8 @@
+Package: linux-headers- at version@
+Section: devel
+Priority: optional
+Provides: linux-headers- at version@- at abiname@-all
+Description: Common architecture-specific header files for Linux kernel @version@
+ This package provides the (sub)architecture-specific common kernel header files
+ for Linux kernel version @version@, generally used for building out-of-tree
+ kernel modules.

Modified: trunk/kernel/linux-2.6/debian/templates/control.headers.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.headers.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.headers.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,5 +1,4 @@
 Package: linux-headers- at subarch@@version at -@abiname at -@flavour@
-Architecture: @arch@
 Section: devel
 Priority: optional
 Depends: coreutils | fileutils (>= 4.0), linux-headers- at subarch@@version at -@abiname@ (= ${Source-Version})

Modified: trunk/kernel/linux-2.6/debian/templates/control.headers.latest.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.headers.latest.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.headers.latest.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,5 +1,4 @@
 Package: linux-headers- at subarch@@major at -@flavour@
-Architecture: @arch@
 Section: devel
 Priority: optional
 Depends: linux-headers- at subarch@@version at -@abiname at -@flavour@

Deleted: trunk/kernel/linux-2.6/debian/templates/control.headers.main.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.headers.main.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.headers.main.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,17 +0,0 @@
-Package: linux-headers- at version@- at abiname@
-Architecture: @arch@
-Section: devel
-Priority: optional
-Depends: coreutils | fileutils (>= 4.0)
-Provides: linux-headers, linux-headers- at major@
-Description: Common architecture-specific header files for Linux kernel @version@
- This package provides the (sub)architecture-specific common kernel header files
- for Linux kernel version @version@, generally used for building out-of-tree
- kernel modules. To obtain a complete set of headers you also need to install
- the linux-headers- at version@- at abiname@-(flavour) package, matching the
- flavour of the kernel you intend the build for. To obtain such a set for the
- currently running kernel it is sufficient to run a command
- .
- apt-get install linux-headers-$(uname -r)
- .
- and it will be unpacked in /usr/src/linux-headers- at version@- at abiname@-(flavour).

Modified: trunk/kernel/linux-2.6/debian/templates/control.headers.subarch.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.headers.subarch.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.headers.subarch.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,5 +1,4 @@
 Package: linux-headers- at subarch@@version at -@abiname@
-Architecture: @arch@
 Section: devel
 Priority: optional
 Depends: coreutils | fileutils (>= 4.0)
@@ -8,10 +7,10 @@
  This package provides the (sub)architecture-specific common kernel header files
  for Linux kernel version @version@, generally used for building out-of-tree
  kernel modules. To obtain a complete set of headers you also need to install
- the linux-headers- at version@- at abiname@-(flavour) package, matching the
+ the linux-headers- at subarch@@version at -@abiname at -(flavour) package, matching the
  flavour of the kernel you intend the build for. To obtain such a set for the
  currently running kernel it is sufficient to run a command
  .
- apt-get install linux-headers- at subarch@@version at -@abiname at -$(uname -r)
+ apt-get install linux-headers- at subarch@$(uname -r)
  .
  and it will be unpacked in /usr/src/linux-headers- at subarch@@version at -@abiname at -(flavour).

Modified: trunk/kernel/linux-2.6/debian/templates/control.image.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.image.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.image.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,5 +1,4 @@
 Package: linux-image- at subarch@@version at -@abiname at -@flavour@
-Architecture: @arch@
 Section: base
 Priority: optional
 Provides: linux-image, linux-image- at major@

Modified: trunk/kernel/linux-2.6/debian/templates/control.image.latest.in
===================================================================
--- trunk/kernel/linux-2.6/debian/templates/control.image.latest.in	2005-08-29 10:04:46 UTC (rev 4061)
+++ trunk/kernel/linux-2.6/debian/templates/control.image.latest.in	2005-08-29 10:09:39 UTC (rev 4062)
@@ -1,5 +1,4 @@
 Package: linux-image- at subarch@@flavour@
-Architecture: @arch@
 Section: base
 Priority: optional
 Depends: linux-image- at subarch@@major at -@flavour@
@@ -8,7 +7,6 @@
  @longclass@ machines.
 
 Package: linux-image- at subarch@@major at -@flavour@
-Architecture: @arch@
 Section: base
 Priority: optional
 Depends: linux-image- at subarch@@version at -@abiname at -@flavour@




More information about the Kernel-svn-changes mailing list