summaryrefslogtreecommitdiffstats
path: root/bitbake
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: prserv/serv: Improve error message when prserver cannot bind to ↵Konrad Scherer2014-09-291-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | supplied host address If localhost resolves to a remote address (due to a misconfigured network), starting the pr server will fail without useful information. To reproduce, add '<bogus ip> localhost' to /etc/hosts and run 'bitbake -p'. The error message will be: ERROR: Timeout while attempting to communicate with bitbake server ERROR: Could not connect to server False: Running 'bitbake-prserv --host=localhost --port=0 --start' will fail with: error: [Errno 99] Cannot assign requested address Since these errors does not show the IP address of the attempted socket binding, this results in a lot of wasted time looking at firewall rules, etc. This patch results in the following error message if the socket binding fails: PR Server unable to bind to <bogus ip>:0 (Bitbake rev: fae5914030bcf4c061c22fc61034c40c87b7121a) Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: Fix sstate mirrors manglingRichard Purdie2014-09-291-4/+1
| | | | | | | | | | | | hob was adding the redundant characters "\1" in SSTATE_MIRRORS variable. If needed it is expected the user will add this instead so remove the code that was doing this. [YOCTO #6600] (Bitbake rev: 73bf120062fc00c7e26dc4e77a7d140658d89daf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch: Extend testing of subdir unpack parameter and fixRichard Purdie2014-09-292-0/+9
| | | | | | | | | This fixes urls of the form file://some/path/file;subdir=b. It also adds in a couple of tests so we now tests these corner cases. (Bitbake rev: 46306912a96444790efa9418d934dfdd36773ba1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch: SRC_URI parameter "subdir" does not work for local filesRoxana2014-09-291-1/+4
| | | | | | | | | | | Check if the 'subdir' parameter exists and assign it to 'destdir' so that files are copied in ${WORKDIR}/destdir. This fixes urls that are of the form file://a;subdir=b. (Bitbake rev: 836a986b365eb9798563ec08d90b346596de7791) Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: monitordisk: don't log when not monitoring a filesystem for inodesRoss Burton2014-09-291-4/+2
| | | | | | | | | | | | Writing a log that the filesystem isn't being monitored for inode usage just confuses users who are not aware about the nature of inodes in their filesystem, so don't say anything, just silently disable the monitor. In general this only happens on filesystems which don't have a limit on inodes. (Bitbake rev: ca93bc84ee5fb94a50c11c47e4d212d7da649e24) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bin/bitbake: Update to version 1.24.0Richard Purdie2014-09-232-2/+2
| | | | | | (Bitbake rev: 637ce8df2658e4905fab8a0600a45505596bf472) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/perforce: Use replace (1 line) instead of find (3 lines)Chad Nelson2014-09-231-7/+3
| | | | | | (Bitbake rev: 5bf5a937b26896bedbfea78dd1d62bce5a26ac2a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/perforce: Fix localfile name if labels are usedChad Nelson2014-09-231-10/+7
| | | | | | | | | | | | | | I could apply the label "release_1.0" to a super project that contains many sub projects. If my recipes have SRC_URI's that use that label but grab different sub-folders, than there's a bug where the cached localfile (tar.gz) will not be unique and reused at the wrong times. SRC_URI = "p4://perforce::1234@//depot/SuperProject/MiniProjectAAA/...;label=release_1.0 \ p4://perforce::1234@//depot/SuperProject/MiniProjectBBB/...;label=release_1.0" (Bitbake rev: 3b5b1703b77490116dda895b29737cea51a3d6a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: Ensure commandline parameters are updated in memres serverRichard Purdie2014-09-234-0/+20
| | | | | | | | | | | | | | | | 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: bitbake-worker: Fix bitbake -nRichard Purdie2014-09-221-2/+3
| | | | | | | | | | | | Without this you see: File "bitbake/bin/bitbake-worker", line 201, in fork_off_task os._exit(child()) TypeError: an integer is required (Bitbake rev: cd477b5e77ab0373248b8a8fa30e1c7b8ea984fd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data_smart: Clarify what 'computed' means in the data store history ↵Richard Purdie2014-09-161-1/+1
| | | | | | | | context (Bitbake rev: a2ca038dd1d0be4e0a0b20ae16a467d5a0075514) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data_smart: Fix remove operator and its interaction with data expansionRichard Purdie2014-09-132-1/+9
| | | | | | | | | | | | | | | | | | | If you have: FOO = "${bindir}/X Y" FOO_remove = "${bindir}/X" the expected result is "Y". Currently this doesn't work since the removed expressions are not expanded first. This patch adjusts things so the expressions are expanded before being processed for removal. Also add a test to ensure this case continues to work. [YOCTO #6624] (Bitbake rev: 72a1ca4a104ccab73d6abcbd44db9c2636a58572) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bin/bitbake: Update to version 1.23.2Richard Purdie2014-09-112-2/+2
| | | | | | (Bitbake rev: e24095f54c52a547c0462836586a5d716249036e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen/runqueue/bitbake-worker: Improve siggen data transfer interfaceRichard Purdie2014-09-113-8/+7
| | | | | | | | | | | | | We need to transfer some of the siggen data from the core/cooker into the worker instances. There was a partial API created for this but its ugly and its not possible to extend it from the siggen class. This patch completes the interface/abstraction for the data and means the class can extend/customise it in any siggen class. (Bitbake rev: cf2d642052979d236185c5b8ca2c5478c06e62ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: tinfoil: add a means of enabling variable history trackingPaul Eggleton2014-09-051-3/+6
| | | | | | | | | | | | | | | Unfortunately it seems like the external use of the cooker enableDataTracking() function broke at some point since the code that reads it now runs within BBCooker's constructor. Since this now has to be done early, add a parameter to Tinfoil's constructor to allow enabling variable history tracking. Fixes [YOCTO #6676]. (Bitbake rev: a9439b136f55f3f0e80ff053cd3b159da69ba362) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: fix some code spacing issuesMarius Avram2014-09-052-23/+25
| | | | | | | | | | | Code is related to the basetable templates files. It had mixed tabs and spaces and was miss aligned in various places, making it hard to read. (Bitbake rev: cdaea8951df6b707afd1fefbf22295088256dd6f) Signed-off-by: Marius Avram <marius.avram@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: use cookies for count and sorting in templates tablesMarius Avram2014-09-053-46/+102
| | | | | | | | | | | | | | | | | | | | | | | | Until now cookies were used to save which columns were shown and which were hidden in toaster tables. The tables from the templates also have functionalities like sorting the entries on a certain column and limiting the number of entries displayed on a page. The later however were not saved using cookies. This patch brings this new feature. The cookies are not saved only in the front-end. They are saved both in the frontend in case the user uses the inputs/buttons to change a parameter and also in the backend in case the user specifies manually using GET variables the value of the parameters. When no GET parameters are given the views will redirect the url to one containg the parameters saved as cookies. When no cookies exist, default values will be used. [YOCTO #6126] (Bitbake rev: 880b58c845e3a501fa90d24e1bd89c87ca84b709) Signed-off-by: Marius Avram <marius.avram@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: do not save objects in sessionAlexandru DAMIAN2014-09-051-9/+9
| | | | | | | | | | | | | | | In order to avoid problems when using JSON serializer for saving sessions, we move from storing the objects themselves in the session to storing the object id and reloading the object when retrieved. This allows, for example, to use cookie-storage sessions if the infrastructure owner so desires. (Bitbake rev: 39d0f0c2e87d4b161f1eeaa2657e61b5a6bc9ee2) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: enable SSH-based remote build supportAlexandru DAMIAN2014-09-054-182/+488
| | | | | | | | | | | | | | | | We enable support for starting builds on remote machines through SSH. The support is limited to poky-based distributions. We refactor localhost build support and we update bldcontrol application tests to uniformely test the APIs of localhost and SSH build controllers. [YOCTO #6240] (Bitbake rev: c2ad9c9bb83f61c171434324df8c4d5ee655a556) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: bitbake server listen on all interfaceAlexandru DAMIAN2014-09-051-3/+3
| | | | | | | | | | | | | We change the toaster starting script to make the bitbake server listen on all interfaces on the local machine. This is needed to be able to receive a controlling client running on a remote machine. (Bitbake rev: 137179eafca8d1a5a69b6302f8cc8961be3b45c4) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: rename bldviewer projecttags custom tagsetAlexandru DAMIAN2014-09-054-3/+3
| | | | | | | | | | | | | | | We rename the projecttags in bldviewer.templatetags to simple_projecttags in order to avoid conflict with the similarly named tagset in toastergui. The conflict leads to an intermittent bug where proper tags are not read correctly since Django uses only the module name as global tag library identificator. (Bitbake rev: a37f2c194d7e59611177cb8755524b7ad702fe91) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: process: Ensure abnormal exits set an error levelRichard Purdie2014-09-021-1/+1
| | | | | | (Bitbake rev: 8f5c1cdae1ee6ce04ae0d04d0b95bd80efbf7534) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: ignore interrupted system callsDan McGregor2014-09-011-1/+1
| | | | | | | | | | | | | With the improved exception handling added in an earlier commit bitbake now stops when recieving a SIGWINCH. This happens frequently when disconnecting and reconnecting tmux sessions and bitbake didn't survive. Restore old behaviour of ignoring interrupted system calls but keep proper exception handling for other errors. (Bitbake rev: 418358a595c75f45b8d15160ec42bbe569562d91) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: added pages for project detailsAlexandru DAMIAN2014-09-018-38/+564
| | | | | | | | | | | | | | | | | | | | | We add new pages for the layer importing, layer details, showing project builds and project configuration. The pages are in read-only mode, but they're needed as to be able to verify the quality of data in the system. Write capabilities will be added in a subsequent patch. [YOCTO #6595] [YOCTO #6590] [YOCTO #6591] [YOCTO #6588] [YOCTO #6589] (Bitbake rev: eed9ae5c2a2bd7567e12ae9a4f02a5a966a1e1a3) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: add project pages for machines, targets, layersAlexandru DAMIAN2014-09-019-115/+559
| | | | | | | | | | | | | | | | | | | | | | We add new pages for the all-machines and all-targets project-related views. We update the existing template structure to create a base project view, similar to a base build view, that includes a breadcrumb. Updating existing all layers view to use the new structure. We update methods in the models to provide corrent information display. [YOCTO #6592] [YOCTO #6593] (Bitbake rev: 973f582a19441c1ec67061160e4c50ce03ed7b68) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: create Build methods for calculating progress and ETAAlexandru DAMIAN2014-08-292-12/+19
| | | | | | | | | | | We move the code to calculate build progress as percent and the ETA of the build to the model, so that they can be reused across different pages. (Bitbake rev: c2ced09e7ea4a1762d2788bb12a761734d20fd8e) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: buildinfohelper: BuildRequest project file update soft linkedAlexandru DAMIAN2014-08-291-1/+1
| | | | | | | (Bitbake rev: 93887dadd5ee35557d320e96059c466d2e541065) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toatergui: update pages to match project modelsAlexandru DAMIAN2014-08-293-11/+10
| | | | | | | | | | We update pages and queries to match the new project models. (Bitbake rev: 8f47ec259106da714260c7388cee75a6c1f4622d) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: update the bldcontrol to the new orm modelsAlexandru DAMIAN2014-08-294-12/+158
| | | | | | | | | | | | | | | | We update the build controller application to make proper use of the bitbake specification in project settings. Added heuristic to detect when the meta* layers and bitbake are checked out from Yocto Project poky, and use a single git checkout. Building without a proper oe-init-build-env is not yet supported. (Bitbake rev: 9eafe14956013f5af39b68fc93e1b03e7ea1f5c2) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: update checksettings command for auto-detectionAlexandru DAMIAN2014-08-292-11/+188
| | | | | | | | | | | | | | | | | We enhance the checksettings command to try to automatically detect settings for running on localhost. The checksettings will look for a nearby poky layer source, for a nearby build directory, and will try to import settings from "toasterconf.json" files found in the local layer. On new configuration, it will also perform updates from the layer source. (Bitbake rev: 2aab77dfccb538e2b09829841ea6c464d40cafb1) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: add all layers pageAlexandru DAMIAN2014-08-292-1/+246
| | | | | | | | | | | | | We add a page where the user can browse and import layers from all the layers known by Toaster. [YOCTO #6590] (Bitbake rev: 59f4a9750a6c4f5360a91e3a4d1c03ceb42da086) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: create project section navigation structureAlexandru DAMIAN2014-08-294-26/+85
| | | | | | | | | | | | | We create the navigation structure for the project section. This includes adding URLs for configuration, builds, all layers, layer details and all targets pages. Changes to existing pages to exemplify navigation links. (Bitbake rev: 6f0cb9d106129eb496a4c009d95b0727378e97c1) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: enable admin interface on select modelsAlexandru DAMIAN2014-08-294-10/+43
| | | | | | | | | | | | | | | | | We enable the admin interface in Toaster. We add admin models for Build Environments (where the sysadmin can configure where the builds take place) and for Layer Sources (marking the upstream provider for layer information). The admin interface and associated data are enabled only for the MANAGED version. (Bitbake rev: 6618613c9210fb44d36d90f5f2404b435f10dfc8) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: update orm models for layerindex compatibilityAlexandru DAMIAN2014-08-297-38/+1096
| | | | | | | | | | | | | | | | | | | | | We add a ToasterSettings table that will keep installation-wide settings. We update the models for the layer-related data storage to make them compatible with the layerindex application API. We add a LayerSource class that can update local data from a LayerIndex-like compatible API. Adding a command line option to perform information update from all upstream layer sources. Fair warning - there is no backward migration from 0013. (Bitbake rev: 89e13579e1b44b738f10fadec8454aa0e6f073af) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: fix application discovery in settings.pyAlexandru DAMIAN2014-08-291-3/+1
| | | | | | | | | | | We fix application discovery, tuples don't have .append(). Other minor fixes. (Bitbake rev: a6f18aac3e6bb448d89a3425a2f756c6514ee595) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toasterui: refactor log saving and save out-of-build errorsAlexandru DAMIAN2014-08-292-38/+51
| | | | | | | | | | | | | We refactor log saving to go through only one code path. All logs that happened outside the build (i.e. before build starting) now will be logged to either toaster_ui.log if the build command ran in interactive mode, or to the build request errors if the command ran in managed mode. This enables proper display of error logs in project page. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: build/data: Write out more complete python run filesRichard Purdie2014-08-282-1/+36
| | | | | | | | | | | | | Currently the output in the python task/function run files is rather incomplete and effectively useless. This enhances the code to take advantage of the bitbake's dependency tracking and extend the output to include dependencies. This makes the files more usable for debugging purposes. Since this only happens at python function execution time, the overhead is minimal in the grand scheme of things. (Bitbake rev: 02667e048c3e632f857c87177c0022eaf5481802) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: Extra profiling data dumpRichard Purdie2014-08-282-6/+37
| | | | | | | | | | | | | | Currently we get no profiling oversight into either the main bitbake worker process, or the overall parsing before task execution. This adds in extra profiling hooks so we can truly capture all parts of bitbake's execution into the profile data. To do this we modify the 'magic' value passed to bitbake-worker to trigger the profiling, before the configuration data is sent over to the worker. (Bitbake rev: 446e490bf485b712e5cee733dab5805254cdcad0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: utils: Improve profile log processingRichard Purdie2014-08-281-6/+1
| | | | | | | | | This stream redirection of stdout is horrible. pstats takes a stream argument so lets use that instead. (Bitbake rev: 93d155f4766e27e7b004d13569aa03961fe89e3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/hg: Fix username/password handlingRichard Purdie2014-08-281-1/+4
| | | | | | | | | We should only add user/password options if they're specified as in the fetch case. Patch from Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> (Bitbake rev: 303e6256947f4df4f283b75b7ccfdffa72864d67) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix setscene tasks not runningRichard Purdie2014-08-281-0/+4
| | | | | | | | | | | | | | | | | | | | Currently, if you have hard dependencies between setscene tasks (like avahi on base-passwd through useradd.bbclass), other dependencies may not be installed even if these exist in sstate. For example, avahi -> expat -> pigz-native (and avahi -> base-passwd) yet if you cleansstate base-passwd: bitbake gzip-native:do_clean avahi:do_clean expat:do_clean pigz-native:do_clean base-passwd:do_cleansstate bitbake avahi | tee you will currently see pigz-native being rebuilt even though it was in sstate. The fix for this is to continue to iterate dependency chains around hard blocked dependencies as per this patch. After this patch is applied, you will see pigz-native installed from sstate. (Bitbake rev: f787957a224e8c2682a19e5c4a4d9c86bdce52ba) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/*.py: Typo fixes/grammar/comment fixes, nothing functional.Robert P. J. Day2014-08-259-27/+29
| | | | | | | (Bitbake rev: 587b144ee409d444494d8d7f2d1c53ede8f7c953) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: depexp: don't use undefined variable 'logging'Olof Johansson2014-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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. (Bitbake rev: 984ad90b2f1e29634dc79803a4a0404ab0534039) Signed-off-by: Olof Johansson <olof.johansson@axis.com> 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: siggen: Fix a subtle bug in hash calculation for shared work tasksRichard Purdie2014-08-231-1/+1
| | | | | | | | | | | | | | | | | | | 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. (Bitbake rev: 2e80b5d10a5037ed6f0bc227a1f9b42529c87086) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: process: Further improve robustness against server shutdownRichard Purdie2014-08-231-3/+14
| | | | | | | | | | | | | | | | | 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. (Bitbake rev: ac418e1112ff5f9c3157569316902f7a27fba4b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: utils: Add workaround for multiprocessing bugRichard Purdie2014-08-231-0/+12
| | | | | | | | | | | | 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. (Bitbake rev: a16185e602b39b71475aa7e9ee80ad2b1f28d0f7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: command: Trigger updateCache to shut down any active parser threadsRichard Purdie2014-08-231-0/+3
| | | | | | | | | | | | | 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). (Bitbake rev: 25bfa2478f1c3a8eb695e1e5760e06db5be8f2fc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: Improve sigterm handlerRichard Purdie2014-08-231-1/+6
| | | | | | | | | | | | | | 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. (Bitbake rev: 96f8ea07ace1379380fab2d78eb592fa40c867d4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: Improve exception handlingRichard Purdie2014-08-231-1/+9
| | | | | | | | | | | | 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. (Bitbake rev: 9544108f7b413038d871ce6ca88232de2f2434d9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>