gencontrol: Introduce and use arch/featureset/flavour iterator functions
This commit is contained in:
parent
5cb904c8a9
commit
09f2b8df70
|
@ -11,7 +11,8 @@ import re
|
||||||
from debian_linux import config
|
from debian_linux import config
|
||||||
from debian_linux.debian import PackageDescription, PackageRelation, \
|
from debian_linux.debian import PackageDescription, PackageRelation, \
|
||||||
PackageRelationEntry, PackageRelationGroup, VersionLinux
|
PackageRelationEntry, PackageRelationGroup, VersionLinux
|
||||||
from debian_linux.gencontrol import Gencontrol as Base, merge_packages
|
from debian_linux.gencontrol import Gencontrol as Base, merge_packages, \
|
||||||
|
iter_featuresets
|
||||||
from debian_linux.utils import Templates, read_control
|
from debian_linux.utils import Templates, read_control
|
||||||
|
|
||||||
locale.setlocale(locale.LC_CTYPE, "C.UTF-8")
|
locale.setlocale(locale.LC_CTYPE, "C.UTF-8")
|
||||||
|
@ -147,11 +148,7 @@ class Gencontrol(Base):
|
||||||
.append(package)
|
.append(package)
|
||||||
|
|
||||||
def do_main_makefile(self, makefile, makeflags, extra):
|
def do_main_makefile(self, makefile, makeflags, extra):
|
||||||
fs_enabled = [featureset
|
for featureset in iter_featuresets(self.config):
|
||||||
for featureset in self.config['base', ]['featuresets']
|
|
||||||
if (self.config.merge('base', None, featureset)
|
|
||||||
.get('enabled', True))]
|
|
||||||
for featureset in fs_enabled:
|
|
||||||
makeflags_featureset = makeflags.copy()
|
makeflags_featureset = makeflags.copy()
|
||||||
makeflags_featureset['FEATURESET'] = featureset
|
makeflags_featureset['FEATURESET'] = featureset
|
||||||
cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s"
|
cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s"
|
||||||
|
@ -162,7 +159,7 @@ class Gencontrol(Base):
|
||||||
makefile.add('source', ['source_%s' % featureset])
|
makefile.add('source', ['source_%s' % featureset])
|
||||||
|
|
||||||
makeflags = makeflags.copy()
|
makeflags = makeflags.copy()
|
||||||
makeflags['ALL_FEATURESETS'] = ' '.join(fs_enabled)
|
makeflags['ALL_FEATURESETS'] = ' '.join(iter_featuresets(self.config))
|
||||||
super(Gencontrol, self).do_main_makefile(makefile, makeflags, extra)
|
super(Gencontrol, self).do_main_makefile(makefile, makeflags, extra)
|
||||||
|
|
||||||
def do_main_packages(self, packages, vars, makeflags, extra):
|
def do_main_packages(self, packages, vars, makeflags, extra):
|
||||||
|
|
|
@ -72,6 +72,26 @@ class MakeFlags(dict):
|
||||||
return self.__class__(super(MakeFlags, self).copy())
|
return self.__class__(super(MakeFlags, self).copy())
|
||||||
|
|
||||||
|
|
||||||
|
def iter_featuresets(config):
|
||||||
|
for featureset in config['base', ]['featuresets']:
|
||||||
|
if config.merge('base', None, featureset).get('enabled', True):
|
||||||
|
yield featureset
|
||||||
|
|
||||||
|
|
||||||
|
def iter_arches(config):
|
||||||
|
return iter(config['base', ]['arches'])
|
||||||
|
|
||||||
|
|
||||||
|
def iter_arch_featuresets(config, arch):
|
||||||
|
for featureset in config['base', arch].get('featuresets', []):
|
||||||
|
if config.merge('base', arch, featureset).get('enabled', True):
|
||||||
|
yield featureset
|
||||||
|
|
||||||
|
|
||||||
|
def iter_flavours(config, arch, featureset):
|
||||||
|
return iter(config['base', arch, featureset]['flavours'])
|
||||||
|
|
||||||
|
|
||||||
class Gencontrol(object):
|
class Gencontrol(object):
|
||||||
makefile_targets = ('binary-arch', 'build-arch', 'setup')
|
makefile_targets = ('binary-arch', 'build-arch', 'setup')
|
||||||
makefile_targets_indep = ('binary-indep', 'build-indep', 'setup')
|
makefile_targets_indep = ('binary-indep', 'build-indep', 'setup')
|
||||||
|
@ -124,12 +144,10 @@ class Gencontrol(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
|
def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
|
||||||
for featureset in self.config['base', ]['featuresets']:
|
for featureset in iter_featuresets(self.config):
|
||||||
if self.config.merge('base', None, featureset) \
|
|
||||||
.get('enabled', True):
|
|
||||||
self.do_indep_featureset(packages, makefile, featureset,
|
self.do_indep_featureset(packages, makefile, featureset,
|
||||||
vars.copy(), makeflags.copy(), extra)
|
vars.copy(), makeflags.copy(), extra)
|
||||||
for arch in iter(self.config['base', ]['arches']):
|
for arch in iter_arches(self.config):
|
||||||
self.do_arch(packages, makefile, arch, vars.copy(),
|
self.do_arch(packages, makefile, arch, vars.copy(),
|
||||||
makeflags.copy(), extra)
|
makeflags.copy(), extra)
|
||||||
|
|
||||||
|
@ -214,16 +232,12 @@ class Gencontrol(object):
|
||||||
|
|
||||||
def do_arch_recurse(self, packages, makefile, arch, vars, makeflags,
|
def do_arch_recurse(self, packages, makefile, arch, vars, makeflags,
|
||||||
extra):
|
extra):
|
||||||
for featureset in self.config['base', arch].get('featuresets', ()):
|
for featureset in iter_arch_featuresets(self.config, arch):
|
||||||
self.do_featureset(packages, makefile, arch, featureset,
|
self.do_featureset(packages, makefile, arch, featureset,
|
||||||
vars.copy(), makeflags.copy(), extra)
|
vars.copy(), makeflags.copy(), extra)
|
||||||
|
|
||||||
def do_featureset(self, packages, makefile, arch, featureset, vars,
|
def do_featureset(self, packages, makefile, arch, featureset, vars,
|
||||||
makeflags, extra):
|
makeflags, extra):
|
||||||
config_base = self.config.merge('base', arch, featureset)
|
|
||||||
if not config_base.get('enabled', True):
|
|
||||||
return
|
|
||||||
|
|
||||||
vars['localversion'] = ''
|
vars['localversion'] = ''
|
||||||
if featureset != 'none':
|
if featureset != 'none':
|
||||||
vars['localversion'] = '-' + featureset
|
vars['localversion'] = '-' + featureset
|
||||||
|
@ -256,7 +270,7 @@ class Gencontrol(object):
|
||||||
|
|
||||||
def do_featureset_recurse(self, packages, makefile, arch, featureset, vars,
|
def do_featureset_recurse(self, packages, makefile, arch, featureset, vars,
|
||||||
makeflags, extra):
|
makeflags, extra):
|
||||||
for flavour in self.config['base', arch, featureset]['flavours']:
|
for flavour in iter_flavours(self.config, arch, featureset):
|
||||||
self.do_flavour(packages, makefile, arch, featureset, flavour,
|
self.do_flavour(packages, makefile, arch, featureset, flavour,
|
||||||
vars.copy(), makeflags.copy(), extra)
|
vars.copy(), makeflags.copy(), extra)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue