[bitbake-devel] [PATCH] hob: make some layers non removable
Cristiana Voicu
cristiana.voicu at intel.com
Tue Oct 30 12:06:11 UTC 2012
- there are some layers which cannot be removed; so ,I have created
a new variable called BBLAYERS_NON_REMOVABLE located in bblayers.conf,
which contains those layers which cannot be deleted
- "meta-hob" layer is added to this variable in hob code, like it's
added to BBLAYERS var
[YOCTO #3176]
Signed-off-by: Cristiana Voicu <cristiana.voicu at intel.com>
---
bitbake/lib/bb/ui/crumbs/builder.py | 2 ++
bitbake/lib/bb/ui/crumbs/hig.py | 15 +++++----------
bitbake/lib/bb/ui/crumbs/hobeventhandler.py | 3 +++
meta-yocto/conf/bblayers.conf.sample | 4 ++++
4 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
index e5222da..add067b 100755
--- a/bitbake/lib/bb/ui/crumbs/builder.py
+++ b/bitbake/lib/bb/ui/crumbs/builder.py
@@ -172,6 +172,7 @@ class Configuration:
# self.extra_setting/self.toolchain_build
# bblayers.conf
self.layers = params["layer"].split()
+ self.layers_non_removable = params["layers_non_removable"].split()
self.default_task = params["default_task"]
# proxy settings
@@ -1194,6 +1195,7 @@ class Builder(gtk.Window):
def show_layer_selection_dialog(self):
dialog = LayerSelectionDialog(title = "Layers",
layers = copy.deepcopy(self.configuration.layers),
+ layers_non_removable = copy.deepcopy(self.configuration.layers_non_removable),
all_layers = self.parameters.all_layers,
parent = self,
flags = gtk.DIALOG_MODAL
diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py
index d973086..e56cf2a 100644
--- a/bitbake/lib/bb/ui/crumbs/hig.py
+++ b/bitbake/lib/bb/ui/crumbs/hig.py
@@ -1665,11 +1665,12 @@ class LayerSelectionDialog (CrumbsDialog):
def add_leave_cb(self, button, event):
self.im.set_from_file(hic.ICON_INDI_ADD_FILE)
- def __init__(self, title, layers, all_layers, parent, flags, buttons=None):
+ def __init__(self, title, layers, layers_non_removable, all_layers, parent, flags, buttons=None):
super(LayerSelectionDialog, self).__init__(title, parent, flags, buttons)
# class members from other objects
self.layers = layers
+ self.layers_non_removable = layers_non_removable
self.all_layers = all_layers
self.layers_changed = False
@@ -1709,10 +1710,7 @@ class LayerSelectionDialog (CrumbsDialog):
"""
def draw_delete_button_cb(self, col, cell, model, it, tv):
path = model.get_value(it, 0)
- # Trailing slashes are uncommon in bblayers.conf but confuse os.path.basename
- path.rstrip('/')
- name = os.path.basename(path)
- if name == "meta" or name == "meta-hob":
+ if path in self.layers_non_removable:
cell.set_sensitive(False)
cell.set_property('pixbuf', None)
cell.set_property('mode', gtk.CELL_RENDERER_MODE_INERT)
@@ -1730,11 +1728,8 @@ class LayerSelectionDialog (CrumbsDialog):
"""
def draw_layer_path_cb(self, col, cell, model, it):
path = model.get_value(it, 0)
- name = os.path.basename(path)
- if name == "meta":
- cell.set_property('markup', "<b>Core layer for images: it cannot be removed</b>\n%s" % path)
- elif name == "meta-hob":
- cell.set_property('markup', "<b>Core layer for Hob: it cannot be removed</b>\n%s" % path)
+ if path in self.layers_non_removable:
+ cell.set_property('markup', "<b>It cannot be removed</b>\n%s" % path)
else:
cell.set_property('text', path)
diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
index 7d3af6c..169eeed 100644
--- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
+++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
@@ -439,8 +439,11 @@ class HobHandler(gobject.GObject):
params["core_base"] = self.runCommand(["getVariable", "COREBASE"]) or ""
hob_layer = params["core_base"] + "/meta-hob"
params["layer"] = self.runCommand(["getVariable", "BBLAYERS"]) or ""
+ params["layers_non_removable"] = self.runCommand(["getVariable", "BBLAYERS_NON_REMOVABLE"])
if hob_layer not in params["layer"].split():
params["layer"] += (" " + hob_layer)
+ if hob_layer not in params["layers_non_removable"].split():
+ params["layers_non_removable"] += (" " + hob_layer)
params["dldir"] = self.runCommand(["getVariable", "DL_DIR"]) or ""
params["machine"] = self.runCommand(["getVariable", "MACHINE"]) or ""
params["distro"] = self.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
diff --git a/meta-yocto/conf/bblayers.conf.sample b/meta-yocto/conf/bblayers.conf.sample
index 98bfd70..7fd755d 100644
--- a/meta-yocto/conf/bblayers.conf.sample
+++ b/meta-yocto/conf/bblayers.conf.sample
@@ -10,3 +10,7 @@ BBLAYERS ?= " \
##COREBASE##/meta-yocto \
##COREBASE##/meta-yocto-bsp \
"
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##COREBASE##/meta \
+ ##COREBASE##/meta-yocto \
+ "
--
1.7.9.5
More information about the bitbake-devel
mailing list