[oe-commits] Ed Bartosh : devtool: implement build-image plugin

git at git.openembedded.org git at git.openembedded.org
Tue Aug 25 22:28:15 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: 4155ef77dbe6403913872b1cc4be55bb26afb0d9
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=4155ef77dbe6403913872b1cc4be55bb26afb0d9

Author: Ed Bartosh <ed.bartosh at linux.intel.com>
Date:   Fri Aug 21 16:00:57 2015 +0300

devtool: implement build-image plugin

Implemented new plugin to build image from workspace packages.

Plugin creates <image>.bbappend file, adds
all workspace packages to the image using IMAGE_INSTALL_append
variable in bbappend file. After that it runs 'bitbake <image>'.

Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 scripts/lib/devtool/build-image.py | 56 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/scripts/lib/devtool/build-image.py b/scripts/lib/devtool/build-image.py
new file mode 100644
index 0000000..d8e7b12
--- /dev/null
+++ b/scripts/lib/devtool/build-image.py
@@ -0,0 +1,56 @@
+# Development tool - build-image plugin
+#
+# Copyright (C) 2015 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+"""Devtool plugin containing the build-image subcommand."""
+
+import os
+import logging
+
+from bb.process import ExecutionError
+from devtool import exec_build_env_command, add_md5
+
+LOG = logging.getLogger('devtool')
+
+def plugin_init(pluginlist):
+    """Plugin initialization"""
+    pass
+
+def build_image(args, config, basepath, workspace):
+    """Entry point for the devtool 'build-image' subcommand."""
+    image = args.recipe
+    appendfile = os.path.join(config.workspace_path, 'appends',
+                              '%s.bbappend' % image)
+    with open(appendfile, 'w') as afile:
+        afile.write('IMAGE_INSTALL_append = " %s"\n' % \
+                    ' '.join(workspace.keys()))
+
+    add_md5(config, image, appendfile)
+
+    try:
+        exec_build_env_command(config.init_path, basepath,
+                               'bitbake %s' % image, watch=True)
+    except ExecutionError as err:
+        return err.exitcode
+
+    LOG.info('Successfully built %s', image)
+
+def register_commands(subparsers, context):
+    """Register devtool subcommands from the build-image plugin"""
+    parser_package = subparsers.add_parser('build-image', help='Build image')
+    parser_package.add_argument('recipe', help='Image recipe to build')
+    parser_package.set_defaults(func=build_image)
+



More information about the Openembedded-commits mailing list