summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/cooker.py
Commit message (Collapse)AuthorAgeFilesLines
...
* bitbake: cooker: Further optimise pyinotifyRichard Purdie2015-01-211-1/+1
| | | | | | | | | | | | | | We currently add crazy numbers of watches on files. The per user limit is 8192 by default and on a system handling multiple builds, this can be an issue. We don't need to watch all files individually, we can watch the directory containing the file instead. This gives better resource utilisation and better performance further reverting some of the performance regression seen with the introduction of pyinotify. (Bitbake rev: a2d441237916a99405b800c1a3dc39f860100a8c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: command/cooker/knotty: Fix memres handling of command environment ↵Richard Purdie2015-01-211-1/+21
| | | | | | | | | | | | | | | | changes If the environment changes, we need memory resident bitbake to adapt to those changes. This adds in functionality to handle this alongside the configuration option handling code. This means that the common usage: MACHINE=X bitbake Y now works with the memory resident server. (Bitbake rev: 4d1343010da757a0c126bc22475354da44aaf8e3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Improve pyinotify performanceRichard Purdie2015-01-161-0/+6
| | | | | | | | | | | | | | Benchmarks show that the introduction of pyinotify regressed performance. This patch ensures we only call the add_watch() function for new entries, not ones we've already processed which does improve performance as measured by "time bitbake -p". This doesn't completely remove the overhead but it does substantially reduce it. (Bitbake rev: 493361f35f6cc332d4ea359a2695622c2c91a9c2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Fix pyinotify handling of ENOENT issuesRichard Purdie2015-01-141-4/+17
| | | | | | | | | | | We try and add watches for files that don't exist but if they did, would influence the parser. The parent directory of these files may not exist, in which case we need to watch any parent that does exist for changes. This change implements that fallback handling. (Bitbake rev: 979ddbe4b7340d7cf2f432f6b1eba1c58d55ff42) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/cache/parse: Implement pyinofity based reconfigureRichard Purdie2015-01-141-2/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Memory resident bitbake has one current flaw, changes in the base configuration are not noticed by bitbake. The parsing cache is also refreshed on each invocation of bitbake (although the mtime cache is not cleared so its pointless). This change adds in pyinotify support and adds two different watchers, one for the base configuration and one for the parsed recipes. Changes in the latter will trigger a reparse (and an update of the mtime cache). The former will trigger a complete reload of the configuration. Note that this code will also correctly handle creation of new configuration files since the __depends and __base_depends variables already track these for cache correctness purposes. We could be a little more clever about parsing cache invalidation, right now we just invalidate the whole thing and recheck. For now, its better than what we have and doesn't seem to perform that badly though. For education and QA purposes I can document a workflow that illustrates this: $ source oe-init-build-env-memres $ time bitbake bash [base configuration is loaded, recipes are parsed, bash builds] $ time bitbake bash [command returns quickly since all caches are valid] $ touch ../meta/classes/gettext.bbclass $ time bitbake bash [reparse is triggered, time is longer than above] $ echo 'FOO = "1"' >> conf/local.conf $ time bitbake bash [reparse is triggered, but with a base configuration reload too] As far as changes go, I like this one a lot, it makes memory resident bitbake truly usable and may be the tweak we need to make it the default. The new pyinotify dependency is covered in the previous commit. (Bitbake rev: 0557d03c170fba8d7efe82be1b9641d0eb229213) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Shut down the parser in error stateRichard Purdie2015-01-081-1/+1
| | | | | | | | | | | | If the cooker is in an error state, we shouldn't continue to try parsing. This fixes an issue where an invalid PR server is detected when bitbake is started and ensures bitbake exits cleanly rather than hanging. [YOCTO #6934] (Bitbake rev: 294bb9cad294423d4f8998405ceff58655f12660) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: add ability to ignore unmatched regexes in BBFILE_PATTERNPaul Eggleton2014-12-231-3/+4
| | | | | | | | | | | | | Add a BBFILE_PATTERN_IGNORE_EMPTY variable to allow ignoring the fact that a regex specified in BBFILE_PATTERN for a particular collection doesn't match any recipes. This will be used in OpenEmbedded in the workspace layers created by "devtool" which may not always contain any recipes (which is not cause for warning the user). (Bitbake rev: 19c74aaa2836a88d666f0032452fac521689ab6b) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: add option to write offline event log fileAlexandru DAMIAN2014-12-181-3/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a "-w/--write-log" option to bitbake that writes an event log file for the current build. The name of the file is passed as a parameter to the "-w" argument. If the parameter is the empty string '', the file name is generated in the form bitbake_eventlog_DATE.json, where DATE is the current date and time, with second precision. The "-w" option can also be supplied as the BBEVENTLOG environment variable. We add a script, toater-eventreplay, that reads an event log file and loads the data into a Toaster database, creating a build entry. We modify the toasterui to fix minor issues with reading events from an event log file. Performance impact is undetectable under no-task executed builds. (Bitbake rev: 1befb4a783bb7b7b387d4b5ee08830d9516f1ac2) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Allow featureset in error stateRichard Purdie2014-11-281-2/+2
| | | | | | | | | | | | | | | | Currently, if an invalid PR service is selected the server will error with a traceback. This is because its set into the error state and the setFeature code will then fail since its not in the initial state. Modifying the featureset in the error state is acceptable, we just need to ensure we don't trigger a reset, that would happen from whichever code handles the error. [YOCTO #6934] (Bitbake rev: c52841445d8db8f84c4da34203b195fea5874247) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: exit normally when SIGHUPRobert Yang2014-11-201-1/+6
| | | | | | | | | | | | | | Fixed: 1) Run "bitbake recipe" in the terminal 2) Close the terminal while building 3) $ ps aux | grep bitbake-worker There will be many processes, and they will keep the resources (e.g., memory), and won't exit unless kill or kill -9. (Bitbake rev: 40d2ae0723de2bf5fee343faafb4afda40546839) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker.py: fix loginfo op being set to an invalid valueBrendan Le Foll2014-11-121-2/+2
| | | | | | | | | | | loginfo "op" was being set to invalid values in saveConfigurationVar it was working because set is a python global but append is not. This replaces both the "op" with strings and removes the crash when calling appendConfigurationVar (Bitbake rev: 2a8e847de85546d43600a561f9c63aa36bd69222) Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: Ensure commandline parameters are updated in memres serverRichard Purdie2014-09-231-0/+4
| | | | | | | | | | | | | | | | When using options like -k, -f, -v and so on with the memory resident server, they'd currently only be set on the initial values passed to the original command. This ensures they now match those specified on the commandline for the options where this makes sense. To make this work, a command to update the options on the server side is required so this is added. [YOCTO #5292] (Bitbake rev: 1c75cc4d0c8b606c1fe76e6bf60bf6a32298b105) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: tweak CookerCollectFiles::find_bbfilesBernhard Reutner-Fischer2014-08-231-1/+1
| | | | | | | | | since python-2.5 string.endswith() takes a tuple (Bitbake rev: 86a67a1fd4244da9343dbf14deed1ad0d3003f32) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Get rid of duplicate 'import re'Namhyung Kim2014-08-021-2/+0
| | | | | | | | | The re module was imported at the top, no need to do it again. (Bitbake rev: c29c2370635075949c75937c237602600f4f10dc) Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: "per-package" should say "per-recipe"Robert P. J. Day2014-07-231-1/+1
| | | | | | | (Bitbake rev: 1cd369883469747a8158826bb8d67dcca2a8577f) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Overwrite IMAGE_BASENAME to default in custom imageMarius Avram2014-04-041-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | This solves a problem of custom images which inherit a base image with IMAGE_BASENAME overwritten in their recipe by a different value than its default one: ${PN}. The value of IMAGE_BASE causes a crash when hob will try to create symbolic links to the resulting images from the deploy directory, because it will look for names similar to <original_recipe_name>-edited-timestamp-machine.rootfs.* which might be different from the actual resulting image. The solution is to simply overwrite IMAGE_BASENAME in the custom recipe to the default value in the case IMAGE_BASENAME is found in the base recipe. Some recipes which were affected by this problem are those from meta-fsl-demos (e.g.: fsl-image-test). [YOCTO #6017] (Bitbake rev: e42ee93519000f827be49659b6b5fb7717b3d592) Signed-off-by: Marius Avram <marius.avram@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker: mark setFeatures command as read-onlyAlexandru DAMIAN2014-04-011-0/+3
| | | | | | | | | | | | | | | | This patch makes sure that the setFeatures command is marked as read-only and that it can only run if the cooker is in the initial state. Additionally, remove logging from the XMLRPC module in favor of sending the exception to the client for easy processing. [YOCTO #6089] (Bitbake rev: f0a1a3e24757f7658d272035620465f92a3e4c3c) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bin/bitbake/cooker: Ensure initial featureset is optimalRichard Purdie2014-03-301-1/+3
| | | | | | | | | | | | | If the featureset didn't match the defaults, we'd pay the price of two base configuration parses which showed up adversely in the performance benchmarks. This also passes the feature set into the cooker creation so in the common case we don't have to reset the server. This speeds up both knotty and hob startup. If the featureset doesn't match, the system will reset as before, this just streamlines the common case. (Bitbake rev: 1249543c4dbf3edeac033d888497864cfc807a4e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Only change self.data if it existsRichard Purdie2014-03-301-2/+4
| | | | | | | | | | | | | With the change to more optimal default featureset behaviour, a race was exposed by hob where the code may try and change self.data before it exists. This change avoids that. When the datastore is created, the cooker configuration is used so data tracking is correctly handled regardless. (Bitbake rev: 9d8f7efbc39d64124936ccaeb3c47a112e595d78) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/event: Overhaul sanity test mechanismRichard Purdie2014-03-271-1/+3
| | | | | | | | | | | | | | | | | | Sanity tests are currently a pain as its hard to control when they run. This results in issues where for example the bitbake -e output is not useful as the sanity tests prevent it from executing. The sanity tests should run later than the base configuration. This patch changes the sanity tests to always be event triggered with the option of returning either events on the status, or raising errors. A new cooker feature is used to change the behaviour depending on the controlling UI. This does need a change to sanity.bbclass in the OE metadata but its worth the pain for the increased flexibility and control this offers UIs and the improvement to the user experience. (Bitbake rev: 32e171bcc92c6e27fefee971e8714ddf8e1a8ac1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: delVar in removeConfigurationVarMarius Avram2014-03-251-0/+2
| | | | | | | | | | | When a variable was removed from a configuration file it was not removed from memory. This also had the effect of not allowing to set a new value for the same variable with saveConfigurationVar. (Bitbake rev: 30cd1fab6633aaf50ef53eefccc6d69d598eb293) Signed-off-by: Marius Avram <marius.avram@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker: some IMAGE_FEATURES not recognizedMarius Avram2014-03-141-1/+1
| | | | | | | | | | | | | | | Fixes an issue in hob which happened when the local.conf file was modified externally by appending "eclipse-debug" to the IMAGE_FEATURES variable. The reason of the problem is that some IMAGE_FEATURES are not available in the image.bbclass file and they are declared in the core-image.bbclass. Now a default hob image will inherit core-image. [YOCTO #5711] (Bitbake rev: 81413d94f40f58d790d7a7dc4259108f9c5d4fc0) Signed-off-by: Marius Avram <marius.avram@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Handle SIGTERM more gracefullyRichard Purdie2014-03-101-0/+7
| | | | | | | | | | | If the cooker receives a SIGTERM it currently hangs using 100% CPU, This patch adds in an intercept for the event and puts the cooker into shutdown mode allowing it to exit cleanly/safely and avoiding the hang. (Bitbake rev: 00c22434123739b0819b31d7b1d353901a3e12da) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/command: Add setFeatures commandRichard Purdie2014-03-101-0/+8
| | | | | | | | | Add a command to allow backends to set particular 'features' on the cooker (server). (Bitbake rev: f547d6ec6cfd677d71fa96dd3c69823c00dc6c69) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: hob: check if parser has attribute 'shutdown'Irina Patru2014-01-281-1/+2
| | | | | | | | | | | | It must be checked first if parser has the attribute 'shutdown' when user hits Stop button and the forceshutdown state is given. [HOB #5579] (Bitbake rev: 46943b442ea4fa778f70590b6dcce483595efaf8) Signed-off-by: Irina Patru <irina.patru@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Add option of specifying indvidual tasks for targetsRichard Purdie2014-01-281-1/+6
| | | | | | | | | | | | | | | | Currently its near enough impossible to tell bitbake to run target X, task Y and target A, task B. We could hack various parts of the API around but it would mean incompatibilities. An alternative is to accept the syntax "<target>:do_<task>" as a target name. The default task would be used where the task is unspecified. This has the advantage that its neat/clean code and works from all current APIs including the commandline. (Bitbake rev: 55f6bee3114e582333a1784caeddb197b9163d02) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake/lib/bb/cooker.py: remove a duplicated self.dataRobert Yang2014-01-031-2/+0
| | | | | | | (Bitbake rev: 34afbdd0fc809b8fb20696aeef3e6a61d6812e16) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/command/hob: Cleanup configuration init/reset functions and ↵Richard Purdie2013-12-031-19/+12
| | | | | | | | | | | | | | | | | | | | | | | | commands initConfigurationData and loadConfigurationData are similar functions, the only reason for them appears to be to be able to reset the pre/post configuration files. The current code is confusing and unmaintainable. Instead this patch creates a new Sync command which allows these to be explicitly set. The init and load functions can then be merged into one. There is then no need for a parseConfiguration command, we can simply reset the server to have the settings take effect. The reset fuction is not an instant value return and triggers an event so it should be an Async command, not a sync one. The number of calls for the set pre/post command is probably higher than it need be but someone with more familiarity with the hob code base can probably figure out the right places its needed (maybe just init_cooker?). (Bitbake rev: bae5210d7e048022f083361964ebec7daf1608f7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake.lock: Add host:port to bitbake.lock for memres serverJason Wessel2013-12-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea is to build on the --status-only option for bitbake and expose a mechanism where the oe init scripts can easily switch between memres server and the non-memres server. In the case of the standard oe init script the following can shut down the server: if [ -z "$BBSERVER" ] && [ -f bitbake.lock ] ; then grep ":" bitbake.lock > /dev/null && BBSERVER=`cat bitbake.lock` bitbake --status-only if [ $? = 0 ] ; then echo "Shutting down bitbake memory resident server with bitbake -m" BBSERVER=`cat bitbake.lock` bitbake -m fi fi A similar function can be used to automatically detect if the server is already running for the oe memres init script. This new functionality allows for the memres init script to be started in a new shell and connect up to an alaready running server without seeing the error of trying to start the server multiple times. (Bitbake rev: b1803958de8d7c3c3279841e38604a08dc2316cc) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Fix support for wildcards in bbappend filenamesNathan Rossi2013-11-291-1/+1
| | | | | | | | | | | | | | | | | | | | | The 'bbappend in f' incorrectly compares the current recipe with the avaliable bbappends recipes. This comparsion causes unrequested bbappend files to be appended, e.g. in the case of 'libgcc_4.8.bb', the bbappends for 'libgcc_4.8.bb' and 'gcc_4.8.bb' are added to the filelist (because 'gcc_4.8.bb' is contained in the 'libgcc_4.8.bb' string) which in turn causes the gcc_4.8.bbappend files to be appended to the libgcc_4.8 recipe. This should be a 'bbappend == f' to match the previous implementation of this function, such that if no wildcard is present the recipe names must match exactly. This issue was introduced by commit 31bc9af9cd56e7b318924869970e850993fafc5f, which it related to [YOCTO #5411]. (Bitbake rev: 991cbeedbde8bd25ce08c669b1bfac8b99e33149) Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: add support for using % as a wildcard in bbappend filenameSaul Wold2013-11-241-10/+10
| | | | | | | | | | | | | | | | | | | | | | | There has been a continuing call for supporting wildcard in bbappend filenames. The wildcard is actually allow matching of the name and version up to the point of encountering the %. This approach will allow for matching of the major or major.minor. Exampes: busybox_1.21.1.bb busybox_1.21.%.bbappend will match busybox_1.2%.bbappend will also match if we update to busybox_1.3.0.bb the above won't match, but a busybox_1.%.bb will. [YOCTO #5411] (Bitbake rev: 31bc9af9cd56e7b318924869970e850993fafc5f) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker, toaster: mark interrupted builds as failedAlexandru DAMIAN2013-11-201-2/+8
| | | | | | | | | | | | | | | | | This patch changes bitbake to log an error to the command line when the build is interrupted via Ctrl-C. This is needed to inform the user that not all tasks required for the build have been executed, and the build is not complete. Internally, the Bitbake server will return a CommandFailed event that will be logged by Toaster as build failure. (Bitbake rev: 9a658e8b1511f1b9f91663f546f748fdfbc8965f) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker, toaster: variable definition trackingAlexandru DAMIAN2013-11-151-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to track the file where a configuration variable was defined, this patch bring these changes: * a new feature is defined in CookerFeatures, named BASEDATASTORE_TRACKING. When a UI requests BASEDATASTORE_TRACKING, the base variable definition are tracked when configuration is parsed. * getAllKeysWithFlags now includes variable history in the data dump * toaster_ui.py will record the operation, file path and line number where the variable was changes * toaster Simple UI will display the file path and line number for Configuration page There is a change in the models to accomodate the recording of variable change history. [YOCTO #5227] (Bitbake rev: 78e58fed82f2a71f052485de0052d7b9cca53ffd) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: warn if user specifies a target listed in ASSUME_PROVIDEDPaul Eggleton2013-11-151-0/+5
| | | | | | | | | | | If the user explicitly asks to build a target that is listed in the value of ASSUME_PROVIDED, show a warning mentioning that it will be ignored. (Bitbake rev: 65be09f5e2a4a41e65c9232e208d8154b822fc4e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: replace "w" file opening mode with "a" modeCristiana Voicu2013-11-121-34/+6
| | | | | | | | | | Also removed some redundant file manipulation code Based on patch sent by Stefan Stanacar <stefanx.stanacar@intel.com> (Bitbake rev: e054c1e7c8581f66082fcdfb89769401ca6e78a3) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: do not recreate recipecache in buildfile modeAlexandru DAMIAN2013-11-041-1/+0
| | | | | | | | | | | | | | | | | | | | When building a single file, the cooker will recreate the recipecache from scratch. I suspect this is a remnant of past code, since: * the current recipecache works fine * the new recipecache will not have all the fields as requested by HOB_EXTRA_CACHES setting This patch disables recreating the recipecache, leading to shorter times when building single build files (-b option) and better compatibility with Toaster. (Bitbake rev: 618d69b00075981b8553513130d7deb1aed61578) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: add data to the dependency tree dumpAlexandru DAMIAN2013-11-041-0/+2
| | | | | | | | | | | | | | | | | | Toaster needes to record extra data that needs to be moved at the time of the dependency tree dump. This data includes: * layer priorities for recording in the layer section * the inherit list for each PN which allows to determine the type of the PN (regular package, image, etc). This patch adds this data to the dependency tree dump. (Bitbake rev: 7636aba37320aaf9b044d3832ddc21af51ccd69c) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/command: Add error state for the server and use for ↵Richard Purdie2013-10-141-1/+2
| | | | | | | | | | | | | | pre_serve errors Currently if errors occur when starting the PR service, there is a race that occurs since the UI runs various commands including starting builds before processing the CookerExit(). By adding the error state and refusing to run async commands in this mode, builds are prevented from starting and the UI reaches the exit code with the system shutting down cleanly. (Bitbake rev: 42fa34142ea685f91115a551e74416ca28ef1c91) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: replace comment added in conf filesCristiana Voicu2013-10-071-1/+1
| | | | | | | | | | | | The patch that implements removeConfigurationVar method was made before merging the patch that replaces "added by bitbake" with "added by hob". This patch corrects this issue. [YOCTO #5284] (Bitbake rev: 42601a5edef0316767b952b162123534aa8fee18) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake/hob: removing extra parameters from conf files using hobCristiana Voicu2013-10-071-0/+38
| | | | | | | | | | | | | In Hob settings, there is a tab to add/remove extra settings. This patch implements a way to "remove" variables from conf files, through bitbake. But, to keep the history assigment of the variables synchronized, instead of removing, it replaces the lines with blank lines. [YOCTO #5284] (Bitbake rev: bd720fb63cef6b399619b8fbcaeb8d7710f2d6df) Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: HOB: MACHINE should be saved in conf files using ?=Valentin Popa2013-10-071-7/+10
| | | | | | | | | | | | MACHINE var is saved using early assignment operator. Calling MACHINE=x bitbake core-image-... works properly. Comment "#added by bitbake" is replaced with "#added by hob". [YOCTO #5070] (Bitbake rev: 2d0ec8ff083b636a6cf98de3278900eb95c3def6) Signed-off-by: Valentin Popa <valentin.popa@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker, command: add a command to return global dataAlexandru DAMIAN2013-09-221-0/+15
| | | | | | | | | | | | | | Adding the 'getAllKeysWithFlags' read-only command that will return a dump of the global data state, together with specified flags for each key. The flag list is passed in as the first parameter to the command. This will be used by UI clients to get the build configuration. (Bitbake rev: 3e094da513e1220319288806cb76ddf804772afd) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker: get extra information from recipe cacheAlexandru DAMIAN2013-09-221-21/+29
| | | | | | | | | | | | | | | | | | | | | The loaded cache modules may add extra attributes to the recipecache, that will be populated by the cache classes required by the UI. These attributes will be used by the UI to display relevant information. Adds cachefields cache class field to specify for each cache class which attributes will be set in the recipecache. Adds code to automatically expand depends tree with the fields exported by the extra cache class. Fixes a cache field name in the HOB UI. (Bitbake rev: 47c171005fb3803d936e65fcd4436c643883ae16) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker,runqueue: send the task dependency treeAlexandru DAMIAN2013-09-221-1/+4
| | | | | | | | | | | | | | | Adding a CookerFeature that allows UIs to enable receving a dependency tree once the task data has been computed and the runQueue is ready to start. This will allow the clients to display dependency data in an efficient manner, and not recompute the runqueue specifically to get the dependency data. (Bitbake rev: 75466a53b6eece5173a9bfe483414148e4c06517) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake: cooker,xmlrpc,servers: implement CookerFeaturesAlexandru DAMIAN2013-09-221-2/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing feature set selection that allows a client to enable specific features in the server at connection time. Only enabling of features is supported, as there is no way to safely remove data loaded into the cooker. Once enabled, a feature will remain enabled for the life of the cooker. Client-server connection now supports specifying the feature set required by the client. This is implemented in the Process server using a managed proxy list, so the server cooker will now load dynamically needed features based on what client connects to it. In the XMLRPC server the feature set is requested by using a parameter for registerUIHandler function. This allows observer-only clients to also specify features for the server. The server code configuration now is completly separated from the client code. All hardcoding of client knowledge is removed from the server. The extra_caches is removed as the client can now specify the caches it needs using the feature. The UI modules now need to specify the desired featureSet. HOB is modified to conform to the featureSet specification. The only feature available is CookerFeatures.HOB_EXTRA_CACHES which forces loading the bb.cache_extra:HobRecipeInfo class. (Bitbake rev: 98e594837aab89ea042cfa9f3740d20a661b14e2) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: return a copy checkPackagesRichard Purdie2013-09-181-0/+3
| | | | | | | | | | | | | | The syntax used for checkPackages implies a copy is returned but it did not do so. Make it so. This is fixes universe builds where error messaages were being shown but there should have only been warnings. [YOCTO #5222] (Bitbake rev: 97db2a0792d605f27d434bc6a4acce52857deee1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Allow profiling of the parser in profile modeRichard Purdie2013-09-171-2/+22
| | | | | | (Bitbake rev: f8a6e4caed4dc3dcf207aecc4ea5f438027da8be) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Avoid duplication for taskdata creationAlexandru DAMIAN2013-09-171-40/+27
| | | | | | | | | | | | Clean-up to avoid duplication and promote code reuse to factor taskdata creation into a common function. [RP: minor tweaks] (Bitbake rev: 468c221449290c4f196e87f7d8e23fcd7db86135) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: updateCache should rause exceptions, not sys.exitRichard Purdie2013-09-141-2/+2
| | | | | | | | | | | Exiting from the server is antisocial, instead we should raise an exception. This will correctly fail the current command and reset the server state. We use the handled exception since for these conditions to occur, something was already displayed to the user. (Bitbake rev: dacc94bcace85a2e95aee2dccd8e680c59e4545f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker/command: Add finishcommand to reset cooker stateRichard Purdie2013-09-141-0/+3
| | | | | | | | | | | | | After running a command on the server, it needs to reset to the initial state. This ensures that subsequent clients start from a known state and notice any configuration changes. Ultimately we may want to do more than this buts a good start and better than nothing. (Bitbake rev: dd15648fc2654b8d7c3e00ea7ab3dbf04f24f24b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>