[kernel-team] 01/01: kconfigeditor2: Read menus and config for every enabled featureset
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Fri May 5 03:27:01 UTC 2017
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch master
in repository kernel-team.
commit fde911831ea68e57f9b2579460bc358845656483
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Fri May 5 04:24:32 2017 +0100
kconfigeditor2: Read menus and config for every enabled featureset
---
utils/kconfigeditor2/kconfigeditor/package.py | 35 +++++++++++++++------------
utils/kconfigeditor2/process.py | 9 ++++++-
2 files changed, 27 insertions(+), 17 deletions(-)
diff --git a/utils/kconfigeditor2/kconfigeditor/package.py b/utils/kconfigeditor2/kconfigeditor/package.py
index cc0419f..f1f1548 100644
--- a/utils/kconfigeditor2/kconfigeditor/package.py
+++ b/utils/kconfigeditor2/kconfigeditor/package.py
@@ -5,20 +5,27 @@ from .kconfig.config import File
class PackageFile(object):
- def __init__(self, key, kernelarch, file):
+ def __init__(self, key, kernelarch, featureset, file):
self.keys = set(key)
self.kernelarches = kernelarch and set((kernelarch,)) or set()
+ self.featuresets = featureset and set((featureset,)) or set()
self.file = file
- def add(self, key, kernelarch):
+ def add(self, key, kernelarch, featureset):
self.keys.add(key)
self.kernelarches.add(kernelarch)
+ self.featuresets.add(featureset)
@property
def kernelarch(self):
if len(self.kernelarches) == 1:
return list(self.kernelarches)[0]
+ @property
+ def featureset(self):
+ if len(self.featuresets) == 1:
+ return list(self.featuresets)[0]
+
class Package(dict):
def __init__(self, root):
@@ -36,17 +43,17 @@ class Package(dict):
self.config_root = os.path.join(root, "debian/config")
self.config = module.ConfigCoreHierarchy(config_schema, (self.config_root, ))
- for filename, key, kernelarch in self._collect():
+ for filename, key, kernelarch, featureset in self._collect():
if filename in self:
data = self[filename]
- data.add(key, kernelarch)
+ data.add(key, kernelarch, featureset)
else:
file = File(name=os.path.join(self.config_root, filename))
- self[filename] = PackageFile(key, kernelarch, file)
+ self[filename] = PackageFile(key, kernelarch, featureset, file)
def _collect(self):
for filename in self._check_config('config'):
- yield filename, (), None
+ yield filename, (), None, None
for arch in self.config['base',]['arches']:
for data in self._collect_arch(arch):
@@ -62,20 +69,16 @@ class Package(dict):
kernelarch = config_entry.get('kernel-arch')
for filename in self._check_config("%s/config" % arch, arch):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, None
for filename in self._check_config("kernelarch-%s/config" % kernelarch, arch):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, None
for featureset in self.config['base', arch].get('featuresets', ()):
for data in self._collect_featureset(arch, featureset):
yield data
def _collect_featureset(self, arch, featureset):
- # TODO
- if featureset != 'none':
- return
-
config_entry = self.config.merge('base', arch, featureset)
if not config_entry.get('enabled', True):
@@ -85,9 +88,9 @@ class Package(dict):
kernelarch = config_entry.get('kernel-arch')
for filename in self._check_config("featureset-%s/config" % featureset, None, featureset):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, featureset
for filename in self._check_config("%s/%s/config" % (arch, featureset), arch, featureset):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, featureset
for flavour in self.config['base', arch, featureset]['flavours']:
for data in self._collect_flavour(arch, featureset, flavour):
@@ -103,9 +106,9 @@ class Package(dict):
kernelarch = config_entry.get('kernel-arch')
for filename in self._check_config("%s/config.%s" % (arch, flavour), arch, None, flavour):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, featureset
for filename in self._check_config("%s/%s/config.%s" % (arch, featureset, flavour), arch, featureset, flavour):
- yield filename, key, kernelarch
+ yield filename, key, kernelarch, featureset
def _check_config_default(self, f):
if os.path.exists(os.path.join(self.config_root, f)):
diff --git a/utils/kconfigeditor2/process.py b/utils/kconfigeditor2/process.py
index c4675da..b7dbdce 100755
--- a/utils/kconfigeditor2/process.py
+++ b/utils/kconfigeditor2/process.py
@@ -11,9 +11,16 @@ class Main(object):
from kconfigeditor.package import Package
package = Package(package)
- menu = All(source, package.kernelarches)
+ fs_menu = {'none': All(source, package.kernelarches)}
for filename, data in package.items():
+ featureset = data.featureset
+ try:
+ menu = fs_menu[featureset or 'none']
+ except KeyError:
+ menu = fs_menu[featureset] = All('%s/debian/build/source_%s' %
+ (source, featureset),
+ package.kernelarches)
kernelarch = data.kernelarch
if kernelarch:
menufiles = menu.arch(kernelarch)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/kernel-team.git
More information about the Kernel-svn-changes
mailing list