yocto-kernel: add support for kernel feature add/rm/list

Add yocto-kernel commands allowing users to add, remove, and list
kernel features with respect to a given BSP.

Features managed by these commands modify a special
machine-user-features.scc file associated with the kernel recipe
(.bbappend) of a yocto-bsp-generated BSP.  This is analagous to the
implementation of similar support for bare config items and patches
already implemented for yocto-bsp-generated BSPs.

Future patches will add support for providing a list of eligible
features as defined by linux-yocto kernels and locally-defined
(recipe-space) kernel features.

(From meta-yocto rev: ae68d906c5c9854f2cd7ee0870556fbfbd7d94d0)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tom Zanussi
2013-03-11 18:52:50 -05:00
committed by Richard Purdie
parent 6911fd0889
commit 0bfe83edbb
3 changed files with 267 additions and 1 deletions

View File

@@ -162,6 +162,65 @@ def yocto_kernel_patch_rm_subcommand(args, usage_str):
yocto_kernel_patch_rm(scripts_path, args[0])
def yocto_kernel_feature_list_subcommand(args, usage_str):
"""
Command-line handling for listing the BSP features that are being
used by the BSP. The real work is done by
bsp.kernel.yocto_kernel_feature_list().
"""
logging.debug("yocto_kernel_feature_list_subcommand")
parser = optparse.OptionParser(usage = usage_str)
(options, args) = parser.parse_args(args)
if len(args) != 1:
logging.error("Wrong number of arguments, exiting\n")
parser.print_help()
sys.exit(1)
yocto_kernel_feature_list(scripts_path, args[0])
def yocto_kernel_feature_add_subcommand(args, usage_str):
"""
Command-line handling for adding the use of kernel features to a
BSP. The real work is done by bsp.kernel.yocto_kernel_feature_add().
"""
logging.debug("yocto_kernel_feature_add_subcommand")
parser = optparse.OptionParser(usage = usage_str)
(options, args) = parser.parse_args(args)
if len(args) < 2:
logging.error("Wrong number of arguments, exiting\n")
parser.print_help()
sys.exit(1)
machine = args.pop(0)
yocto_kernel_feature_add(scripts_path, machine, args)
def yocto_kernel_feature_rm_subcommand(args, usage_str):
"""
Command-line handling for removing the use of kernel features from
a BSP. The real work is done by bsp.kernel.yocto_kernel_feature_rm().
"""
logging.debug("yocto_kernel_feature_rm_subcommand")
parser = optparse.OptionParser(usage = usage_str)
(options, args) = parser.parse_args(args)
if len(args) != 1:
logging.error("Wrong number of arguments, exiting\n")
parser.print_help()
sys.exit(1)
yocto_kernel_feature_rm(scripts_path, args[0])
subcommands = {
"config-list": [yocto_kernel_config_list_subcommand,
yocto_kernel_config_list_usage,
@@ -181,6 +240,15 @@ subcommands = {
"patch-rm": [yocto_kernel_patch_rm_subcommand,
yocto_kernel_patch_rm_usage,
yocto_kernel_patch_rm_help],
"feature-list": [yocto_kernel_feature_list_subcommand,
yocto_kernel_feature_list_usage,
yocto_kernel_feature_list_help],
"feature-add": [yocto_kernel_feature_add_subcommand,
yocto_kernel_feature_add_usage,
yocto_kernel_feature_add_help],
"feature-rm": [yocto_kernel_feature_rm_subcommand,
yocto_kernel_feature_rm_usage,
yocto_kernel_feature_rm_help],
}
@@ -212,7 +280,8 @@ def main():
else:
sc = 0
if args[sc] == "config" or args[sc] == "patch":
if args[sc] == "config" or args[sc] == "patch" or \
args[sc] == "feature":
if len(args) < 2 + sc:
parser.print_help()
sys.exit(1)