2006-01-06 22:32:16 +00:00
|
|
|
import warnings
|
2006-01-04 19:33:32 +00:00
|
|
|
from config import *
|
|
|
|
from debian import *
|
|
|
|
from utils 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
|
|
|
|
|
2006-08-29 09:53:31 +00:00
|
|
|
class flags(dict):
|
|
|
|
def __repr__(self):
|
|
|
|
repr = super(flags, self).__repr__()
|
|
|
|
return "%s(%s)" % (self.__class__.__name__, repr)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return ' '.join(["%s='%s'" % i for i in self.iteritems()])
|
|
|
|
|
|
|
|
def copy(self):
|
|
|
|
return self.__class__(super(flags, self).copy())
|
|
|
|
|
2006-01-04 19:33:32 +00:00
|
|
|
class gencontrol(object):
|
2006-03-04 13:48:18 +00:00
|
|
|
makefile_targets = ('binary-arch', 'build', 'setup', 'source')
|
|
|
|
|
2006-01-06 22:32:16 +00:00
|
|
|
def __init__(self, underlay = None):
|
2006-05-25 14:11:26 +00:00
|
|
|
self.config = config_reader_arch([underlay, "debian/arch"])
|
2006-01-04 19:33:32 +00:00
|
|
|
self.templates = templates()
|
|
|
|
|
|
|
|
def __call__(self):
|
|
|
|
packages = packages_list()
|
2006-07-19 23:22:49 +00:00
|
|
|
makefile = [('.NOTPARALLEL:', ())]
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
self.do_source(packages)
|
|
|
|
self.do_main(packages, makefile)
|
|
|
|
self.do_extra(packages, makefile)
|
|
|
|
|
|
|
|
self.write_control(packages.itervalues())
|
|
|
|
self.write_makefile(makefile)
|
|
|
|
|
|
|
|
def do_source(self, packages):
|
|
|
|
source = self.templates["control.source"]
|
2006-04-14 16:52:33 +00:00
|
|
|
packages['source'] = self.process_package(source[0], self.vars)
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def do_main(self, packages, makefile):
|
2006-04-28 19:34:43 +00:00
|
|
|
config_entry = self.config['base',]
|
|
|
|
vars = self.vars.copy()
|
|
|
|
vars.update(config_entry)
|
|
|
|
|
2006-08-29 09:53:31 +00:00
|
|
|
makeflags = flags()
|
2006-06-24 11:39:08 +00:00
|
|
|
extra = {}
|
|
|
|
|
|
|
|
self.do_main_setup(vars, makeflags, extra)
|
|
|
|
self.do_main_packages(packages, extra)
|
|
|
|
self.do_main_makefile(makefile, makeflags, extra)
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
for arch in iter(self.config['base',]['arches']):
|
2006-06-24 11:39:08 +00:00
|
|
|
self.do_arch(packages, makefile, arch, vars.copy(), makeflags.copy(), extra)
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_main_setup(self, vars, makeflags, extra):
|
2006-06-24 11:58:54 +00:00
|
|
|
makeflags.update({
|
2006-08-29 09:53:31 +00:00
|
|
|
'MAJOR': self.version['linux']['major'],
|
|
|
|
'VERSION': self.version['linux']['version'],
|
|
|
|
'UPSTREAMVERSION': self.version['linux']['upstream'],
|
2006-06-24 11:58:54 +00:00
|
|
|
'ABINAME': self.abiname,
|
|
|
|
})
|
2006-01-04 19:33:32 +00:00
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_main_makefile(self, makefile, makeflags, extra):
|
2006-01-04 19:33:32 +00:00
|
|
|
cmds_binary_indep = []
|
2006-08-29 09:53:31 +00:00
|
|
|
cmds_binary_indep.append(("$(MAKE) -f debian/rules.real binary-indep %s" % makeflags,))
|
2006-01-04 19:33:32 +00:00
|
|
|
makefile.append(("binary-indep:", cmds_binary_indep))
|
|
|
|
|
2006-08-29 09:53:31 +00:00
|
|
|
def do_main_packages(self, packages, extra):
|
2006-01-04 19:33:32 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
def do_extra(self, packages, makefile):
|
|
|
|
try:
|
|
|
|
templates_extra = self.templates["control.extra"]
|
|
|
|
except IOError:
|
|
|
|
return
|
|
|
|
|
|
|
|
packages.extend(self.process_packages(templates_extra, {}))
|
|
|
|
extra_arches = {}
|
|
|
|
for package in templates_extra:
|
|
|
|
arches = package['Architecture']
|
|
|
|
for arch in arches:
|
|
|
|
i = extra_arches.get(arch, [])
|
|
|
|
i.append(package)
|
|
|
|
extra_arches[arch] = i
|
|
|
|
archs = extra_arches.keys()
|
|
|
|
archs.sort()
|
|
|
|
for arch in archs:
|
|
|
|
cmds = []
|
|
|
|
for i in extra_arches[arch]:
|
|
|
|
tmp = []
|
|
|
|
if i.has_key('X-Version-Overwrite-Epoch'):
|
|
|
|
tmp.append("-v1:%s" % self.version['source'])
|
|
|
|
cmds.append("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-p%s' GENCONTROL_ARGS='%s'" % (i['Package'], ' '.join(tmp)))
|
|
|
|
makefile.append("binary-arch-%s:: binary-arch-%s-extra" % (arch, arch))
|
|
|
|
makefile.append(("binary-arch-%s-extra:" % arch, cmds))
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_arch(self, packages, makefile, arch, vars, makeflags, extra):
|
2006-01-04 19:33:32 +00:00
|
|
|
config_entry = self.config['base', arch]
|
|
|
|
vars.update(config_entry)
|
2006-03-28 21:48:15 +00:00
|
|
|
vars['arch'] = arch
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
if not config_entry.get('available', True):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
2006-01-04 19:33:32 +00:00
|
|
|
makefile.append(("%s-%s:" % (i, arch), ["@echo Architecture %s is not available!" % arch, "@exit 1"]))
|
|
|
|
return
|
|
|
|
|
|
|
|
makeflags['ARCH'] = arch
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
|
2006-03-20 15:42:21 +00:00
|
|
|
vars['localversion'] = ''
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
self.do_arch_setup(vars, makeflags, arch, extra)
|
|
|
|
self.do_arch_makefile(makefile, arch, makeflags, extra)
|
2006-01-04 19:33:32 +00:00
|
|
|
self.do_arch_packages(packages, makefile, arch, vars, makeflags, extra)
|
|
|
|
|
|
|
|
for subarch in config_entry['subarches']:
|
|
|
|
self.do_subarch(packages, makefile, arch, subarch, vars.copy(), makeflags.copy(), extra)
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_arch_setup(self, vars, makeflags, arch, extra):
|
2006-01-04 19:33:32 +00:00
|
|
|
pass
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_arch_makefile(self, makefile, arch, makeflags, extra):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
|
|
|
makefile.append("%s:: %s-%s" % (i, i, arch))
|
2006-01-04 19:33:32 +00:00
|
|
|
makefile.append("%s-%s:: %s-%s-real" % (i, arch, i, arch))
|
|
|
|
|
|
|
|
def do_arch_packages(self, packages, makefile, arch, vars, makeflags, extra):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
2006-01-06 22:32:16 +00:00
|
|
|
makefile.append("%s-%s-real:" % (i, arch))
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def do_subarch(self, packages, makefile, arch, subarch, vars, makeflags, extra):
|
|
|
|
config_entry = self.config['base', arch, subarch]
|
|
|
|
vars.update(config_entry)
|
|
|
|
|
|
|
|
makeflags['SUBARCH'] = subarch
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
if subarch != 'none':
|
|
|
|
vars['localversion'] += '-' + subarch
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
self.do_subarch_setup(vars, makeflags, arch, subarch, extra)
|
|
|
|
self.do_subarch_makefile(makefile, arch, subarch, makeflags, extra)
|
2006-01-04 19:33:32 +00:00
|
|
|
self.do_subarch_packages(packages, makefile, arch, subarch, vars, makeflags, extra)
|
|
|
|
|
|
|
|
for flavour in config_entry['flavours']:
|
|
|
|
self.do_flavour(packages, makefile, arch, subarch, flavour, vars.copy(), makeflags.copy(), extra)
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_subarch_setup(self, vars, makeflags, arch, subarch, extra):
|
2006-01-04 19:33:32 +00:00
|
|
|
pass
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_subarch_makefile(self, makefile, arch, subarch, makeflags, extra):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
2006-01-04 19:33:32 +00:00
|
|
|
makefile.append("%s-%s:: %s-%s-%s" % (i, arch, i, arch, subarch))
|
|
|
|
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):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
2006-01-06 22:32:16 +00:00
|
|
|
makefile.append("%s-%s-%s-real:" % (i, arch, subarch))
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def do_flavour(self, packages, makefile, arch, subarch, flavour, vars, makeflags, extra):
|
2006-08-29 09:53:31 +00:00
|
|
|
config_entry = self.config.merge('base', arch, subarch, flavour)
|
2006-01-04 19:33:32 +00:00
|
|
|
vars.update(config_entry)
|
|
|
|
|
|
|
|
if not vars.has_key('class'):
|
2006-01-06 22:32:16 +00:00
|
|
|
warnings.warn('No class entry in config for flavour %s, subarch %s, arch %s' % (flavour, subarch, arch), DeprecationWarning)
|
2006-01-04 19:33:32 +00:00
|
|
|
vars['class'] = '%s-class' % flavour
|
|
|
|
if not vars.has_key('longclass'):
|
|
|
|
vars['longclass'] = vars['class']
|
|
|
|
|
|
|
|
makeflags['FLAVOUR'] = flavour
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
vars['localversion'] += '-' + flavour
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
self.do_flavour_setup(vars, makeflags, arch, subarch, flavour, extra)
|
|
|
|
self.do_flavour_makefile(makefile, arch, subarch, flavour, makeflags, extra)
|
2006-01-04 19:33:32 +00:00
|
|
|
self.do_flavour_packages(packages, makefile, arch, subarch, flavour, vars, makeflags, extra)
|
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_flavour_setup(self, vars, makeflags, arch, subarch, flavour, extra):
|
2006-01-06 22:32:16 +00:00
|
|
|
for i in (
|
2006-03-03 15:58:44 +00:00
|
|
|
('kernel-arch', 'KERNEL_ARCH'),
|
|
|
|
('localversion', 'LOCALVERSION'),
|
2006-01-06 22:32:16 +00:00
|
|
|
):
|
2006-03-03 15:58:44 +00:00
|
|
|
if vars.has_key(i[0]):
|
|
|
|
makeflags[i[1]] = vars[i[0]]
|
2006-01-04 19:33:32 +00:00
|
|
|
|
2006-06-24 11:39:08 +00:00
|
|
|
def do_flavour_makefile(self, makefile, arch, subarch, flavour, makeflags, extra):
|
2006-03-04 13:48:18 +00:00
|
|
|
for i in self.makefile_targets:
|
2006-01-04 19:33:32 +00:00
|
|
|
makefile.append("%s-%s-%s:: %s-%s-%s-%s" % (i, arch, subarch, i, arch, subarch, flavour))
|
|
|
|
makefile.append("%s-%s-%s-%s:: %s-%s-%s-%s-real" % (i, arch, subarch, flavour, i, arch, subarch, flavour))
|
|
|
|
|
|
|
|
def do_flavour_packages(self, packages, makefile, arch, subarch, flavour, vars, makeflags, extra):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def process_relation(self, key, e, in_e, vars):
|
|
|
|
in_dep = in_e[key]
|
2006-01-06 22:32:16 +00:00
|
|
|
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)
|
2006-01-04 19:33:32 +00:00
|
|
|
e[key] = dep
|
|
|
|
|
|
|
|
def process_description(self, e, in_e, vars):
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
in_desc = in_e['Description']
|
|
|
|
desc = in_desc.__class__()
|
|
|
|
desc.short = self.substitute(in_desc.short, vars)
|
|
|
|
for i in in_desc.long:
|
2006-07-20 00:47:41 +00:00
|
|
|
desc.append(self.substitute(i, vars))
|
r6005: waldi | 2006-03-02 11:06:40 +0100
* debian/lib/python/debian_linux/gencontrol.py:
Populate UPSTREAMVERSION, ABINAME and LOCALVERSION in an stable fashion.
* debian/rules.real: Use UPSTREAMVERSION, ABINAME and LOCALVERSION.
* debian/templates/control.headers.arch.in,
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:
Use upstreamversion and localversion substitutions.
r6006: waldi | 2006-03-02 11:16:14 +0100
* debian/lib/python/debian_linux/gencontrol.py: Add SOURCEVERSION.
* debian/rules.real
- Use SOURCEVERSION.
- Fix another brocken ABINAME usage.
r6007: waldi | 2006-03-02 11:41:01 +0100
* debian/arch/defines, debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/s390/defines,
debian/arch/sparc/defines: Move image specific specs into image section.
* debian/bin/gencontrol.py: Use image section if neccesary.
* debian/lib/python/debian_linux/gencontrol.py: Support image section.
r6008: waldi | 2006-03-02 11:41:37 +0100
debian/lib/python/debian_linux/config.py: Remove old workaround.
r6009: waldi | 2006-03-02 12:15:21 +0100
* bin/gencontrol.py: Fix image description addition.
* lib/python/debian_linux/debian.py: Parse Description also.
* lib/python/debian_linux/gencontrol.py: Fix Description setup.
* lib/python/debian_linux/utils.py: Always provide the complete text.
r6010: waldi | 2006-03-02 12:42:47 +0100
* debian/arch/defines: Add initramfs-generator relations.
* debian/arch/alpha/defines, debian/arch/amd64/defines,
debian/arch/arm/defines, debian/arch/armeb/defines, debian/arch/hppa/defines,
debian/arch/i386/defines, debian/arch/ia64/defines, debian/arch/m68k/defines,
debian/arch/mips/defines, debian/arch/mipsel/defines,
debian/arch/powerpc/defines, debian/arch/powerpc/vserver/defines,
debian/arch/s390/defines, debian/arch/sparc/defines:
Specify initramfs settings.
* debian/bin/gencontrol.py: Generate dependencies for initramfs generators.
* debian/lib/python/debian_linux/config.py: Add more fields.
* debian/lib/python/debian_linux/gencontrol.py: Fix.
* debian/rules.real: Use INITRAMFS.
r6011: waldi | 2006-03-02 13:05:45 +0100
debian/bin/gencontrol.py,
debian/lib/python/debian_linux/gencontrol.py
- Don't export the usage of the image section into the generic code.
- Fix localversion spec.
r6012: waldi | 2006-03-02 13:20:58 +0100
debian/lib/python/debian_linux/config.py: Fix section parsing.
r6013: waldi | 2006-03-02 13:27:44 +0100
* debian/lib/python/debian_linux/config.py: Use a list of directories.
* debian/lib/python/debian_linux/gencontrol.py: Update.
r6014: waldi | 2006-03-02 13:30:30 +0100
* debian/bin/gencontrol.py: Add base image config entry.
* debian/lib/python/debian_linux/gencontrol.py:
Remove another usage of the image config sections.
r6030: waldi | 2006-03-02 17:44:17 +0100
debian/bin/gencontrol.py: Provide correct localversion for the headers build.
svn path=/dists/trunk/linux-2.6/; revision=6031
2006-03-02 16:47:30 +00:00
|
|
|
e['Description'] = desc
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def process_package(self, in_entry, vars):
|
|
|
|
e = package()
|
2006-01-06 22:32:16 +00:00
|
|
|
for key, value in in_entry.iteritems():
|
|
|
|
if isinstance(value, package_relation_list):
|
2006-01-04 19:33:32 +00:00
|
|
|
self.process_relation(key, e, in_entry, vars)
|
|
|
|
elif key == 'Description':
|
|
|
|
self.process_description(e, in_entry, vars)
|
|
|
|
elif key[:2] == 'X-':
|
|
|
|
pass
|
|
|
|
else:
|
2006-01-06 22:32:16 +00:00
|
|
|
e[key] = self.substitute(value, vars)
|
2006-01-04 19:33:32 +00:00
|
|
|
return e
|
|
|
|
|
|
|
|
def process_packages(self, in_entries, vars):
|
|
|
|
entries = []
|
|
|
|
for i in in_entries:
|
|
|
|
entries.append(self.process_package(i, vars))
|
|
|
|
return entries
|
|
|
|
|
2006-08-29 09:53:31 +00:00
|
|
|
def process_version_linux(self, version, abiname):
|
|
|
|
return {
|
|
|
|
'upstreamversion': version['linux']['upstream'],
|
|
|
|
'version': version['linux']['version'],
|
|
|
|
'source_upstream': version['linux']['source_upstream'],
|
|
|
|
'major': version['linux']['major'],
|
|
|
|
'abiname': abiname,
|
2006-04-14 16:07:56 +00:00
|
|
|
}
|
|
|
|
|
2006-01-04 19:33:32 +00:00
|
|
|
def substitute(self, s, vars):
|
|
|
|
if isinstance(s, (list, tuple)):
|
|
|
|
for i in xrange(len(s)):
|
|
|
|
s[i] = self.substitute(s[i], vars)
|
|
|
|
return s
|
|
|
|
def subst(match):
|
|
|
|
return vars[match.group(1)]
|
2006-08-29 09:53:31 +00:00
|
|
|
return re.sub(r'@([-_a-z]+)@', subst, s)
|
2006-01-04 19:33:32 +00:00
|
|
|
|
|
|
|
def write_control(self, list):
|
|
|
|
self.write_rfc822(file("debian/control", 'w'), list)
|
|
|
|
|
|
|
|
def write_makefile(self, out_list):
|
|
|
|
out = file("debian/rules.gen", 'w')
|
|
|
|
for item in out_list:
|
|
|
|
if isinstance(item, (list, tuple)):
|
|
|
|
out.write("%s\n" % item[0])
|
|
|
|
cmd_list = item[1]
|
|
|
|
if isinstance(cmd_list, basestring):
|
|
|
|
cmd_list = cmd_list.split('\n')
|
|
|
|
for j in cmd_list:
|
|
|
|
out.write("\t%s\n" % j)
|
|
|
|
else:
|
|
|
|
out.write("%s\n" % item)
|
|
|
|
|
|
|
|
def write_rfc822(self, f, list):
|
|
|
|
for entry in list:
|
|
|
|
for key, value in entry.iteritems():
|
|
|
|
f.write("%s: %s\n" % (key, value))
|
|
|
|
f.write('\n')
|
|
|
|
|
|
|
|
|