summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-08-24depexp: don't use undefined variable 'logging'Olof Johansson
This fixes an issue when trying to use depexp without specifying a recipe. Before change: $ bitbake -g -udepexp Traceback (most recent call last): File ".../bitbake/bin/bitbake", line 382, in <module> ret = main() File ".../bitbake/bin/bitbake", line 370, in main return ui_module.main(server_connection.connection, server_connection.events, configParams) File ".../bitbake/lib/bb/ui/depexp.py", line 201, in main logger.error(cmdline['msg']) NameError: global name 'logger' is not defined After change: $ bitbake -g -udepexp Please specify a package name for dependency graph generation. Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-23cooker: tweak CookerCollectFiles::find_bbfilesBernhard Reutner-Fischer
since python-2.5 string.endswith() takes a tuple Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22siggen: Fix a subtle bug in hash calculation for shared work tasksRichard Purdie
With a shared work task like gcc, the task can be run from a variety of different recipes which may have different virtual extensions in place. Depending on whether gcc-runtime or nativesdk-gcc-runtime's do_preconfigure task is called for example will change the sorting of the task hashes due to the way clean_basename currently works. The correct thing to do here is sort on the base filename first, then any extension when ordering the hashes. This means we do account for things like recipes with both a native and non-native dependency but we also fix the shared work case where we don't care whether it was a virtual version or not. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22process: Further improve robustness against server shutdownRichard Purdie
Currently, if an exception occurs in an event handler, the server shuts down but the UI simply hangs. This happens in two places, firstly waiting for events and secondly, sending events to a server which no longer exists. The latter does time out, the former does not. These patches improve both code sections to check if the main server process is alive and if not, trigger things to shut down gracefully. This avoids the timeout in the command sending case too. This resolves various cases where the UI would simply hang indefintely. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22utils: Add workaround for multiprocessing bugRichard Purdie
Our usage of multitprocessing is problematic. In particular, there is a bug in python 2.7 multiprocessing where signals are not handled until command completion instead of immediately. This adds a workaround into our wrapper function to deal with the issue. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22command: Trigger updateCache to shut down any active parser threadsRichard Purdie
If we trigger a shutdown whilst parsing for whatever reason, in some cases we were not closing down the parser threads. This change ensures we do so. The function names are not entirely intuitive but the behaviour is more correct (and commented). The previous bug with the stdout failure would trigger this one, if there was a cold cache and parsing was required (but not otherwise). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22bitbake-worker: Improve sigterm handlerRichard Purdie
When processes terminate, we really want all of the child processes to terminate too. This was not happening for worker processes which spawned their own multiprocessing pools, leading to build hangs. This change ensures any sigterm gets passed to the whole process group. In local tests, this resolved some hanging process workloads I could generate. It does rely on signals being delivered in a timely fashion and there is a multiprocessing bug we have to work around there. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-22knotty: Improve exception handlingRichard Purdie
Currently, IOErrors are just passed over due to the broken Exception clause. A command like "bitbake X | <invalid command>" would break stdout triggering a traceback. With these changes we print the exceptions, shut down the server gracefully and exit which is a much nicer behaviour and is less confusion to the user. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-20process: Deal with infinite looping of the serverRichard Purdie
Currently if an exception occurs, we just run the idle handler again and again, usually looping indefintely. Chances are the exception that occurred will keep occuring and this is not a good place to be. This was breaking the autobuilders with gigabytes of logs. At least improve things so the cooker shuts down gracefully when this happens. Some trace of the original problem may still be present on the console too! Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-19runqueue.py: Fix typoes/grammar in comments.Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-19fetch2/local.py: fix first line indent of search path debug outputAndre McCurdy
Make OE do_unpack logs slightly prettier. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-19daemonize.py: Non-functional comment/aesthetic fixes.Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-19runqueue.py: Correct several misspellings of "notifing".Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-19newbb.vim: remove PRRobert Yang
We don't need the "PR = r0" in the bb, so remove it to avoid misleading the user. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02runqueue: Add sceneQueueComplete eventRichard Purdie
Its useful to have an event emitted when all of the sceneQueue tasks have completed since the metadata can hook this for processing. Therefore add such an event. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02cooker: Get rid of duplicate 'import re'Namhyung Kim
The re module was imported at the top, no need to do it again. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02knotty: Move second event check into a proper blockNamhyung Kim
so that it doesn't check it twice for non-empty events Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-01bitbake-user-manual-metadata.xml: Fixed variable flags example.Scott Rifenbark
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-08-01bitbake-user-manual-fetching.xml: Minor edits to clearcase fetcherScott Rifenbark
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-08-01bitbake-user-manual/bitbake-user-manual-intro.xml: Fixed linkScott Rifenbark
I inadvertantly used a &YOCTO_* variable in the book to get a link to the landing YP page. Of course this does not work. I replaced it with the actual URL. Unfortunately, a previous commit slipped through that would have prevented the manual from "making" correctly. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-08-01bitbake-user-manual-fetching.xml: Added new clearcase fetcher module.Scott Rifenbark
Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-25codeparser cache improvementsRichard Purdie
It turns out the codeparser cache is the bottleneck I've been observing when running bitbake commands, particularly as it grows. There are some things we can do about this: * We were processing the cache with "intern()" at save time. Its actually much more memory efficient to do this at creation time. * Use hashable objects such as frozenset rather than set so that we can compare objects * De-duplicate the cache objects, link duplicates to the same object saving memory and disk usage and improving speed * Using custom setstate/getstate to avoid the overhead of object attribute names in the cache file To make this work, a global cache was needed for the list of set objects as this was the only way I could find to get the data in at setstate object creation time :(. Parsing shows a modest improvement with these changes, cache load time is significantly better, cache save time is reduced since there is now no need to reprocess the data and cache is much smaller. We can drop the compress_keys() code and internSet code from the shared cache core since its no longer used and replaced by codeparser specific pieces. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-25cache: Optimise invalid cache file handlingRichard Purdie
If there is a corrupt/invalid cache file, we'd keep trying to reopen it. This is pointless, simplify the code paths and delete the dead file. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-25cache: Don't reload the cache file since we already have this data in memoryRichard Purdie
If we're writing out merged data to disk, its safe to assume that either we loaded the data or couldn't. Loading it again is relatively pointless and time consuming. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-24bitbake: remove choices for dump-signaturesRobert Yang
The SIGNATURE_HANDLER can be defined by the user, so we can't use choices. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-23toasterui: fixing event.data clashAlexandru DAMIAN
This patch fixes a name collision on the event.data in the MetadataEvent class. event.data is used in the event system as a copy of "d" in certain situations, and this collision triggered a bug leading to data loss. [YOCTO #6332] Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster-requirements.txt: document requirements for the python environmentAlexandru DAMIAN
Since Toaster adds a number of specific requirements managed by pip, we document these requirements in order to be able to run bitbake and toaster under virtualenv. The target here is to break the dependency on distro packages for specific python libraries. In order to start bitbake/Toaster in a distro-independent manner, we use virtualenv and pip. We add venv to the .gitignore list to make room for the virtualenv deployment in this directory. Use this command sequence to setup the virtualenv: $ virtualenv venv $ . venv/bin/activate $ cat toaster-requirements.txt | xargs pip install bitbake and Toaster will then run normally under virtualenv. We also fix bugs related to toaster starting in managed mode through this script: * toaster will not use bldcontrol application in interactive mode * a proper message will be displayed if toaster detects a managed start request in a build environment Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster: properly set layers when running a buildAlexandru DAMIAN
This patch enables the localhost build controller to properly set the layers before the build runs. It creates the checkout directories under BuildEnvironment sourcedir directory, and runs the build in the buildir directory. Build launch errors are tracked in the newly added BRError table. These are different from build errors, in the sense that the build can't start due to these errors. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster: add project main edit pageAlexandru DAMIAN
This is the first commit on the project main edit page. At this point we have: * the default settings for a newly created project * the ability to add targets * the ability to trigger a build command, and have the build executed Project layers now have an optional field, allowing for removal. Default meta, meta-yocto and meta-yocto-bsp layers cannot be optional. We add XHR calls for interactivity in the main page. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster: move bldcontrol initial_data fixture to codeAlexandru DAMIAN
We move the initial_data fixture to a code migration, in order to make sure that we don't overwrite modified data. The data is inserted only if no data is present, instead of always overwriting the entry. The check settings returns 0 if the check was ok. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster: improved Project modelsAlexandru DAMIAN
A layer may live in a subdirectory of a git repository, so we add a field to track this setting in the Project layers. We add the Project schedule_build function, which creates a build request from the current project configuration. We also fix an import problem with Projects in views. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
2014-07-23toaster: add fields for sourcedir and builddir pathsAlexandru DAMIAN
We add explicit absolute paths for a directory where the layer sources will be checked out (sourcedir) and where the build activities will take place. Adding minimal checking when starting the application in order to make sure that BuildEnvironment (BE) settings are usable. This check is ran by the toaster script at startup. Modify the localhost bbcontroller to use the BE settings instead of trying to self-configure on checked out sources. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
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-22Updated the the example 'bitbake -h' output to match the actualScott Rifenbark
output, which has been recently patched to fix the '-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER' option. Note also, that I have added a new option that has since appeared in the output but was not in the manual's example. That option added is '--token=XMLRPCTOKEN'. Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
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-21bitbake: update help message for dump-signaturesRobert Yang
The bitbake -S had been updated which always reuires an argument, so update the help info: - Add the two args in the help message: none and printdiff - Use type="choice" so that we can get more friendly error messages, for example: bitbake: error: option -S: invalid choice: 'printdiffX' (choose from 'none', 'printdiff') - dump-signatures=DUMP_SIGNATURES -> dump-signatures=SIGNATURE_HANDLER Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-21bitbake-user-manual-metadata.xml: fixed some example whitespace issuesScott Rifenbark
I added some whitespace to bring the example to use 5 spaces rather than for so that it follows the manual's convention. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: KERNEL_FEATURES example updated.Scott Rifenbark
I added text to separate this example code from the general BitBake User Manual's spirit of standing alone and away from YP or OE stuff. Also, added another space to move the examples code so that 5 spaces are used for literal indentation. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Fixed whitespaceScott Rifenbark
I noticed that the examples from some patches were not indenting by 5 spaces. I have fixed these to be consistent. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Removed fakeroot from listRobert P. J. Day
"fakeroot" is now specified as a function attribute, not as a task flag. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Added second conditional metadata example.Robert P. J. Day
I think having a couple real-life examples here would make a huge difference. Comment from Scott: I modified the example description to indicate that it is from an OpenEmbedded metadata-based recipe (i.e from YP). We have been trying very hard to keep the BitBake User Manual as separate as possible from the YP docs. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Adding some flag examples.Robert P. J. Day
As long as i've understood everything correctly, this is just throwing in some physical examples of a couple concepts. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Edits to some operatorsScott Rifenbark
Added wording to clearly state immediate or delayed application for various operators. Reported-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-execution.xml: Minor edits to execution chapter.Robert P. J. Day
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-intro.xml: More edits to the intro chapter.Robert P. J. Day
Some applied as is, some not applied, some modified. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-intro.xml: Minor edits to start of intro chapterRobert P. J. Day
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitbake-user-manual-metadata.xml: Replaced "populate_staging"Robert Yang
There is no "populate_staging" any longer, should be "populate_sysroot". Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
2014-07-21bitmake-user-manual-fetching.xml: Added transportuser parameter for SVNScott Rifenbark
Fixes [YOCTO #6475] A new parameter has been added to make sure the user is not passed as the username for the subversion commands with the SVN fetcher. Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
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>