summaryrefslogtreecommitdiff
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-01-20 18:46:02 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-01-20 18:46:02 +0000
commit22c29d8651668195f72e2f6a8e059d625eb511c3 (patch)
treedd1dd43f0ec47a9964c8a766eb8b3ad75cf51a64 /bitbake
parent1bfd6edef9db9c9175058ae801d1b601e4f15263 (diff)
downloadopenembedded-core-22c29d8651668195f72e2f6a8e059d625eb511c3.tar.gz
openembedded-core-22c29d8651668195f72e2f6a8e059d625eb511c3.tar.bz2
openembedded-core-22c29d8651668195f72e2f6a8e059d625eb511c3.zip
bitbake: Switch to bitbake-dev version (bitbake master upstream)
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/AUTHORS2
-rw-r--r--bitbake/ChangeLog217
-rw-r--r--bitbake/MANIFEST53
-rwxr-xr-xbitbake/bin/bitbake97
-rwxr-xr-xbitbake/bin/bitdoc2
-rw-r--r--bitbake/contrib/vim/syntax/bitbake.vim35
-rw-r--r--bitbake/doc/bitbake.14
-rw-r--r--bitbake/doc/manual/usermanual.xml28
-rw-r--r--bitbake/lib/bb/__init__.py3
-rw-r--r--bitbake/lib/bb/build.py226
-rw-r--r--bitbake/lib/bb/cache.py89
-rw-r--r--bitbake/lib/bb/command.py271
-rw-r--r--bitbake/lib/bb/cooker.py761
-rw-r--r--bitbake/lib/bb/daemonize.py191
-rw-r--r--bitbake/lib/bb/data.py2
-rw-r--r--bitbake/lib/bb/event.py211
-rw-r--r--bitbake/lib/bb/fetch/__init__.py42
-rw-r--r--bitbake/lib/bb/fetch/cvs.py2
-rw-r--r--bitbake/lib/bb/fetch/git.py73
-rw-r--r--bitbake/lib/bb/fetch/local.py4
-rw-r--r--bitbake/lib/bb/fetch/svk.py2
-rw-r--r--bitbake/lib/bb/fetch/wget.py2
-rw-r--r--bitbake/lib/bb/msg.py26
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py32
-rw-r--r--bitbake/lib/bb/parse/parse_py/ConfHandler.py13
-rw-r--r--bitbake/lib/bb/providers.py4
-rw-r--r--bitbake/lib/bb/runqueue.py341
-rw-r--r--bitbake/lib/bb/server/__init__.py2
-rw-r--r--bitbake/lib/bb/server/none.py181
-rw-r--r--bitbake/lib/bb/server/xmlrpc.py187
-rw-r--r--bitbake/lib/bb/shell.py19
-rw-r--r--bitbake/lib/bb/taskdata.py38
-rw-r--r--bitbake/lib/bb/ui/__init__.py18
-rw-r--r--bitbake/lib/bb/ui/crumbs/__init__.py18
-rw-r--r--bitbake/lib/bb/ui/crumbs/buildmanager.py457
-rw-r--r--bitbake/lib/bb/ui/crumbs/puccho.glade606
-rw-r--r--bitbake/lib/bb/ui/crumbs/runningbuild.py180
-rw-r--r--bitbake/lib/bb/ui/depexp.py272
-rw-r--r--bitbake/lib/bb/ui/goggle.py77
-rw-r--r--bitbake/lib/bb/ui/knotty.py162
-rw-r--r--bitbake/lib/bb/ui/ncurses.py335
-rw-r--r--bitbake/lib/bb/ui/puccho.py425
-rw-r--r--bitbake/lib/bb/ui/uievent.py125
-rw-r--r--bitbake/lib/bb/ui/uihelper.py49
-rw-r--r--bitbake/lib/bb/utils.py20
45 files changed, 4948 insertions, 956 deletions
diff --git a/bitbake/AUTHORS b/bitbake/AUTHORS
index 9d592608bb..a4014b1e39 100644
--- a/bitbake/AUTHORS
+++ b/bitbake/AUTHORS
@@ -2,7 +2,7 @@ Tim Ansell <mithro@mithis.net>
Phil Blundell <pb@handhelds.org>
Seb Frankengul <seb@frankengul.org>
Holger Freyther <zecke@handhelds.org>
-Marcin Juszkiewicz <marcin@haerwu.biz>
+Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Chris Larson <kergoth@handhelds.org>
Ulrich Luckas <luckas@musoft.de>
Mickey Lauer <mickey@Vanille.de>
diff --git a/bitbake/ChangeLog b/bitbake/ChangeLog
index 9fe3bf3d83..22124cb7ea 100644
--- a/bitbake/ChangeLog
+++ b/bitbake/ChangeLog
@@ -1,8 +1,99 @@
-Changes in BitBake 1.8.x:
- - Add bb.utils.prune_suffix function
-
-Changes in BitBake 1.8.12:
- - Fix -f (force) in conjunction with -b
+Changes in Bitbake 1.9.x:
+ - Add PE (Package Epoch) support from Philipp Zabel (pH5)
+ - Treat python functions the same as shell functions for logging
+ - Use TMPDIR/anonfunc as a __anonfunc temp directory (T)
+ - Catch truncated cache file errors
+ - Allow operations other than assignment on flag variables
+ - Add code to handle inter-task dependencies
+ - Fix cache errors when generation dotGraphs
+ - Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
+ - Fix bug when target was in ASSUME_PROVIDED (#2236)
+ - Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
+ - Fix invalid regexp in BBMASK error handling (missing import) (#1124)
+ - Promote certain warnings from debug to note 2 level
+ - Update manual
+ - Correctly redirect stdin when forking
+ - If parsing errors are found, exit, too many users miss the errors
+ - Remove supriours PREFERRED_PROVIDER warnings
+ - svn fetcher: Add _buildsvncommand function
+ - Improve certain error messages
+ - Rewrite svn fetcher to make adding extra operations easier
+ as part of future SRCDATE="now" fixes
+ (requires new FETCHCMD_svn definition in bitbake.conf)
+ - Change SVNDIR layout to be more unique (fixes #2644 and #2624)
+ - Add ConfigParsed Event after configuration parsing is complete
+ - Add SRCREV support for svn fetcher
+ - data.emit_var() - only call getVar if we need the variable
+ - Stop generating the A variable (seems to be legacy code)
+ - Make sure intertask depends get processed correcting in recursive depends
+ - Add pn-PN to overrides when evaluating PREFERRED_VERSION
+ - Improve the progress indicator by skipping tasks that have
+ already run before starting the build rather than during it
+ - Add profiling option (-P)
+ - Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
+ - Add SRCREV_FORMAT support
+ - Fix local fetcher's localpath return values
+ - Apply OVERRIDES before performing immediate expansions
+ - Allow the -b -e option combination to take regular expressions
+ - Fix handling of variables with expansion in the name using _append/_prepend
+ e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
+ - Add plain message function to bb.msg
+ - Sort the list of providers before processing so dependency problems are
+ reproducible rather than effectively random
+ - Fix/improve bitbake -s output
+ - Add locking for fetchers so only one tries to fetch a given file at a given time
+ - Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
+ - Expand data in addtasks
+ - Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
+ error message.
+ - Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
+ - Sort digraph output to make builds more reproducible
+ - Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
+ - runqueue.py: Fix idepends handling to avoid dependency errors
+ - Clear the terminal TOSTOP flag if set (and warn the user)
+ - Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
+ - Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
+ - Warn about malformed PREFERRED_PROVIDERS (#1072)
+ - Add support for BB_NICE_LEVEL option (#1627)
+ - Psyco is used only on x86 as there is no support for other architectures.
+ - Sort initial providers list by default preference (#1145, #2024)
+ - Improve provider sorting so prefered versions have preference over latest versions (#768)
+ - Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
+ - Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
+ - Handle paths in svn fetcher module parameter
+ - Support the syntax "export VARIABLE"
+ - Add bzr fetcher
+ - Add support for cleaning directories before a task in the form:
+ do_taskname[cleandirs] = "dir"
+ - bzr fetcher tweaks from Robert Schuster (#2913)
+ - Add mercurial (hg) fetcher from Robert Schuster (#2913)
+ - Don't add duplicates to BBPATH
+ - Fix preferred_version return values (providers.py)
+ - Fix 'depends' flag splitting
+ - Fix unexport handling (#3135)
+ - Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
+ - Allow multiple options for deptask flag
+ - Use git-fetch instead of git-pull removing any need for merges when
+ fetching (we don't care about the index). Fixes fetch errors.
+ - Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
+ faster at the expense of not creating mirror tarballs.
+ - SRCREV handling updates, improvements and fixes from Poky
+ - Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
+ - Add support for task selfstamp and lockfiles flags
+ - Disable task number acceleration since it can allow the tasks to run
+ out of sequence
+ - Improve runqueue code comments
+ - Add task scheduler abstraction and some example schedulers
+ - Improve circular dependency chain debugging code and user feedback
+ - Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
+ - Add support for "-e target" (#3432)
+ - Fix shell showdata command (#3259)
+ - Fix shell data updating problems (#1880)
+ - Properly raise errors for invalid source URI protocols
+ - Change the wget fetcher failure handling to avoid lockfile problems
+ - Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
+ - Make taskdata and runqueue errors more user friendly
+ - Add norecurse and fullpath options to cvs fetcher
- Fix exit code for build failures in --continue mode
- Fix git branch tags fetching
- Change parseConfigurationFile so it works on real data, not a copy
@@ -27,8 +118,10 @@ Changes in BitBake 1.8.12:
how extensively stamps are looked at for validity
- When handling build target failures make sure idepends are checked and
failed where needed. Fixes --continue mode crashes.
+ - Fix -f (force) in conjunction with -b
- Fix problems with recrdeptask handling where some idepends weren't handled
correctly.
+ - Handle exit codes correctly (from pH5)
- Work around refs/HEAD issues with git over http (#3410)
- Add proxy support to the CVS fetcher (from Cyril Chemparathy)
- Improve runfetchcmd so errors are seen and various GIT variables are exported
@@ -44,7 +137,6 @@ Changes in BitBake 1.8.12:
- Add PERSISTENT_DIR to store the PersistData in a persistent
directory != the cache dir.
- Add md5 and sha256 checksum generation functions to utils.py
- - Make sure Build Completed events are generated even when tasks fail
- Correctly handle '-' characters in class names (#2958)
- Make sure expandKeys has been called on the data dictonary before running tasks
- Correctly add a task override in the form task-TASKNAME.
@@ -63,6 +155,7 @@ Changes in BitBake 1.8.12:
used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
to extend the internal whitelist.
- Perforce fetcher fix to use commandline options instead of being overriden by the environment
+ - bb.utils.prunedir can cope with symlinks to directoriees without exceptions
- use @rev when doing a svn checkout
- Add osc fetcher (from Joshua Lock in Poky)
- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
@@ -76,109 +169,15 @@ Changes in BitBake 1.8.12:
proxies to work better. (from Poky)
- Also allow user and pswd options in SRC_URIs globally (from Poky)
- Improve proxy handling when using mirrors (from Poky)
-
-Changes in BitBake 1.8.10:
- - Psyco is available only for x86 - do not use it on other architectures.
- - Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
- - Warn about malformed PREFERRED_PROVIDERS (#1072)
- - Add support for BB_NICE_LEVEL option (#1627)
- - Sort initial providers list by default preference (#1145, #2024)
- - Improve provider sorting so prefered versions have preference over latest versions (#768)
- - Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
- - Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
- - Handle paths in svn fetcher module parameter
- - Support the syntax "export VARIABLE"
- - Add bzr fetcher
- - Add support for cleaning directories before a task in the form:
- do_taskname[cleandirs] = "dir"
- - bzr fetcher tweaks from Robert Schuster (#2913)
- - Add mercurial (hg) fetcher from Robert Schuster (#2913)
- - Fix bogus preferred_version return values
- - Fix 'depends' flag splitting
- - Fix unexport handling (#3135)
- - Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
- - Allow multiple options for deptask flag
- - Use git-fetch instead of git-pull removing any need for merges when
- fetching (we don't care about the index). Fixes fetch errors.
- - Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
- faster at the expense of not creating mirror tarballs.
- - SRCREV handling updates, improvements and fixes from Poky
- - Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
- - Add support for task selfstamp and lockfiles flags
- - Disable task number acceleration since it can allow the tasks to run
- out of sequence
- - Improve runqueue code comments
- - Add task scheduler abstraction and some example schedulers
- - Improve circular dependency chain debugging code and user feedback
- - Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
- - Add support for "-e target" (#3432)
- - Fix shell showdata command (#3259)
- - Fix shell data updating problems (#1880)
- - Properly raise errors for invalid source URI protocols
- - Change the wget fetcher failure handling to avoid lockfile problems
- - Add git branch support
- - Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
- - Make taskdata and runqueue errors more user friendly
- - Add norecurse and fullpath options to cvs fetcher
- - bb.utils.prunedir can cope with symlinks to directories without exceptions
-
-Changes in Bitbake 1.8.8:
- - Rewrite svn fetcher to make adding extra operations easier
- as part of future SRCDATE="now" fixes
- (requires new FETCHCMD_svn definition in bitbake.conf)
- - Change SVNDIR layout to be more unique (fixes #2644 and #2624)
- - Import persistent data store from trunk
- - Sync fetcher code with that in trunk, adding SRCREV support for svn
- - Add ConfigParsed Event after configuration parsing is complete
- - data.emit_var() - only call getVar if we need the variable
- - Stop generating the A variable (seems to be legacy code)
- - Make sure intertask depends get processed correcting in recursive depends
- - Add pn-PN to overrides when evaluating PREFERRED_VERSION
- - Improve the progress indicator by skipping tasks that have
- already run before starting the build rather than during it
- - Add profiling option (-P)
- - Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
- - Add SRCREV_FORMAT support
- - Fix local fetcher's localpath return values
- - Apply OVERRIDES before performing immediate expansions
- - Allow the -b -e option combination to take regular expressions
- - Add plain message function to bb.msg
- - Sort the list of providers before processing so dependency problems are
- reproducible rather than effectively random
- - Add locking for fetchers so only one tries to fetch a given file at a given time
- - Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
- - Fix handling of variables with expansion in the name using _append/_prepend
- e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- - Expand data in addtasks
- - Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
- error message.
- - Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
- - Sort digraph output to make builds more reproducible
- - Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- - runqueue.py: Fix idepends handling to avoid dependency errors
- - Clear the terminal TOSTOP flag if set (and warn the user)
- - Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
-
-Changes in Bitbake 1.8.6:
- - Correctly redirect stdin when forking
- - If parsing errors are found, exit, too many users miss the errors
- - Remove supriours PREFERRED_PROVIDER warnings
-
-Changes in Bitbake 1.8.4:
- - Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
- - Fix bug when target was in ASSUME_PROVIDED (#2236)
- - Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
- - Fix invalid regexp in BBMASK error handling (missing import) (#1124)
- - Don't run build sanity checks on incomplete builds
- - Promote certain warnings from debug to note 2 level
- - Update manual
-
-Changes in Bitbake 1.8.2:
- - Catch truncated cache file errors
- - Add PE (Package Epoch) support from Philipp Zabel (pH5)
- - Add code to handle inter-task dependencies
- - Allow operations other than assignment on flag variables
- - Fix cache errors when generation dotGraphs
+ - Add bb.utils.prune_suffix function
+ - Fix hg checkouts of specific revisions (from Poky)
+ - Fix wget fetching of urls with parameters specified (from Poky)
+ - Add username handling to git fetcher (from Poky)
+ - Set HOME environmental variable when running fetcher commands (from Poky)
+ - Make sure allowed variables inherited from the environment are exported again (from Poky)
+ - When running a stage task in bbshell, run populate_staging, not the stage task (from Poky)
+ - Fix + character escaping from PACKAGES_DYNAMIC (thanks Otavio Salvador)
+ - Addition of BBCLASSEXTEND support for allowing one recipe to provide multiple targets (from Poky)
Changes in Bitbake 1.8.0:
- Release 1.7.x as a stable series
diff --git a/bitbake/MANIFEST b/bitbake/MANIFEST
deleted file mode 100644
index 39e8017759..0000000000
--- a/bitbake/MANIFEST
+++ /dev/null
@@ -1,53 +0,0 @@
-AUTHORS
-COPYING
-ChangeLog
-MANIFEST
-setup.py
-bin/bitdoc
-bin/bbimage
-bin/bitbake
-lib/bb/__init__.py
-lib/bb/build.py
-lib/bb/cache.py
-lib/bb/cooker.py
-lib/bb/COW.py
-lib/bb/data.py
-lib/bb/data_smart.py
-lib/bb/event.py
-lib/bb/fetch/__init__.py
-lib/bb/fetch/bzr.py
-lib/bb/fetch/cvs.py
-lib/bb/fetch/git.py
-lib/bb/fetch/hg.py
-lib/bb/fetch/local.py
-lib/bb/fetch/osc.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/manifest.py
-lib/bb/methodpool.py
-lib/bb/msg.py
-lib/bb/parse/__init__.py
-lib/bb/parse/parse_py/__init__.py
-lib/bb/parse/parse_py/BBHandler.py
-lib/bb/parse/parse_py/ConfHandler.py
-lib/bb/persist_data.py
-lib/bb/providers.py
-lib/bb/runqueue.py
-lib/bb/shell.py
-lib/bb/taskdata.py
-lib/bb/utils.py
-setup.py
-doc/COPYING.GPL
-doc/COPYING.MIT
-doc/bitbake.1
-doc/manual/html.css
-doc/manual/Makefile
-doc/manual/usermanual.xml
-contrib/bbdev.sh
-contrib/vim/syntax/bitbake.vim
-contrib/vim/ftdetect/bitbake.vim
-conf/bitbake.conf
-classes/base.bbclass
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index 842ba0441e..23c9d73ee4 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -22,12 +22,18 @@
# 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, getopt, re, time, optparse
+import sys, os, getopt, re, time, optparse, xmlrpclib
sys.path.insert(0,os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
from bb import cooker
+from bb import ui
-__version__ = "1.8.13"
+
+__version__ = "1.9.0"
+
+if sys.hexversion < 0x020500F0:
+ print "Sorry, python 2.5 or later is required for this version of bitbake"
+ sys.exit(1)
#============================================================================#
# BBOptions
@@ -41,11 +47,28 @@ class BBConfiguration( object ):
setattr( self, key, val )
+def print_exception(exc, value, tb):
+ """
+ Print the exception to stderr, only showing the traceback if bitbake
+ debugging is enabled.
+ """
+ if not bb.msg.debug_level['default']:
+ tb = None
+
+ sys.__excepthook__(exc, value, tb)
+
+
#============================================================================#
# main
#============================================================================#
def main():
+ return_value = 0
+ pythonver = sys.version_info
+ if pythonver[0] < 2 or (pythonver[0] == 2 and pythonver[1] < 5):
+ print "Sorry, bitbake needs python 2.5 or later."
+ sys.exit(1)
+
parser = optparse.OptionParser( version = "BitBake Build Tool Core version %s, %%prog version %s" % ( bb.__version__, __version__ ),
usage = """%prog [options] [package ...]
@@ -99,8 +122,8 @@ Default BBFILES are the .bb files in the current directory.""" )
parser.add_option( "-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax",
action = "store_true", dest = "dot_graph", default = False )
- parser.add_option( "-I", "--ignore-deps", help = """Stop processing at the given list of dependencies when generating dependency graphs. This can help to make the graph more appealing""",
- action = "append", dest = "ignored_dot_deps", default = [] )
+ parser.add_option( "-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
+ action = "append", dest = "extra_assume_provided", default = [] )
parser.add_option( "-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
action = "append", dest = "debug_domains", default = [] )
@@ -108,6 +131,9 @@ Default BBFILES are the .bb files in the current directory.""" )
parser.add_option( "-P", "--profile", help = "profile the command and print a report",
action = "store_true", dest = "profile", default = False )
+ parser.add_option( "-u", "--ui", help = "userinterface to use",
+ action = "store", dest = "ui")
+
parser.add_option( "", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not",
action = "store_true", dest = "revisions_changed", default = False )
@@ -117,30 +143,53 @@ Default BBFILES are the .bb files in the current directory.""" )
configuration.pkgs_to_build = []
configuration.pkgs_to_build.extend(args[1:])
- cooker = bb.cooker.BBCooker(configuration)
+ #server = bb.server.xmlrpc
+ server = bb.server.none
+
+ # Save a logfile for cooker into the current working directory. When the
+ # server is daemonized this logfile will be truncated.
+ cooker_logfile = os.path.join (os.getcwd(), "cooker.log")
+
+ cooker = bb.cooker.BBCooker(configuration, server)
# Clear away any spurious environment variables. But don't wipe the
- # environment totally.
+ # environment totally. This is necessary to ensure the correct operation
+ # of the UIs (e.g. for DISPLAY, etc.)
bb.utils.clean_environment()
- cooker.parseConfiguration()
-
- if configuration.profile:
- try:
- import cProfile as profile
- except:
- import profile
-
- profile.runctx("cooker.cook()", globals(), locals(), "profile.log")
- import pstats
- p = pstats.Stats('profile.log')
- p.sort_stats('time')
- p.print_stats()
- p.print_callers()
- p.sort_stats('cumulative')
- p.print_stats()
+ cooker.parseCommandLine()
+
+ serverinfo = server.BitbakeServerInfo(cooker.server)
+
+ server.BitBakeServerFork(serverinfo, cooker.serve, cooker_logfile)
+ del cooker
+
+ sys.excepthook = print_exception
+
+ # Setup a connection to the server (cooker)
+ serverConnection = server.BitBakeServerConnection(serverinfo)
+
+ # Launch the UI
+ if configuration.ui:
+ ui = configuration.ui
else:
- cooker.cook()
+ ui = "knotty"
+
+ try:
+ # Dynamically load the UI based on the ui name. Although we
+ # suggest a fixed set this allows you to have flexibility in which
+ # ones are available.
+ exec "from bb.ui import " + ui
+ exec "return_value = " + ui + ".init(serverConnection.connection, serverConnection.events)"
+ except ImportError:
+ print "FATAL: Invalid user interface '%s' specified. " % ui
+ print "Valid interfaces are 'ncurses', 'depexp' or the default, 'knotty'."
+ except Exception, e:
+ print "FATAL: Unable to start to '%s' UI: %s." % (configuration.ui, e.message)
+ finally:
+ serverConnection.terminate()
+ return return_value
if __name__ == "__main__":
- main()
+ ret = main()
+ sys.exit(ret)
diff --git a/bitbake/bin/bitdoc b/bitbake/bin/bitdoc
index 3bcc9b344b..4940f660a6 100755
--- a/bitbake/bin/bitdoc
+++ b/bitbake/bin/bitdoc
@@ -453,6 +453,8 @@ def main():
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
+ if isinstance(documentation, dict):
+ documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()
diff --git a/bitbake/contrib/vim/syntax/bitbake.vim b/bitbake/contrib/vim/syntax/bitbake.vim
index 43a1990b0b..be55980b3a 100644
--- a/bitbake/contrib/vim/syntax/bitbake.vim
+++ b/bitbake/contrib/vim/syntax/bitbake.vim
@@ -16,12 +16,17 @@ endif
syn case match
-
" Catch incorrect syntax (only matches if nothing else does)
"
syn match bbUnmatched "."
+syn include @python syntax/python.vim
+if exists("b:current_syntax")
+ unlet b:current_syntax
+endif
+
+
" Other
syn match bbComment "^#.*$" display contains=bbTodo
@@ -34,21 +39,25 @@ syn match bbArrayBrackets "[\[\]]" contained
" BitBake strings
syn match bbContinue "\\$"
-syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarDeref
-syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarDeref
-
+syn region bbString matchgroup=bbQuote start=/"/ skip=/\\$/ excludenl end=/"/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
+syn region bbString matchgroup=bbQuote start=/'/ skip=/\\$/ excludenl end=/'/ contained keepend contains=bbTodo,bbContinue,bbVarInlinePy,bbVarDeref
" BitBake variable metadata
+syn match bbVarBraces "[\${}]"
+syn region bbVarDeref matchgroup=bbVarBraces start="${" end="}" contained
+" syn region bbVarDeref start="${" end="}" contained
+" syn region bbVarInlinePy start="${@" end="}" contained contains=@python
+syn region bbVarInlinePy matchgroup=bbVarBraces start="${@" end="}" contained contains=@python
+
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
-syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained
-syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
+" syn match bbVarDeref "${[a-zA-Z0-9\-_\.]\+}" contained
+syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.]\+\(_[${}a-zA/-Z0-9\-_\.]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
-syn match bbIdentifier "[a-zA-Z0-9\-_\.]\+" display contained
+syn match bbIdentifier "[a-zA-Z0-9\-_\./]\+" display contained
"syn keyword bbVarEq = display contained nextgroup=bbVarValue
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|=\)" contained nextgroup=bbVarValue
-syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref
-
+syn match bbVarValue ".*$" contained contains=bbString
" BitBake variable metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
@@ -61,10 +70,6 @@ syn match bbFunction "\h\w*" display contained
" BitBake python metadata
-syn include @python syntax/python.vim
-if exists("b:current_syntax")
- unlet b:current_syntax
-endif
syn keyword bbPythonFlag python contained nextgroup=bbFunction
syn match b