summaryrefslogtreecommitdiffstats
path: root/lib/bb
AgeCommit message (Collapse)Author
2014-07-23"per-package" should say "per-recipe"Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-21fetch2: Add module for ClearCase (ccrc://)Dennis Meier
The clearcase fetcher is used to retrieve files from a ClearCase (http://en.wikipedia.org/wiki/Rational_ClearCase) repository. Usage in the recipe: SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module" SRCREV = "EXAMPLE_CLEARCASE_TAG" PV = "${@d.getVar("SRCREV").replace("/", "+")}" The fetcher uses the rcleartool or cleartool remote client, depending on which one is available. Supported SRC_URI options are: - vob (required) The name of the clearcase VOB (with prepending "/") - module The module in the selected VOB (with prepending "/") The module and vob parameters are combined to create the following load rule in the view config spec: load <vob><module> - proto http or https Related variables: CCASE_CUSTOM_CONFIG_SPEC Write a config spec to this variable in your recipe to use it instead of the default config spec generated by this fetcher. Please note that the SRCREV loses its functionality if you specify this variable. SRCREV is still used to label the archive after a fetch, but it doesn't define what's fetched. User credentials: When using cleartool: The login of cleartool is handled by the system. No special steps needed. When using rcleartool: In order to use rcleartool with authenticated users an `rcleartool login` is necessary before using the fetcher. Signed-off-by: Dennis Meier <meier.dennis@siemens.com> Reviewed-by: Roger Meier <r.meier@siemens.com> Reviewed-by: Christian Liechti <christian.liechti@siemens.com> Reviewed-by: Henrique Mendonca <henrique.mendonca@siemens.com> Reviewed-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-21command/runqueue: Fix shutdown logicRichard Purdie
If you hit Ctrl+C at the right point, the system processes the request but merrily continues building. It turns out finish_runqueue() is called but this doesn't stop the later generation and execution of the runqueue. This patch adjusts some of the conditionals to ensure the build really does stop. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-09toasterui: fix build - project identificationAlexandru DAMIAN
This patches fixes the build - project identification when running under managed mode. The build is assigned to the project from which it was triggered, and to the build request, as to simplify relationships queries in the database. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-04toasterui: Show in the log that ToasterUi is ready to receive events.Dave Lerner
Issue: TA53702 It was observed that a sequence in a script such as bitbake --server-only .. bitbake --observe-only .. bitbake <some target> could generate events from the server to the observer before the observer was ready to read the events, and the early events of builds were consistently dropped. Adding a "ready" note in the log allows the script to scan for that message before proceeding to building a target. Signed-off-by: Dave Lerner <dave.lerner@windriver.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-03fetch2/svn: Add transportuser parameterRichard Purdie
There may be a need to set the user for the transport rather than the subversion command itself. Add a parameter to the url to allow this. [YOCTO #6475] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-03lib: fix no newline at end of fileRobert Yang
Add a '\n' to the last line of the file to fix: No newline at end of file Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-19build.py: Ensure shared work siginfo files are written to the correct locationRichard Purdie
Right now shared work signature data is saved to the non-shared directory which is confusing to everyone including bitbake. Whilst its messy, extra the stampbase data instead, which ensures the sig data is written to the correct location alongside its corresponding stamp file. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-12toaster: build control functionalityAlexandru DAMIAN
We add the build control functionality to toaster. * The bldcontrol application gains bbcontroller classes that know how to manage a localhost build environment. * The toaster UI now detects it is running under build environment controller, and update the build controller database and will shut down the bitbake server once the build is complete. * The toaster script can now run in standalone mode, launching the build controller and the web interface instead of just monitoring the build, as in the interactive mode. * A fixture with the default build controller entry for localhost is provided. [YOCTO #5490] [YOCTO #5491] [YOCTO #5492] [YOCTO #5493] [YOCTO #5494] [YOCTO #5537] Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-06-12xmlrpc: add support for token reusingAlexandru DAMIAN
We add support to specify a connection token in the command line and in the environment variable BBTOKEN. When a client registers to a bitbake server, that client will have exclusive access to the server. The client is identified by a server-supplied token. If a client terminates, we cannot reconnect to the server as the token is lost. This patch adds the capability to specify the connection token in the command line for xmlrpc clients. This allows us to have bitbake work as an already-authenticated client with the server and resume sending commands to a server. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-06-11bb/utils: fix contains_any()Ross Burton
"set1 in set2" doesn't do what you'd expect, and if it did do a subset test that's not the logic required by contains_any(). Instead get the intersection of checkvalues and val and check if the resulting set is empty or not (by evaluating it in a boolean context), which tells us if there are any elements in common. Based on a patch by Valentin Popa <valentin.popa@intel.com>. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-11bb/tests/data.py: add tests for contains() and contains_any()Ross Burton
contains_any is buggy so write a test case to demonstrate this. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-11cache.py: print debug info when EXCLUDE_FROM_WORLDRobert Yang
This gives us an easy way to find out which recipes have been excluded from world when there are many layers. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06toasterui: fix django settings environment valueAlexandru DAMIAN
Previously, the buildinfohelper only set a django settings module environment variable if none were set. This may lead to problems when the starting the toasterui from an already existing Django environment. As such, we always override the variable to provide the correct name for the local Django settings module. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06toaster: update toaster to run in managed modeAlexandru DAMIAN
We disable bitbake self start to prevent race condition. ToasterUI will shutdown the server when the build is done if running in managed mode. We fix usage of kill server flag in the bitbake binary. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06uievent: retry on handler registration failureAlexandru DAMIAN
The registration of a remote UI event handler may fail if the server cooker is currently in some certain states. This may happen, for example, when a remote UI is started very fast after the bitbake server is started, and the server hadn't time to finish initial configuration parsing. Rather than fail outright, we have the remote UI event retry registration for five time at one-second intervals, in the hope it will succeed. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06xmlrpc: client - remove fatal errorsAlexandru DAMIAN
When we use the XMLRPC client API to connect to a bitbake server, we want to receive errors from the API instead of having the API exiting without warning. Thus the "bb.fatal" calls have been replaced with "bb.warn" calls, and we re-raise the original exception for handling by the original caller. The bitbake starting script has been modified to properly test for failures in calling the client API and handle them. Additional error handling added in the client, as to prevent fatal crashes. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06bitbake: move configuration reading codeAlexandru DAMIAN
The configuration reading code should live in the main bitbake entry point, and the server modules should be supplied with correct configuration instead of attempting to parse from configuration files. This patch moves the endpoint address reading from XMLRPC to the bitbake main script. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-01siggen: Print warning about tainted tasksRichard Purdie
The big warning printed when people use -f is easily ignored/forgotten. To raise user awareness, print a warning any time we include a tainted stamp file into a build instead. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-31build/utils: Fix broken exception handlingRichard Purdie
Checking for explicit exception names is bad, we also want to be able top rely on inheritance. Fix these checks to be part of the real except clauses so SkipPackage is recognised as being inherited from SkipRecipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-31bb.fatal: Raise a BBHandledException instead of exitingRichard Purdie
With new bitbake UIs having the cooker exit at 'random' points in the codebase is problematic. This patch raises an exception which matches the situation instead. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30event: Add SkipRecipe event to replace SkipPackageRichard Purdie
In the depths of time we were rather confused about naming. bb files are recipes, the event to skip parsing them should be SkipRecipe, not SkipPackage. This changes bitbake to use the better name but leaves the other around for now. We can therefore start removing references to it from the metadata. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30event.py: Allow passthrough of BBHandledException eventsRichard Purdie
We need BBHandledException events to be passed through to the higher layers, they don't need addition of any traceback since they've already been reported to the user. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30cookerdata: Improve error handlingRichard Purdie
If we see errors during parsing, firstly its bad to show a traceback for an expansion error so lets suppress this. Secondly, raise a BBHandledException instead of a SystemExit to show we've informed the user about the condition (printing a traceback in the default unknown case). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30event: Fix event handlers to raise SkipPackageRichard Purdie
If an event handler triggers a SkipPackage event, we really want that event to be received and processed by the higher code levels. Currently it was getting caught and ignored which was leading to recipes being present when they clearly shouldn't have been. In general this exception catching looks to be doing the wrong thing. It was introduced in http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/event.py?id=37cb4cc02b2e2b6c338c5943747e0a1ef15176b3 but we likely want exceptions to pass through to the higher layers. This patch therefore removes that code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30utils: avoid printing traceback on ExpansionError during parsingPaul Eggleton
If an ExpansionError occurs during better_exec() we should just raise it instead of printing the traceback, so that recipe errors (such as broken URLs in SRC_URI) are more easily comprehensible. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-30fetch2: improve handling of two classes of URL parameter mistakesPaul Eggleton
Handle the following situations in a URL (e.g. in SRC_URI): * Trailing semicolon in a URL - this is now ignored. * Parameter specified with no value (no equals sign). This still produces an error, but at least it is MalformedUrl with a proper message rather than "ValueError: need more than 1 value to unpack". Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-28fetch2/hg: Fix missing proto param for hg checkout with user and pwVolker Vogelhuber
A fix for the former patch when checking out a repository with username and password using HG Signed-off-by: Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-21data_smart: Fix an unusual variable reference bugRichard Purdie
If you try: Y = "" Y_remove = "X" in OE-Core, bitbake will crash with a KeyError during expansion. The reason is that no expansion of the empty value is attempted but removal from is it and hence no varparse data is present for it in the expand_cache. If the value is empty, there is nothing to remove so the best fix is simply not to check for None but check it has any value. Also add a test for this error so it doesn't get reintroduced. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-19fetch2/gitsm: Documentation improvements for gitsm:// fetcherChris Morgan
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-11fetch2/perforce: Ensure command has a defaultRichard Purdie
Ensure there is default command available if FETCHCMD_p4 isn't set. Also clean up the getVar references whilst here. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-11parse: Improve file inheritance loggingRichard Purdie
The file inheritance logging has been here since the dawn of time. It duplicates output many times over and logs to debug level 2. When running with the debug option, its understandable the user may want to see the paths of files included in the build. These changes remove pointless/duplicate output and print the include paths clearly at debug level one in a form which users should be able to more easily parse. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-11knotty: Fix output printed to the user at debug log levelsRichard Purdie
If a user runs with the -v or -D options, its understandable they'd expect to see log output from the workers yet right now a bug in the log handling does not show this. Fix the conditional to ensure such log output is shown on the terminal when it has been requested. Ideally this data should always flow to the logfiles but that is for another patch. This also fixes the code to do what was always intended in the comments, i.e. if the user specifies -D or -v, output is shown from the tasks, otherwise notes are suppressed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-11parse/ast: Show append logging at lower log levelRichard Purdie
It was reported that bitbake -D made no mention of which append files it was using. bitbake -DD does but it makes sense to increase the log level of this piece of debug information. [YOCTO #6262] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-11fix cloning of mercurial repository with username and password specified in urlVolker Vogelhuber
Signed-off-by: Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-08Fix refetch of local files when they are read onlyNick Lewis
Signed-off-by: Nick Lewis <nick.lewis@usa.g4s.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-07data_smart: Ensure all possible overrides are cached including those with ↵Richard Purdie
'_' in the name Unfortunately we've been neglecting to pay the correct tributes to the cookie monster and hence the datastore is malfunctioning. Currently tributes are only paid on the last part of a variable after the last "_" character. We need to split by *all* "_" characters since an override may contain the character. This fixes the code so the correct number of tributes are made. Paradoxically parsing appears to be faster after this change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-03persist_data: Avoid fsync() callsRichard Purdie
If the power were to fail, it doesn't matter to us much if the data makes it to disk or not, we'd have other problems. However an fsync() call on a multi build autobuilder is painful so lets avoid them. This is particularly true in this case if a timeout causes a reconnect during a build. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-03codeparser: Fix to better catch all getVar referencesRichard Purdie
Currently if you do localdata.getVar, the code parser simply ignores the references. Change the code to use endswith() to catch more of the references. These names are probably unique enough to get away with this. Bump the cache version to ensure things get updated. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-01bitbake: Bump version to 1.23.1Richard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-29bb.utils, bb.codeparser: Add bb.utils.contains_anyOtavio Salvador
This includes contains_any in the special handling code for sstate. It does not take into account the equivalence of the values. In current code, considering 'bb.utils.contains_any("A", "foo bar", ...)': A = "foo" A = "bar" A = "foo bar" All those will get different signatures. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-29codeparser: don't interact with the cache for subshellsChristopher Larson
Doing so was causing leakage between the execs of the main value and that of the subshell value, and was causing the cached subshell value to be used for the overall variable. At the least this could cause execs contamination between two variables that while differing, run the same subshell. Beyond that, it's possible we could have been using an incomplete cached value of a subshell for that of the main value. Before this, bb_codeparser.dat would change between parses with differing bbfile parse order. After, it does not change. The codeparser cache version is bumped, to ensure we don't use potentially incorrect cached values from previous runs. This should hopefully resolve the difficult-to-reproduce issues we've seen at Mentor Graphics where bitbake emits a script to run a task and misses dependent functions, resulting in 'command not found' failures. This issue has also been mentioned on the oe devel list, where someone hit a case where oe_runmake was missing from a do_install task (IIRC). Adding debug information showed that bitbake's information about the variable dependencies for this task is inaccurate in the failure cases. Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-29fetch2: Cleanup file checksum generation, v2Jacob Kroon
The initial version of this patch was reverted in 0a94e568152de550dedc8135a766beb18bf064ab However, it was later agreed upon that it was reverted due to a misunderstanding during code review; the patch is ok. This version of the patch also removes an unneeded initialization of the 'checksum' variable outside the scopes it is being used in. Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-29HG Fetch with username and password in urlVolker Vogelhuber
Following up a previous patch for mercurial fetcher, I just fixed a problem when calling update on a repository with subrepositories enabled. Attached a patch that fixes this problem >From caae519a2bd64bf7c729bb26aff344827def47fb Mon Sep 17 00:00:00 2001 From: Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> Date: Tue, 29 Apr 2014 15:29:47 +0200 Subject: [PATCH] - fixed authentication issues in case of using sub repositories Signed-off-by: Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-28Revert "fetch2: Cleanup file checksum generation"Richard Purdie
This reverts commit 6dfb33fd7204e09815bde7ba5bf21941a73fe965. It causes an unindeded change in behaviour.
2014-04-27fetch2: Cleanup file checksum generationJacob Kroon
Cleanup the fix done in f9416e76e272ba3249abff099f6f3a47fe82e03e. Instead of adding continue statements we can just move the last statements into the final else-clause. Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-27fetch2/git: Stop git from triggering fsync() callsRichard Purdie
We only ever clone other repositories, if there were a problem such as power failure, we'd blow away data and rebuild. As such we don't need fsync(). With filesystems like ext*, the fsync pushes nearly all the data out to disk which impacts all running processes. We therefore set a configuration parameter to disable the fsync() calls. Also fixup a case where basecmd wasn't being used for no good reason. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-21parse/ast: Optimise data finalisationRichard Purdie
The optimisation where only the data we're interested in was finalised was good but it turns out we can do better. In the case where a class-extension is to be targeted, we can skip the other targets. This change does that and speeds up parsing at the bitbake-worker execution time. Specifically, you can see an improvement in the speed of bitbake X -n. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-21runqueue: Do not write out stamp files in dry_run modeRichard Purdie
In dry run mode, stamps for noexec tasks are being written out which is incorrect. Avoid this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-21runqueue: Fix task weighting algorithmRichard Purdie
When looking at a list of tasks, do_patch and do_unpack were being given equal priority when one clearly depends on another. The reason for this was the default task weights of 0 being to tasks. This is therefore changed to 1 to allow correct weighting of dependencies which means the scheduler has better information available to it about tasks. Weight endpoints differently (10) for clearer debugging of priorities. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>