diff --git a/bitbake-dev/ChangeLog b/bitbake-dev/ChangeLog index 2ad0f713ff..83f602e494 100644 --- a/bitbake-dev/ChangeLog +++ b/bitbake-dev/ChangeLog @@ -143,6 +143,12 @@ Changes in Bitbake 1.9.x: - Revert the '-' character fix in class names since it breaks things - When a regexp fails to compile for PACKAGES_DYNAMIC, print a more useful error (#4444) - Allow to checkout CVS by Date and Time. Just add HHmm to the SRCDATE. + - Move prunedir function to utils.py and add explode_dep_versions function + - Raise an exception if SRCREV == 'INVALID' + - Fix hg fetcher username/password handling and fix crash + - Fix PACKAGES_DYNAMIC handling of packages with '++' in the name + - Rename __depends to __base_depends after configuration parsing so we don't + recheck the validity of the config files time after time Changes in Bitbake 1.8.0: - Release 1.7.x as a stable series diff --git a/bitbake-dev/bin/bbimage b/bitbake-dev/bin/bbimage deleted file mode 100755 index 96b7dca323..0000000000 --- a/bitbake-dev/bin/bbimage +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env python -# ex:ts=4:sw=4:sts=4:et -# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- -# -# Copyright (C) 2003 Chris Larson -# -# 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. - -import sys, os -sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) -import bb -from bb import * - -__version__ = 1.1 -type = "jffs2" -cfg_bb = data.init() -cfg_oespawn = data.init() - -bb.msg.set_debug_level(0) - -def usage(): - print "Usage: bbimage [options ...]" - print "Creates an image for a target device from a root filesystem," - print "obeying configuration parameters from the BitBake" - print "configuration files, thereby easing handling of deviceisms." - print "" - print " %s\t\t%s" % ("-r [arg], --root [arg]", "root directory (default=${IMAGE_ROOTFS})") - print " %s\t\t%s" % ("-t [arg], --type [arg]", "image type (jffs2[default], cramfs)") - print " %s\t\t%s" % ("-n [arg], --name [arg]", "image name (override IMAGE_NAME variable)") - print " %s\t\t%s" % ("-v, --version", "output version information and exit") - sys.exit(0) - -def version(): - print "BitBake Build Tool Core version %s" % bb.__version__ - print "BBImage version %s" % __version__ - -def emit_bb(d, base_d = {}): - for v in d.keys(): - if d[v] != base_d[v]: - data.emit_var(v, d) - -def getopthash(l): - h = {} - for (opt, val) in l: - h[opt] = val - return h - -import getopt -try: - (opts, args) = getopt.getopt(sys.argv[1:], 'vr:t:e:n:', [ 'version', 'root=', 'type=', 'bbfile=', 'name=' ]) -except getopt.GetoptError: - usage() - -# handle opts -opthash = getopthash(opts) - -if '--version' in opthash or '-v' in opthash: - version() - sys.exit(0) - -try: - cfg_bb = parse.handle(os.path.join('conf', 'bitbake.conf'), cfg_bb) -except IOError: - fatal("Unable to open bitbake.conf") - -# sanity check -if cfg_bb is None: - fatal("Unable to open/parse %s" % os.path.join('conf', 'bitbake.conf')) - usage(1) - -# Handle any INHERITs and inherit the base class -inherits = ["base"] + (bb.data.getVar('INHERIT', cfg_bb, True ) or "").split() -for inherit in inherits: - cfg_bb = bb.parse.handle(os.path.join('classes', '%s.bbclass' % inherit), cfg_bb, True ) - -rootfs = None -extra_files = [] - -if '--root' in opthash: - rootfs = opthash['--root'] -if '-r' in opthash: - rootfs = opthash['-r'] - -if '--type' in opthash: - type = opthash['--type'] -if '-t' in opthash: - type = opthash['-t'] - -if '--bbfile' in opthash: - extra_files.append(opthash['--bbfile']) -if '-e' in opthash: - extra_files.append(opthash['-e']) - -for f in extra_files: - try: - cfg_bb = parse.handle(f, cfg_bb) - except IOError: - print "unable to open %s" % f - -if not rootfs: - rootfs = data.getVar('IMAGE_ROOTFS', cfg_bb, 1) - -if not rootfs: - bb.fatal("IMAGE_ROOTFS not defined") - -data.setVar('IMAGE_ROOTFS', rootfs, cfg_bb) - -from copy import copy, deepcopy -localdata = data.createCopy(cfg_bb) - -overrides = data.getVar('OVERRIDES', localdata) -if not overrides: - bb.fatal("OVERRIDES not defined.") -data.setVar('OVERRIDES', '%s:%s' % (overrides, type), localdata) -data.update_data(localdata) -data.setVar('OVERRIDES', overrides, localdata) - -if '-n' in opthash: - data.setVar('IMAGE_NAME', opthash['-n'], localdata) -if '--name' in opthash: - data.setVar('IMAGE_NAME', opthash['--name'], localdata) - -topdir = data.getVar('TOPDIR', localdata, 1) or os.getcwd() - -cmd = data.getVar('IMAGE_CMD', localdata, 1) -if not cmd: - bb.fatal("IMAGE_CMD not defined") - -outdir = data.getVar('DEPLOY_DIR_IMAGE', localdata, 1) -if not outdir: - bb.fatal('DEPLOY_DIR_IMAGE not defined') -mkdirhier(outdir) - -#depends = data.getVar('IMAGE_DEPENDS', localdata, 1) or "" -#if depends: -# bb.note("Spawning bbmake to satisfy dependencies: %s" % depends) -# ret = os.system('bbmake %s' % depends) -# if ret != 0: -# bb.error("executing bbmake to satisfy dependencies") - -bb.note("Executing %s" % cmd) -data.setVar('image_cmd', cmd, localdata) -data.setVarFlag('image_cmd', 'func', 1, localdata) -try: - bb.build.exec_func('image_cmd', localdata) -except bb.build.FuncFailed: - sys.exit(1) -#ret = os.system(cmd) -#sys.exit(ret) diff --git a/bitbake-dev/bin/bitbake b/bitbake-dev/bin/bitbake index 067cc274f9..c994edb84b 100755 --- a/bitbake-dev/bin/bitbake +++ b/bitbake-dev/bin/bitbake @@ -140,6 +140,7 @@ Default BBFILES are the .bb files in the current directory.""" ) cooker = bb.cooker.BBCooker(configuration) + cooker.parseConfiguration() host = cooker.server.host port = cooker.server.port diff --git a/bitbake-dev/lib/bb/cooker.py b/bitbake-dev/lib/bb/cooker.py index 8eb1a410f2..1531808613 100644 --- a/bitbake-dev/lib/bb/cooker.py +++ b/bitbake-dev/lib/bb/cooker.py @@ -86,6 +86,10 @@ class BBCooker: self.configuration.data = bb.data.init() + def parseConfiguration(self): + + bb.data.inheritFromOS(self.configuration.data) + for f in self.configuration.file: self.parseConfigurationFile( f ) diff --git a/bitbake-dev/lib/bb/parse/parse_py/ConfHandler.py b/bitbake-dev/lib/bb/parse/parse_py/ConfHandler.py index e6488bbe11..f8a49689e2 100644 --- a/bitbake-dev/lib/bb/parse/parse_py/ConfHandler.py +++ b/bitbake-dev/lib/bb/parse/parse_py/ConfHandler.py @@ -118,7 +118,6 @@ def handle(fn, data, include = 0): init(data) if include == 0: - bb.data.inheritFromOS(data) oldfile = None else: oldfile = bb.data.getVar('FILE', data) diff --git a/bitbake/ChangeLog b/bitbake/ChangeLog index c4aa5ba198..a2d0da29ea 100644 --- a/bitbake/ChangeLog +++ b/bitbake/ChangeLog @@ -52,6 +52,8 @@ Changes in BitBake 1.8.x: - Raise an exception if SRCREV == 'INVALID' - Fix hg fetcher username/password handling and fix crash - Fix PACKAGES_DYNAMIC handling of packages with '++' in the name + - Rename __depends to __base_depends after configuration parsing so we don't + recheck the validity of the config files time after time Changes in BitBake 1.8.10: - Psyco is available only for x86 - do not use it on other architectures. diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 4492bf045b..e262d0b9b4 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -113,6 +113,8 @@ Default BBFILES are the .bb files in the current directory.""" ) cooker = bb.cooker.BBCooker(configuration) + cooker.parseConfiguration() + if configuration.profile: try: import cProfile as profile diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 8e6acb19fc..50624d8d33 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -59,6 +59,10 @@ class BBCooker: self.configuration.data = bb.data.init() + def parseConfiguration(self): + + bb.data.inheritFromOS(self.configuration.data) + for f in self.configuration.file: self.parseConfigurationFile( f ) diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py index e6488bbe11..f8a49689e2 100644 --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py @@ -118,7 +118,6 @@ def handle(fn, data, include = 0): init(data) if include == 0: - bb.data.inheritFromOS(data) oldfile = None else: oldfile = bb.data.getVar('FILE', data) diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 211ac8129f..9c8d8e8435 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -305,3 +305,4 @@ def prunedir(topdir): for name in dirs: os.rmdir(os.path.join(root, name)) os.rmdir(topdir) +