Bug 4142

Summary: Avoid cache reload for incremental development using a backgrounded bitbake server
Product: [Build System, Metadata & Runtime] BitBake Reporter: Jason Wessel <jason.wessel>
Component: bitbakeAssignee: Richard Purdie <richard.purdie>
Status: VERIFIED FIXED QA Contact:
Severity: enhancement    
Priority: Medium+ CC: corneliux.stoicescu, jessica.zhang, poky.bs.watcher, poky.watcher
Version: unspecified   
Target Milestone: 1.5 M4   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Done (doc changes complete)
Bug Depends on: 3812    
Bug Blocks: 4689    

Description Jason Wessel 2013-03-28 16:17:34 UTC
Long ago Richard Purdie surmised it would be possible to avoid the penalty of loading the bitbake cache by simply not exiting the main bitbake server context and instead using a lightweight communication mechasim to instruct the bitbake server to execute additional opperations.

This would greatly speed up incremental tasks such as launching the dev shell or a re-compile operation on a single package when using bitbake for incremental development as opposed to its more typical use case of batching builds/task to completion.

This probably invovles the defect 4141 in that the the bitbake startup will have to change in order to accomodate automatically forking a bitbake server into the background to handle requests as well as sending the requests to the bitbake server.
Comment 1 Richard Purdie 2013-06-17 16:12:14 UTC
As of the commits today, http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=baff2630b3c883c37bcc33d984453e14a0d4a206 it is possible to setup a bitbake server and use the BBSERVER variable to connect to it.

This is still experimental and not the default mode of operation but we're heading in the right direction.
Comment 2 Richard Purdie 2013-09-05 15:25:09 UTC
This is now possible and illustrated by the new env init script  added in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=5f2170bd4a9503da9ec01de3823b257b78d82b5c
Comment 3 Stoicescu Cornel 2013-09-24 11:57:26 UTC
The server works as intended, there is very little cache loading time when switching from qemux86-64 to qemux86 in local.conf and bitbaking a recipe like 'man'

Test case created: https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=810

I would like to mention that there are issues when switching from the experimental method to the old stable one during the same shell session(something is left behind by the sourced environment script that is not erased by 'bitbake -m'). 

Also:

I see a doc change flag on this. Has this been addressed?

Waiting for an answer before setting this to VERIFIED.
Comment 4 Richard Purdie 2013-09-30 08:35:07 UTC
I believe Scott did add documentation for this. Re: the unsetting the BBSERVER variable, we should open up a separate bug to track that specific issue.
Comment 5 Stoicescu Cornel 2013-09-30 12:18:09 UTC
Setting to Verified as per above comments.