From ee7e64f116608ab105ead99c7f1966158054d2b5 Mon Sep 17 00:00:00 2001 From: Cristiana Voicu Date: Fri, 4 Oct 2013 16:19:45 +0300 Subject: bitbake: bitbake/hob: removing extra parameters from conf files using hob In Hob settings, there is a tab to add/remove extra settings. This patch implements a way to "remove" variables from conf files, through bitbake. But, to keep the history assigment of the variables synchronized, instead of removing, it replaces the lines with blank lines. [YOCTO #5284] (Bitbake rev: bd720fb63cef6b399619b8fbcaeb8d7710f2d6df) Signed-off-by: Cristiana Voicu Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/builder.py | 2 +- bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/ui/crumbs') diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py index 46023cc585..ab6750b741 100755 --- a/bitbake/lib/bb/ui/crumbs/builder.py +++ b/bitbake/lib/bb/ui/crumbs/builder.py @@ -218,7 +218,7 @@ class Configuration: handler.set_var_in_file("SDKMACHINE", self.curr_sdk_machine, "local.conf") handler.set_var_in_file("CONF_VERSION", self.conf_version, "local.conf") handler.set_var_in_file("LCONF_VERSION", self.lconf_version, "bblayers.conf") - handler.set_var_in_file("EXTRA_SETTING", self.extra_setting, "local.conf") + handler.set_extra_config(self.extra_setting) handler.set_var_in_file("TOOLCHAIN_BUILD", self.toolchain_build, "local.conf") handler.set_var_in_file("IMAGE_FSTYPES", self.image_fstypes, "local.conf") if not defaults: diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index 3f5bebaca3..393c258e46 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py @@ -21,6 +21,7 @@ import gobject import logging +import ast from bb.ui.crumbs.runningbuild import RunningBuild class HobHandler(gobject.GObject): @@ -357,7 +358,20 @@ class HobHandler(gobject.GObject): def set_incompatible_license(self, incompat_license): self.set_var_in_file("INCOMPATIBLE_LICENSE", incompat_license, "local.conf") + def set_extra_setting(self, extra_setting): + self.set_var_in_file("EXTRA_SETTING", extra_setting, "local.conf") + def set_extra_config(self, extra_setting): + old_extra_setting = ast.literal_eval(self.runCommand(["getVariable", "EXTRA_SETTING"]) or "{}") + if extra_setting: + self.set_var_in_file("EXTRA_SETTING", extra_setting, "local.conf") + else: + self.remove_var_from_file("EXTRA_SETTING") + + #remove not needed settings from conf + for key in old_extra_setting: + if key not in extra_setting: + self.remove_var_from_file(key) for key in extra_setting.keys(): value = extra_setting[key] self.set_var_in_file(key, value, "local.conf") @@ -477,6 +491,9 @@ class HobHandler(gobject.GObject): self.server.runCommand(["setVarFile", var, val, default_file, "earlyAssign"]) self.runCommand(["disableDataTracking"]) + def remove_var_from_file(self, var): + self.server.runCommand(["removeVarFile", var]) + def append_var_in_file(self, var, val, default_file=None): self.server.runCommand(["setVarFile", var, val, default_file, "append"]) -- cgit v1.2.3-54-g00ecf