summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: data_smart: Don't use mutable objects as default argsRichard Purdie2015-01-291-1/+6
| | | | | | | | | | | | | These only have one instance created which means your subsequent datastores can contain echos of previous ones. Obviously this is not the behaviour we want/expect. It doesn't affect bitbake too badly as we only have one datastore, it does massively potentially break our selftests though. Thanks to Tim Amsell for pointing out the now obvious problem! (Bitbake rev: 9facf3604759b00e8fe99f929353d46f8b8ba5cb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: parse/ast: Fix issue if path contains '&'Pascal Bach2015-01-291-1/+1
| | | | | | | (Bitbake rev: 4fea138f7cef53626a40decb96207dbaf9284020) Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: update project build listingAlexandru DAMIAN2015-01-297-68/+193
| | | | | | | | | | | | | | | | | | | | | | | We update the build listings in the project mode to enable proper display and selection of build requests that do not have an actual build object because the bitbake process did not start. We add a page to display error details for build requests that did not start a build. Fixing errors and misspelling in build sections. Sorting by "timespent" is disabled for build-listing pages. [YOCTO #7165] [YOCTO #7156] [YOCTO #7196] [YOCTO #7188] (Bitbake rev: ee13bf45cecd6a0132d724b3206a6f4515669496) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toasterui: do not filter images by extensionAlexandru Damian2015-01-291-1/+1
| | | | | | | | | | | | | | | | | | ToasterUI filters build artifacts by extension in order to determine if a build artifact is an image or not. Using IMAGE_FSTYPES for this purpose is not correct as the varible value holding image extensions is just a coincidence. So we just look if the filename contains the "rootfs" magic string, which is a pretty good approximation. [YOCTO #7213] (Bitbake rev: b11e8bd626e0212ee72914529c3d92d1dd718674) Signed-off-by: Alexandru Damian <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: alignment fixBelen Barros Pena2015-01-291-4/+4
| | | | | | | | | | | Align horizontally the pagination and show rows controls at the bottom of the layer details page. (Bitbake rev: 8be4a8cf1673112e9e613e719fa6ed96dbca8976) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: remove recipe id links to the layer indexBelen Barros Pena2015-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | Toaster cannot use the recipe id to link to the layer index, because recipe ids can change. We need to search by the recipe name instead. This patch removes the recipe id link from the layer details page and replaces it with a search by the recipe name. It also makes sure links to the layer index open in a new tab/window. [YOCTO #7194] [YOCTO #7193] (Bitbake rev: 947ef663e452c15933218fd680875ade7cb46e9a) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: consistent capitals in buttonBelen Barros Pena2015-01-291-1/+1
| | | | | | | | | | Capitalise correctly the 'Build target' button label in the layer details page: it should match the table heading. (Bitbake rev: 4d52ceb7e66835a3088d83cd4caa002a3e7a1297) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: hide table controls when when less than 10 entriesBelen Barros Pena2015-01-291-0/+10
| | | | | | | | | | | | | The 'show rows' and pagination controls in the layer details page should only show when there are more than 10 entries in a table. [YOCTO #7217] (Bitbake rev: 5399738fb2e2956a7d4ce59699dc4b6f6c67bbb2) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: set column width in layer details pageBelen Barros Pena2015-01-291-2/+2
| | | | | | | | | | Set the width of the action columns to span2 to stop the buttons from wrapping as much as possible. (Bitbake rev: 4282a92fe3652c52448dba3d5f3fc4e1de28be63) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: add 'show all' link to no results pageBelen Barros Pena2015-01-292-4/+10
| | | | | | | | | | | | | | When you search for targets or machines in the layer details page and your search returns no results, you should see a 'show all' link that you can click to clear the search and display all table entries. [YOCTO #7218] (Bitbake rev: 70486fc36c5b6bd6b7b8e846e23ad4062d583877) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: give the add dependencies form some breathing spaceBelen Barros Pena2015-01-291-0/+1
| | | | | | | | | | In the editable version of the layer details page, the form to add dependencies needs some distance from the dependency list. (Bitbake rev: 2c576552118bcfe65d375ff809b3b4a4916da225) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: consistent add / remove layer notificationsBelen Barros Pena2015-01-292-5/+7
| | | | | | | | | | | | | | | | | | | | In my struggle to ensure consistency in the format and content of the notifications we show when you add and remove layers to a project, I've: * added the project name to the notifications in the layer details page * removed the 'Go to project configuration' link from the notifications in the layer details page This changes align the notifications we show in the layer details page with the ones we show in the 'all' pages. (Bitbake rev: 87deeb2016cbfdaff5531e1badb58761af6df848) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: remove redundant style declarationBelen Barros Pena2015-01-291-1/+0
| | | | | | | | | | The bottom margin for dd tags nested inside forms is set twice. Delete one of them. (Bitbake rev: 4fcea0aad1ac715d6eb104f60972007bc2289569) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: Generic message for the layer details empty statesBelen Barros Pena2015-01-291-6/+2
| | | | | | | | | | | | | | | | In the layer details page, change the message you see when the number of targets or machines provided by a layer is 0, either because that's what's reported by a layer index instance, or because Toaster does not have any information about the layer. The new message is more generic, in order to fit layers from all layer sources. (Bitbake rev: 48123b53d66de01ad6273140aa148276d63707ba) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: apply common styles to right hand column of detail pagesBelen Barros Pena2015-01-294-7/+6
| | | | | | | | | | | | | Layer, recipe and package details pages have a right column with additional information. This commit standardises the formatting of the content in that right column across all these pages by creating a new css class .item-info in default.css (Bitbake rev: aed92feac017c967834575344faa3bad7a905b18) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: make layouts consistentBelen Barros Pena2015-01-293-23/+10
| | | | | | | | | | | | | | | | | The layer details page should have the same layout as all other detail pages (recipes, packages). For this to happen, the basebuilddetailpage.html and baseprojectpage.html templates should use the same layout, and so should the layerdetails.html and recipe.html templates. This patch also capitalises the string 'All layers' in the breadcrumb of layerdetails.html as all other breadcrumb elements. (Bitbake rev: 49d56fcbbf6b7d0c0c589b93182e4c73071b3fcf) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Ensure taskdata default functions exist in base classRichard Purdie2015-01-231-6/+7
| | | | | | | | | | | | The get/set_taskdata functions are now part of the API of the class, ensure they exist in the base class definition so the noop handler works. [YOCTO #7233] (Bitbake rev: 9b5b1bd7d77e3f5886f6c557d3b750de1f6d6025) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Use expanded_data for ASSUME_PROVIDEDRichard Purdie2015-01-231-2/+2
| | | | | | | | | | | Users expect operators like _remove to work on this variable. We need to use expanded_data to ensure this happens correctly. [YOCTO #7135] (Bitbake rev: cc4c8478fc547ea0ebf827a8d319496b39f25684) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Rename event_data -> expanded_dataRichard Purdie2015-01-232-14/+15
| | | | | | | | | | event_data would be better named expanded_data, then we can widen its scope to other places in cooker where we need to access an expanded data store. We certainly don't want multiple expanded data stores. (Bitbake rev: 1a3c1c9203e1a1452314954f1cfd771e5c1ce89b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: server/process: Fix select callRichard Purdie2015-01-231-1/+1
| | | | | | | | | | | | | There was a report that bitbake -e | less would use 100% cpu when it shouldn't really. The issue appears to be a bogus file descriptor in the select call. We shouldn't be blocking if there is event data pending to a *reader* from server context. [YOCTO #7138] (Bitbake rev: 8f166e1a0f3574ae7d1e917a8bb403b87bad15bf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: enable re-ordering when columns are hiddenAlexandru DAMIAN2015-01-231-0/+10
| | | | | | | | | | | | | | This patch enables table re-ordering when a sorted-by column is hidden. This is default functionality in toaster table pages, but was not enabled for all columns in this situation. [YOCTO #7125] [YOCTO #7022] (Bitbake rev: c1b9c7a05c1c05fcd73d819e8b0142169106f0da) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: all projects column show/hideAlexandru DAMIAN2015-01-231-6/+6
| | | | | | | | | This patch fixes the show/hide in all projects page. (Bitbake rev: 1d07020049d3bd824f6d0280c1cc7effa3db339d) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: fix the second 'view all targets' linkBelen Barros Pena2015-01-231-1/+2
| | | | | | | | | | | | | The project page has 2 links to the all targets page. The one at the top of the page is working, but not the one further down. This patch sorts that out. [YOCTO #7147] (Bitbake rev: ad6a2d42b9ce7ce317184d978253e5506be7e47f) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: minor fixesAlexandru DAMIAN2015-01-231-1/+8
| | | | | | | | | | | | This is a minor fixes patch. - legacy sorting by "timespent" does not crash the builds pages - missing xhr_configvaredit view in observer mode is added (Bitbake rev: bd4ff7a15e74e1d4af8ea3dbaaed141678046a9b) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastegui: project page build selected targetsAlexandru DAMIAN2015-01-232-6/+25
| | | | | | | | | | | | Fixing the action on the "Build selected targets" button. Remove "build-button" duplicate id from the build page. [YOCTO #7047] (Bitbake rev: 8278d7b15b58484af93d952e594f29dabb9200a9) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: fix all targets page searchAlexandru DAMIAN2015-01-231-2/+5
| | | | | | | | | | | | | | | This fixes the display of layers in all-targets page search/filtering usage pattern by displaying layer-equivalence class. The significant impact is the correct display of the list size for search/filtering actions [YOCTO #7051] (Bitbake rev: 4957ec63a11d51dfac2252263e4d26c705eb31e9) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: fix all-targets redirectAlexandru DAMIAN2015-01-233-3/+3
| | | | | | | | | | | Fixes the all targets redirect to /api/1.0/targets. [YOCTO #7147] (Bitbake rev: f1cccafb4c7aa2c338e29ec5d2ea190dfeceb132) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: newproject default release selection fixAlexandru DAMIAN2015-01-231-13/+19
| | | | | | | | | | | | This patch fixes the default project release selection to obey the DEFAULT_RELEASE name set in ToasterSettings. [YOCTO #7035] (Bitbake rev: bcd7ba013b973d3b3ac1e0845acf60b80cb227c2) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: "Run again" button in build pagesAlexandru DAMIAN2015-01-232-3/+3
| | | | | | | | | | | This patch fixes the "Run again" button for the completed builds. [YOCTO #7173] (Bitbake rev: 37125f2b52492f8bee465611e60514b365541892) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: fix duplicate IDs all builds pageAlexandru DAMIAN2015-01-231-27/+10
| | | | | | | | | | | | This patch fixes the duplicate IDs found in the all builds page, originating in the "Project" column filter. Also fix misspell "Log1" instead of "Log". (Bitbake rev: bd681cb2ce349dd7de01c98d5089a368c4514c37) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toasterui: save event backlog to buildAlexandru DAMIAN2015-01-231-2/+9
| | | | | | | | | | | We add a call that saves any queued events to the build [YOCTO #7021] (Bitbake rev: 4f5b19d453da64749affc1c27ec51b013bedc71a) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: save cookie for orderby/page size settingsAlexandru DAMIAN2015-01-232-6/+11
| | | | | | | | | | | | We save the current settings as cookies on the server side for the layers, targets and machines pages under Project pages. [YOCTO #6961] (Bitbake rev: 58b35c055e37b5e1552d8ba3db2e05ea4ee85023) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: prserv/serv: Improve exit handlingRichard Purdie2015-01-231-5/+9
| | | | | | | | | | | | | | | | | | Currently, I'm not sure how the prserver managed to shut down cleanly. These issues may explain some of the hangs people have reported. This change: * Ensures the connection acceptance thread monitors self.quit * We wait for the thread to exit before exitting * We sync the database when the thread exits * We do what the comment mentions, timeout after 30s and sync the database if needed. Previously, there was no timeout (the 0.5 applies to sockets, not the Queue object) (Bitbake rev: 0926492295d485813d8a4f6b77c7b152e4c5b4c4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: project configuration variables pageDavid Reyna2015-01-213-26/+730
| | | | | | | | | | | | | | Implement the project configuration variables page. AlexD made whitespace changes and a minor fix. [YOCTO #6588] (Bitbake rev: 909fa19f20e909820aa484967b7fe2a34d89ab49) Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: project builds pageAlexandru DAMIAN2015-01-213-230/+160
| | | | | | | | | | | | This is a complete re-write of the "Project builds" page based on the "All builds" page in managed mode. [YOCTO #6589] (Bitbake rev: 0353d49ae934c4595408e1b7a1443769f095f2aa) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetcher: use os.path.splitext() instead of string.split()Ross Burton2015-01-211-3/+3
| | | | | | | (Bitbake rev: 1689edd35477a126bfbf4bd3257c4f1f9e16f20d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bb/fetch2/wget.py: latest_versionstring escape packagename when ↵Aníbal Limón2015-01-211-1/+1
| | | | | | | | | | | | | | | built regex When built package regex for use in searching upstream version in sites, the package name need to be escaped to avoid usage of special regex char. For example when search for gtk+, '+' need to be escaped. (Bitbake rev: 1aa1de4b0c5bd34466e04844bbc371933736be59) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker.py: trap the ENOSPC error and translate itRobert Yang2015-01-211-0/+5
| | | | | | | | | | Trap the ENOSPC error and translate it into a human readable error message, which is good for debugging. (Bitbake rev: 2b084dff6ff0d274fbbf7ab07022507f7249e427) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* 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-214-5/+26
| | | | | | | | | | | | | | | | 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: lib/fetch2: Tweak get_srcrev() function descriptionRichard Purdie2015-01-211-2/+4
| | | | | | | | Tweak the comments on get_srcrev() to better describe its function. (Bitbake rev: b4d40f1ac7b32990c456cce261f99a5a157b5ae5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toasterui: fix variable data errorAlexandru DAMIAN2015-01-161-1/+1
| | | | | | | | | | | | | A bug slipped in the toaster ui that prevented saving of build configuration despite the data being retrieved from the server. This patch fixes the shaming mistake. [YOCTO #7117] (Bitbake rev: 8118f465b9f87c66b2a741008f69198ac5fea901) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toastergui: all builds page lists failed build requestsAlexandru DAMIAN2015-01-164-199/+742
| | | | | | | | | | | | | | | | | This patch modifies the all builds page by splitting the page into two variants - the "interactive" (default) and "managed" mode versions. In the "managed" mode version, we display build requests instead of builds, including the failed build requests that have no build associated with them. [YOCTO #6671] (Bitbake rev: c5f5fb80308228585aa7ff9721352feb5ed9c961) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: layerdetails Remove compatibility settingMichael Wood2015-01-163-29/+3
| | | | | | | | | | Remove the layer compatibility configuration option from the layer details as this is not in the design. (Bitbake rev: c46492f5599da8af16af05ecc2d7aa7a8660416b) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toaster: Add layer details page featureMichael Wood2015-01-167-150/+1038
| | | | | | | | | | | | | | This commit adds the layer details page which shows the metadata for the layer such as layer description, machines associated with the layer as well as the targets provided. If the layer is an imported layer this page also allows you to update the layer's configuration. >From this page you can add/remove the layer from the current project (Bitbake rev: c1442bc68ad8ba20c37b1a7cde1400297f4be811) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ConfHandler: Clean up bogus importsRichard Purdie2015-01-161-6/+4
| | | | | | | | | | The import statements here are plain bizarre. Remove them, tweaking some of the function calls to match current practices. I can't find any reason these old imports are as they are. (Bitbake rev: 4c2f1fe51a13ddc97e518327714292af46b9e1ab) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ConfHandler: Rename oldfn to parentfn to be clearerRichard Purdie2015-01-161-5/+5
| | | | | | | | | | Looking at this function I had no idea what oldfn was, I doubt anyone else would either without looking up what the caller does. "parentfn" would seem a more appropriate name so rename it. (Bitbake rev: fc70ed596703a1aa954223b169d4ad51193a6ec1) 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-143-3/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>