mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 15:32:12 +02:00
ui/hob: enable building an image with minimal contents
This patch enables a user to build a rootfs containing only the selected packages without having to have first selected a 'Base image'. Fixes [YOCTO #1239] (Bitbake rev: 05c82da31a69c910e72b58b07afcd9fca8c55479) Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
20101e9544
commit
c884b52dd0
@@ -60,9 +60,19 @@ require %s
|
||||
|
||||
IMAGE_INSTALL += "%s"
|
||||
"""
|
||||
meta_path = model.find_image_path(self.base_image)
|
||||
|
||||
recipe = template % (meta_path, self.userpkgs)
|
||||
empty_template = """
|
||||
# Recipe generated by the HOB
|
||||
|
||||
inherit core-image
|
||||
|
||||
IMAGE_INSTALL = "%s"
|
||||
"""
|
||||
if self.base_image and not self.base_image == "empty":
|
||||
meta_path = model.find_image_path(self.base_image)
|
||||
recipe = template % (meta_path, self.userpkgs)
|
||||
else:
|
||||
recipe = empty_template % self.allpkgs
|
||||
|
||||
if os.path.exists(writepath):
|
||||
os.rename(writepath, "%s~" % writepath)
|
||||
|
||||
@@ -369,20 +369,31 @@ class MainWindow (gtk.Window):
|
||||
self.dirty = False
|
||||
|
||||
def bake_clicked_cb(self, button):
|
||||
build_image = True
|
||||
|
||||
rep = self.model.get_build_rep()
|
||||
if not rep.base_image:
|
||||
lbl = "<b>Build only packages?</b>\n\nAn image has not been selected, so only the selected packages will be built."
|
||||
lbl = "<b>Build empty image or only packages?</b>\nA base image"
|
||||
lbl = lbl + " has not been selected.\n\'Empty image' will build"
|
||||
lbl = lbl + " an image with only the selected packages as its"
|
||||
lbl = lbl + " contents.\n'Packages Only' will build only the"
|
||||
lbl = lbl + " selected packages, no image will be created"
|
||||
dialog = CrumbsDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
|
||||
dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
|
||||
dialog.add_button("Build", gtk.RESPONSE_YES)
|
||||
dialog.add_button("Empty Image", gtk.RESPONSE_OK)
|
||||
dialog.add_button("Packages Only", gtk.RESPONSE_YES)
|
||||
response = dialog.run()
|
||||
dialog.destroy()
|
||||
if response == gtk.RESPONSE_CANCEL:
|
||||
return
|
||||
else:
|
||||
self.handler.build_packages(rep.allpkgs.split(" "))
|
||||
else:
|
||||
elif response == gtk.RESPONSE_YES:
|
||||
build_image = False
|
||||
elif response == gtk.RESPONSE_OK:
|
||||
rep.base_image = "empty"
|
||||
|
||||
if build_image:
|
||||
import tempfile, datetime
|
||||
|
||||
image_name = "hob-%s-variant-%s" % (rep.base_image, datetime.date.today().isoformat())
|
||||
image_file = "%s.bb" % (image_name)
|
||||
image_dir = os.path.join(tempfile.gettempdir(), 'hob-images')
|
||||
@@ -397,6 +408,8 @@ class MainWindow (gtk.Window):
|
||||
self.files_to_clean.append(recipepath)
|
||||
|
||||
self.handler.build_image(image_name, image_dir, self.configurator)
|
||||
else:
|
||||
self.handler.build_packages(rep.allpkgs.split(" "))
|
||||
|
||||
self.nb.set_current_page(1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user