r3971 - in people/waldi/kernel/source/linux-2.6/debian: arch
arch/alpha arch/amd64 arch/arm arch/hppa arch/i386 arch/ia64
arch/m68k arch/powerpc arch/s390 arch/sparc bin
Bastian Blank
waldi at costa.debian.org
Thu Aug 18 18:02:09 UTC 2005
Author: waldi
Date: 2005-08-18 18:02:08 +0000 (Thu, 18 Aug 2005)
New Revision: 3971
Modified:
people/waldi/kernel/source/linux-2.6/debian/arch/alpha/defines
people/waldi/kernel/source/linux-2.6/debian/arch/amd64/defines
people/waldi/kernel/source/linux-2.6/debian/arch/arm/defines
people/waldi/kernel/source/linux-2.6/debian/arch/defines
people/waldi/kernel/source/linux-2.6/debian/arch/hppa/defines
people/waldi/kernel/source/linux-2.6/debian/arch/i386/defines
people/waldi/kernel/source/linux-2.6/debian/arch/ia64/defines
people/waldi/kernel/source/linux-2.6/debian/arch/m68k/defines
people/waldi/kernel/source/linux-2.6/debian/arch/powerpc/defines
people/waldi/kernel/source/linux-2.6/debian/arch/s390/defines
people/waldi/kernel/source/linux-2.6/debian/arch/sparc/defines
people/waldi/kernel/source/linux-2.6/debian/bin/gencontrol.py
Log:
Use own config to define arches, subarches and flavours.
* debian/arch/defines: Include architecture definitions.
* debian/arch/alpha/defines, debian/arch/amd64/defines, debian/arch/arm/defines,
debian/arch/hppa/defines, debian/arch/i386/defines, debian/arch/ia64/defines,
debian/arch/m68k/defines, debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Include flavour definitions.
* debian/bin/gencontrol.py
- Read all configs at once.
- Use config definitions for arch, subarch and flavour detection.
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/alpha/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/alpha/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/alpha/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,5 @@
-[DEFAULT]
+[base]
+flavours: alpha-generic alpha-smp
suggests: aboot, fdutils
[alpha-generic]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/amd64/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/amd64/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/amd64/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,3 +1,9 @@
-[DEFAULT]
+[base]
depends: e2fsprogs (>= 1.35-7)
+flavours:
+ amd64-generic
+ amd64-k8
+ amd64-k8-smp
+ em64t-p4
+ em64t-p4-smp
suggests: lilo (>= 19.1) | grub, fdutils
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/arm/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/arm/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/arm/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,2 +1,7 @@
-[DEFAULT]
+[base]
+flavours:
+ footbridge
+ ixp4xx
+ rpc
+ s3c2410
suggests: fdutils
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,2 +1,24 @@
-[DEFAULT]
+[base]
abiname: 1
+arches:
+ alpha
+ amd64
+ arm
+ hppa
+ i386
+ ia64
+ m68k
+ mips
+ mipsel
+ powerpc
+ s390
+ sparc
+
+[alpha]
+#enabled: False
+
+[mips]
+available: False
+
+[mipsel]
+available: False
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/hppa/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/hppa/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/hppa/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,9 @@
-[DEFAULT]
+[base]
+flavours:
+ 32
+ 32-smp
+ 64
+ 64-smp
suggests: palo
[32]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/i386/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/i386/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/i386/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,10 @@
-[DEFAULT]
+[base]
+flavours:
+ 386
+ 686
+ 686-smp
+ k7
+ k7-smp
suggests: lilo (>= 19.1) | grub, fdutils
[686]
@@ -13,7 +19,6 @@
class: AMD K7
longclass: 32bit AMD Duron/Athlon/AthlonXP
-
[k7-smp]
class: AMD K7 SMP
longclass: 32-bit multi-processor AMD Duron/Athlon/AthlonXP
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/ia64/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/ia64/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/ia64/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,9 @@
-[DEFAULT]
+[base]
+flavours:
+ itanium
+ itanium-smp
+ mckinley
+ mckinley-smp
suggests: elilo, fdutils
[itanium]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/m68k/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/m68k/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/m68k/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,14 @@
-[DEFAULT]
+[base]
+flavours:
+ amiga
+ atari
+ bvme6000
+ hp
+ mac
+ mvme147
+ mvme16x
+ q40
+ sun3
suggests: vmelilo, fdutils
[amiga]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/powerpc/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/powerpc/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/powerpc/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,8 @@
-[DEFAULT]
+[base]
+flavours:
+ powerpc
+ powerpc-smp
+ powerpc64
kpkg-subarch: powerpc
[powerpc]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/s390/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/s390/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/s390/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,5 +1,6 @@
-[DEFAULT]
+[base]
desc: This kernel has support to IPL (boot) from a VM reader or DASD device.
+flavours: s390 s390x
suggests: s390-tools
[s390]
Modified: people/waldi/kernel/source/linux-2.6/debian/arch/sparc/defines
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/arch/sparc/defines 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/arch/sparc/defines 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,4 +1,5 @@
-[DEFAULT]
+[base]
+flavours: sparc64 sparc64-smp
suggests: silo, fdutils
[sparc64]
Modified: people/waldi/kernel/source/linux-2.6/debian/bin/gencontrol.py
===================================================================
--- people/waldi/kernel/source/linux-2.6/debian/bin/gencontrol.py 2005-08-18 17:58:13 UTC (rev 3970)
+++ people/waldi/kernel/source/linux-2.6/debian/bin/gencontrol.py 2005-08-18 18:02:08 UTC (rev 3971)
@@ -1,6 +1,108 @@
#!/usr/bin/env python
import os, os.path, re, sys, textwrap, ConfigParser
+config_name = "defines"
+
+class schema_item_boolean(object):
+ def __call__(self, i):
+ i = i.strip().lower()
+ if i in ("true", "1"):
+ return True
+ if i in ("false", "0"):
+ return False
+ raise Error
+
+class schema_item_integer(object):
+ def __call__(self, i):
+ return int(i)
+
+class schema_item_list(object):
+ def __call__(self, i):
+ return re.split("\s+", i.strip())
+
+class schema_item_string(object):
+ def __call__(self, i):
+ return str(i)
+
+class config(dict):
+ schema = {
+ 'abiname': schema_item_string,
+ 'arches': schema_item_list,
+ 'available': schema_item_boolean,
+ 'class': schema_item_string,
+ 'depends': schema_item_string,
+ 'desc': schema_item_string,
+ 'flavours': schema_item_list,
+ 'kpkg-subarch': schema_item_string,
+ 'longclass': schema_item_string,
+ 'subarches': schema_item_list,
+ 'suggests': schema_item_string,
+ }
+
+ def __init__(self):
+ self._read_base()
+# import pprint
+# pprint.pprint(dict(self))
+
+ def _read_arch(self, arch, base):
+ file = "debian/arch/%s/%s" % (arch, config_name)
+ c = config_parser(self.schema)
+ c.read(file)
+ t = c.items_convert('base')
+ base.update(t)
+ self[arch] = t
+ subarches = t.get('subarches', [])
+ for subarch in subarches:
+ raise RuntimeError
+ flavours = t.get('flavours', None)
+ if flavours:
+ for flavour in flavours:
+ self._read_flavour(arch, 'none', flavour, c)
+ subarches.append('none')
+ t['subarches'] = subarches
+
+ def _read_base(self):
+ file = "debian/arch/%s" % config_name
+ c = config_parser(self.schema)
+ c.read(file)
+ t1 = c.items_convert('base')
+ self['base'] = t1
+ for arch in t1['arches']:
+ try:
+ t2 = c.items_convert(arch)
+ avail = t2.get('available', True)
+ except ConfigParser.NoSectionError:
+ t2 = {}
+ avail = True
+ if avail:
+ self._read_arch(arch, t2)
+ else:
+ self[arch] = t2
+
+ def _read_flavour(self, arch, subarch, flavour, c):
+ try:
+ t = c.items_convert(flavour)
+ except ConfigParser.NoSectionError:
+ try:
+ t = c.items_convert("%s-none-%s" % (arch, flavour))
+ except ConfigParser.NoSectionError:
+ #raise RuntimeError("Don't find config for %s-none-%s!" % (arch, flavour))
+ t = {}
+ self["%s-%s-%s" % (arch, subarch, flavour)] = t
+
+class config_parser(object, ConfigParser.ConfigParser):
+ def __init__(self, schema):
+ ConfigParser.ConfigParser.__init__(self)
+ self.schema = schema
+
+ def items_convert(self, section):
+ items = self.items(section)
+ ret = {}
+ for key, value in items:
+ convert = self.schema[key]()
+ ret[key] = convert(value)
+ return ret
+
class entry(dict):
__slots__ = ('_list')
@@ -35,55 +137,6 @@
r'(\s+|' # any whitespace
r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash
-def config():
- c = ConfigParser.ConfigParser()
- c.read("debian/arch/defines")
- return c
-
-def config_arch(arch):
- c = config()
- c.read("debian/arch/%s/defines" % arch)
- return c
-
-def config_subarch(arch, subarch):
- c = config_arch(arch)
- if subarch is not None:
- c.read("debian/arch/%s/%s/defines" % (arch, subarch))
- return c
-
-def list_dirs(dir):
- ret = []
- for i in os.listdir(dir):
- if i not in ('.svn',) and os.path.isdir(os.path.join(dir, i)):
- ret.append(i)
- return ret
-
-def list_files(dir):
- ret = []
- for i in os.listdir(dir):
- if os.path.isfile(os.path.join(dir, i)):
- ret.append(i)
- return ret
-
-def list_arches():
- return list_dirs("debian/arch")
-
-def list_subarches(arch):
- ret = [None]
- ret.extend(list_dirs("debian/arch/%s" % arch))
- return ret
-
-def list_flavours(arch, subarch):
- dir = "debian/arch/%s" % arch
- if subarch is not None:
- dir += "/%s" % subarch
- tmp = list_files(dir)
- ret = []
- for i in tmp:
- if i[:7] == 'config.':
- ret.append(i[7:])
- return ret
-
def read_changelog():
r = re.compile(r"""
^
@@ -268,7 +321,7 @@
f.write(" %s\n" % k)
f.write('\n')
-if __name__ == '__main__':
+def main():
changelog = read_changelog()
vars = {}
@@ -277,16 +330,23 @@
version = vars['version']
source_version = vars['srcver']
- vars.update(config().defaults())
+ c = config()
+ vars.update(c['base'])
+
arches = {}
subarches_architecture = {}
- for arch in list_arches():
+ for arch in c['base']['arches']:
t1 = {}
- for subarch in list_subarches(arch):
+ for subarch in c[arch].get('subarches', []):
t2 = {}
- for flavour in list_flavours(arch, subarch):
- t2[flavour] = True
+ 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
@@ -327,7 +387,7 @@
for arch in arch_list:
arch_vars = vars.copy()
arch_vars['arch'] = arch
- arch_vars.update(config_arch(arch).defaults())
+ arch_vars.update(c[arch])
for i in (('setup',)):
makefile.append(("%s-%s:: %s-%s-real" % (i, arch, i, arch), None))
@@ -341,13 +401,12 @@
subarch_list = arches[arch].keys()
subarch_list.sort()
for subarch in subarch_list:
- subarch_config = config_subarch(arch, subarch)
subarch_vars = arch_vars.copy()
- subarch_vars.update(subarch_config.defaults())
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'] = ''
@@ -372,8 +431,9 @@
for flavour in flavour_list:
flavour_vars = subarch_vars.copy()
flavour_vars['flavour'] = flavour
+
try:
- flavour_vars.update(dict(subarch_config.items(flavour)))
+ 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
@@ -418,7 +478,7 @@
archs.sort()
for arch in archs:
arch_vars = vars.copy()
- arch_vars.update(config_arch(arch).defaults())
+ arch_vars.update(c[arch])
cmds = []
for i in extra_pn[arch]:
@@ -433,3 +493,5 @@
write_makefile(makefile)
+if __name__ == '__main__':
+ main()
More information about the Kernel-svn-changes
mailing list