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.debian import PackageDescription, PackageRelation, \
|
||||
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
|
||||
|
||||
locale.setlocale(locale.LC_CTYPE, "C.UTF-8")
|
||||
|
@ -147,11 +148,7 @@ class Gencontrol(Base):
|
|||
.append(package)
|
||||
|
||||
def do_main_makefile(self, makefile, makeflags, extra):
|
||||
fs_enabled = [featureset
|
||||
for featureset in self.config['base', ]['featuresets']
|
||||
if (self.config.merge('base', None, featureset)
|
||||
.get('enabled', True))]
|
||||
for featureset in fs_enabled:
|
||||
for featureset in iter_featuresets(self.config):
|
||||
makeflags_featureset = makeflags.copy()
|
||||
makeflags_featureset['FEATURESET'] = featureset
|
||||
cmds_source = ["$(MAKE) -f debian/rules.real source-featureset %s"
|
||||
|
@ -162,7 +159,7 @@ class Gencontrol(Base):
|
|||
makefile.add('source', ['source_%s' % featureset])
|
||||
|
||||
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)
|
||||
|
||||
def do_main_packages(self, packages, vars, makeflags, extra):
|
||||
|
|
|
@ -72,6 +72,26 @@ class MakeFlags(dict):
|
|||
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):
|
||||
makefile_targets = ('binary-arch', 'build-arch', 'setup')
|
||||
makefile_targets_indep = ('binary-indep', 'build-indep', 'setup')
|
||||
|
@ -124,12 +144,10 @@ class Gencontrol(object):
|
|||
pass
|
||||
|
||||
def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
|
||||
for featureset in self.config['base', ]['featuresets']:
|
||||
if self.config.merge('base', None, featureset) \
|
||||
.get('enabled', True):
|
||||
self.do_indep_featureset(packages, makefile, featureset,
|
||||
vars.copy(), makeflags.copy(), extra)
|
||||
for arch in iter(self.config['base', ]['arches']):
|
||||
for featureset in iter_featuresets(self.config):
|
||||
self.do_indep_featureset(packages, makefile, featureset,
|
||||
vars.copy(), makeflags.copy(), extra)
|
||||
for arch in iter_arches(self.config):
|
||||
self.do_arch(packages, makefile, arch, vars.copy(),
|
||||
makeflags.copy(), extra)
|
||||
|
||||
|
@ -214,16 +232,12 @@ class Gencontrol(object):
|
|||
|
||||
def do_arch_recurse(self, packages, makefile, arch, vars, makeflags,
|
||||
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,
|
||||
vars.copy(), makeflags.copy(), extra)
|
||||
|
||||
def do_featureset(self, packages, makefile, arch, featureset, vars,
|
||||
makeflags, extra):
|
||||
config_base = self.config.merge('base', arch, featureset)
|
||||
if not config_base.get('enabled', True):
|
||||
return
|
||||
|
||||
vars['localversion'] = ''
|
||||
if featureset != 'none':
|
||||
vars['localversion'] = '-' + featureset
|
||||
|
@ -256,7 +270,7 @@ class Gencontrol(object):
|
|||
|
||||
def do_featureset_recurse(self, packages, makefile, arch, featureset, vars,
|
||||
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,
|
||||
vars.copy(), makeflags.copy(), extra)
|
||||
|
||||
|
|
Loading…
Reference in New Issue