diff options
Diffstat (limited to 'bitbake')
60 files changed, 0 insertions, 16975 deletions
diff --git a/bitbake/AUTHORS b/bitbake/AUTHORS deleted file mode 100644 index ef119cce22..0000000000 --- a/bitbake/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -Phil Blundell <pb@handhelds.org> -Holger Freyther <zecke@handhelds.org> -Chris Larson <kergoth@handhelds.org> -Mickey Lauer <mickey@Vanille.de> -Richard Purdie <rpurdie@rpsys.net> -Holger Schurig <holgerschurig@gmx.de> diff --git a/bitbake/ChangeLog b/bitbake/ChangeLog deleted file mode 100644 index 135aba9fee..0000000000 --- a/bitbake/ChangeLog +++ /dev/null @@ -1,100 +0,0 @@ -Changes in BitBake 1.7.3: - -Changes in BitBake 1.7.1: - - Major updates of the dependency handling and execution - of tasks - - Change of the SVN Fetcher to keep the checkout around - courtsey to Paul Sokolovsky (#1367) - -Changes in Bitbake 1.6.0: - - Better msg handling - - COW dict implementation from Tim Ansell (mithro) leading - to better performance - - Speed up of -s - -Changes in Bitbake 1.4.4: - - SRCDATE now handling courtsey Justin Patrin - - #1017 fix to work with rm_work - -Changes in BitBake 1.4.2: - - Send logs to oe.pastebin.com instead of pastebin.com - fixes #856 - - Copy the internal bitbake data before building the - dependency graph. This fixes nano not having a - virtual/libc dependency - - Allow multiple TARBALL_STASH entries - - Cache, check if the directory exists before changing - into it - - git speedup cloning by not doing a checkout - - allow to have spaces in filenames (.conf, .bb, .bbclass) - -Changes in BitBake 1.4.0: - - Fix to check both RDEPENDS and RDEPENDS_${PN} - - Fix a RDEPENDS parsing bug in utils:explode_deps() - - Update git fetcher behaviour to match git changes - - ASSUME_PROVIDED allowed to include runtime packages - - git fetcher cleanup and efficency improvements - - Change the format of the cache - - Update usermanual to document the Fetchers - - Major changes to caching with a new strategy - giving a major performance increase when reparsing - with few data changes - -Changes in BitBake 1.3.3: - - Create a new Fetcher module to ease the - development of new Fetchers. - Issue #438 fixed by rpurdie@openedhand.com - - Make the Subversion fetcher honor the SRC Date - (CVSDATE). - Issue #555 fixed by chris@openedhand.com - - Expand PREFERRED_PROVIDER properly - Issue #436 fixed by rprudie@openedhand.com - - Typo fix for Issue #531 by Philipp Zabel for the - BitBake Shell - - Introduce a new special variable SRCDATE as - a generic naming to replace CVSDATE. - - Introduce a new keyword 'required'. In contrast - to 'include' parsing will fail if a to be included - file can not be found. - - Remove hardcoding of the STAMP directory. Patch - courtsey pHilipp Zabel - - Track the RDEPENDS of each package (rpurdie@openedhand.com) - - Introduce BUILD_ALL_DEPS to build all RDEPENDS. E.g - this is used by the OpenEmbedded Meta Packages. - (rpurdie@openedhand.com). - -Changes in BitBake 1.3.2: - - reintegration of make.py into BitBake - - bbread is gone, use bitbake -e - - lots of shell updates and bugfixes - - Introduction of the .= and =. operator - - Sort variables, keys and groups in bitdoc - - Fix regression in the handling of BBCOLLECTIONS - - Update the bitbake usermanual - -Changes in BitBake 1.3.0: - - add bitbake interactive shell (bitbake -i) - - refactor bitbake utility in OO style - - kill default arguments in methods in the bb.data module - - kill default arguments in methods in the bb.fetch module - - the http/https/ftp fetcher will fail if the to be - downloaded file was not found in DL_DIR (this is needed - to avoid unpacking the sourceforge mirror page) - - Switch to a cow like data instance for persistent and non - persisting mode (called data_smart.py) - - Changed the callback of bb.make.collect_bbfiles to carry - additional parameters - - Drastically reduced the amount of needed RAM by not holding - each data instance in memory when using a cache/persistent - storage - -Changes in BitBake 1.2.1: - The 1.2.1 release is meant as a intermediate release to lay the - ground for more radical changes. The most notable changes are: - - - Do not hardcode {}, use bb.data.init() instead if you want to - get a instance of a data class - - bb.data.init() is a factory and the old bb.data methods are delegates - - Do not use deepcopy use bb.data.createCopy() instead. - - Removed default arguments in bb.fetch - diff --git a/bitbake/MANIFEST b/bitbake/MANIFEST deleted file mode 100644 index f088792aa4..0000000000 --- a/bitbake/MANIFEST +++ /dev/null @@ -1,44 +0,0 @@ -AUTHORS -ChangeLog -MANIFEST -setup.py -bin/bitdoc -bin/bbimage -bin/bitbake -lib/bb/COW.py -lib/bb/__init__.py -lib/bb/build.py -lib/bb/cache.py -lib/bb/data.py -lib/bb/data_smart.py -lib/bb/event.py -lib/bb/manifest.py -lib/bb/methodpool.py -lib/bb/msg.py -lib/bb/providers.py -lib/bb/runqueue.py -lib/bb/shell.py -lib/bb/taskdata.py -lib/bb/utils.py -lib/bb/fetch/cvs.py -lib/bb/fetch/git.py -lib/bb/fetch/__init__.py -lib/bb/fetch/local.py -lib/bb/fetch/perforce.py -lib/bb/fetch/ssh.py -lib/bb/fetch/svk.py -lib/bb/fetch/svn.py -lib/bb/fetch/wget.py -lib/bb/parse/__init__.py -lib/bb/parse/parse_py/BBHandler.py -lib/bb/parse/parse_py/ConfHandler.py -lib/bb/parse/parse_py/__init__.py -doc/COPYING.GPL -doc/COPYING.MIT -doc/manual/html.css -doc/manual/Makefile -doc/manual/usermanual.xml -contrib/bbdev.sh -contrib/vim/syntax/bitbake.vim -conf/bitbake.conf -classes/base.bbclass diff --git a/bitbake/bin/bbimage b/bitbake/bin/bbimage deleted file mode 100755 index 9adedbfc63..0000000000 --- a/bitbake/bin/bbimage +++ /dev/null @@ -1,155 +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 as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# 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., 59 Temple -# Place, Suite 330, Boston, MA 02111-1307 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) - -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/bin/bitbake b/bitbake/bin/bitbake deleted file mode 100755 index 33e8933c90..0000000000 --- a/bitbake/bin/bitbake +++ /dev/null @@ -1,764 +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, 2004 Chris Larson -# Copyright (C) 2003, 2004 Phil Blundell -# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer -# Copyright (C) 2005 Holger Hans Peter Freyther -# Copyright (C) 2005 ROAD GmbH -# Copyright (C) 2006 Richard Purdie -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# 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., 59 Temple -# Place, Suite 330, Boston, MA 02111-1307 USA. - -import sys, os, getopt, glob, copy, os.path, re, time -sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) -import bb -from bb import utils, data, parse, event, cache, providers, taskdata, runqueue -from sets import Set -import itertools, optparse - -parsespin = itertools.cycle( r'|/-\\' ) - -__version__ = "1.7.4" - -#============================================================================# -# BBStatistics -#============================================================================# -class BBStatistics: - """ - Manage build statistics for one run - """ - def __init__(self ): - self.attempt = 0 - self.success = 0 - self.fail = 0 - self.deps = 0 - - def show( self ): - print "Build statistics:" - print " Attempted builds: %d" % self.attempt - if self.fail: - print " Failed builds: %d" % self.fail - if self.deps: - print " Dependencies not satisfied: %d" % self.deps - if self.fail or self.deps: return 1 - else: return 0 - - -#============================================================================# -# BBOptions -#============================================================================# -class BBConfiguration( object ): - """ - Manages build options and configurations for one run - """ - def __init__( self, options ): - for key, val in options.__dict__.items(): - setattr( self, key, val ) - -#============================================================================# -# BBCooker -#============================================================================# -class BBCooker: - """ - Manages one bitbake build run - """ - - Statistics = BBStatistics # make it visible from the shell - - def __init__( self ): - self.build_cache_fail = [] - self.build_cache = [] - self.stats = BBStatistics() - self.status = None - - self.cache = None - self.bb_cache = None - - def tryBuildPackage(self, fn, item, task, the_data, build_depends): - """ - Build one task of a package, optionally build following task depends - """ - bb.event.fire(bb.event.PkgStarted(item, the_data)) - try: - self.stats.attempt += 1 - if self.configuration.force: - bb.data.setVarFlag('do_%s' % task, 'force', 1, the_data) - if not build_depends: - bb.data.setVarFlag('do_%s' % task, 'dontrundeps', 1, the_data) - if not self.configuration.dry_run: - bb.build.exec_task('do_%s' % task, the_data) - bb.event.fire(bb.event.PkgSucceeded(item, the_data)) - self.build_cache.append(fn) - return True - except bb.build.FuncFailed: - self.stats.fail += 1 - bb.msg.error(bb.msg.domain.Build, "task stack execution failed") - bb.event.fire(bb.event.PkgFailed(item, the_data)) - self.build_cache_fail.append(fn) - raise - except bb.build.EventException, e: - self.stats.fail += 1 - event = e.args[1] - bb.msg.error(bb.msg.domain.Build, "%s event exception, aborting" % bb.event.getName(event)) - bb.event.fire(bb.event.PkgFailed(item, the_data)) - self.build_cache_fail.append(fn) - raise - - def tryBuild( self, fn, build_depends): - """ - Build a provider and its dependencies. - build_depends is a list of previous build dependencies (not runtime) - If build_depends is empty, we're dealing with a runtime depends - """ - - the_data = self.bb_cache.loadDataFull(fn, self.configuration.data) - - item = self.status.pkg_fn[fn] - - if bb.build.stamp_is_current('do_%s' % self.configuration.cmd, the_data) and not self.configuration.force: - self.build_cache.append(fn) - return True - - return self.tryBuildPackage(fn, item, self.configuration.cmd, the_data, build_depends) - - def showVersions( self ): - pkg_pn = self.status.pkg_pn - preferred_versions = {} - latest_versions = {} - - # Sort by priority - for pn in pkg_pn.keys(): - (last_ver,last_file,pref_ver,pref_file) = bb.providers.findBestProvider(pn, self.configuration.data, self.status) - preferred_versions[pn] = (pref_ver, pref_file) - latest_versions[pn] = (last_ver, last_file) - - pkg_list = pkg_pn.keys() - pkg_list.sort() - - for p in pkg_list: - pref = preferred_versions[p] - latest = latest_versions[p] - - if pref != latest: - prefstr = pref[0][0] + "-" + pref[0][1] - else: - prefstr = "" - - print "%-30s %20s %20s" % (p, latest[0][0] + "-" + latest[0][1], - prefstr) - - - def showEnvironment( self ): - """Show the outer or per-package environment""" - if self.configuration.buildfile: - self.cb = None - self.bb_cache = bb.cache.init(self) - try: - self.configuration.data = self.bb_cache.loadDataFull(self.configuration.buildfile, self.configuration.data) - except IOError, e: - bb.msg.fatal(bb.msg.domain.Parsing, "Unable to read %s: %s" % ( self.configuration.buildfile, e )) - except Exception, e: - bb.msg.fatal(bb.msg.domain.Parsing, "%s" % e) - # emit variables and shell functions - try: - data.update_data( self.configuration.data ) - data.emit_env(sys.__stdout__, self.configuration.data, True) - except Exception, e: - bb.msg.fatal(bb.msg.domain.Parsing, "%s" % e) - # emit the metadata which isnt valid shell - data.expandKeys( self.configuration.data ) - for e in self.configuration.data.keys(): - if data.getVarFlag( e, 'python', self.configuration.data ): - sys.__stdout__.write("\npython %s () {\n%s}\n" % (e, data.getVar(e, self.configuration.data, 1))) - - def generateDotGraph( self, pkgs_to_build, ignore_deps ): - """ - Generate a task dependency graph. - - pkgs_to_build A list of packages that needs to be built - ignore_deps A list of names where processing of dependencies - should be stopped. e.g. dependencies that get - """ - - for dep in ignore_deps: - self.status.ignored_dependencies.add(dep) - - localdata = data.createCopy(self.configuration.data) - bb.data.update_data(localdata) - bb.data.expandKeys(localdata) - taskdata = bb.taskdata.TaskData(self.configuration.abort) - - runlist = [] - try: - for k in pkgs_to_build: - taskdata.add_provider(localdata, self.status, k) - runlist.append([k, "do_%s" % self.configuration.cmd]) - taskdata.add_unresolved(localdata, self.status) - except bb.providers.NoProvider: - sys.exit(1) - rq = bb.runqueue.RunQueue() - rq.prepare_runqueue(self.configuration.data, self.status, taskdata, runlist) - - seen_fnids = [] - depends_file = file('depends.dot', 'w' ) - tdepends_file = file('task-depends.dot', 'w' ) - print >> depends_file, "digraph depends {" - print >> tdepends_file, "digraph depends {" - rq.prio_map.reverse() - for task1 in range(len(rq.runq_fnid)): - task = rq.prio_map[task1] - taskname = rq.runq_task[task] - fnid = rq.runq_fnid[task] - fn = taskdata.fn_index[fnid] - pn = self.status.pkg_fn[fn] - version = self.bb_cache.getVar('PV', fn, True ) + '-' + self.bb_cache.getVar('PR', fn, True) - print >> tdepends_file, '"%s.%s" [label="%s %s\\n%s\\n%s"]' % (pn, taskname, pn, taskname, version, fn) - for dep in rq.runq_depends[task]: - depfn = taskdata.fn_index[rq.runq_fnid[dep]] - deppn = self.status.pkg_fn[depfn] - print >> tdepends_file, '"%s.%s" -> "%s.%s"' % (pn, rq.runq_task[task], deppn, rq.runq_task[dep]) - if fnid not in seen_fnids: - seen_fnids.append(fnid) - packages = [] - print >> depends_file, '"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn) - for depend in self.status.deps[fn]: - print >> depends_file, '"%s" -> "%s"' % (pn, depend) - rdepends = self.status.rundeps[fn] - for package in rdepends: - for rdepend in rdepends[package]: - print >> depends_file, '"%s" -> "%s" [style=dashed]' % (package, rdepend) - packages.append(package) - rrecs = self.status.runrecs[fn] - for package in rrecs: - for rdepend in rrecs[package]: - print >> depends_file, '"%s" -> "%s" [style=dashed]' % (package, rdepend) - if not package in packages: - packages.append(package) < |
