summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-08-31tinfoil: add a parse_recipe_file functionpaule/tinfoil-fixes-bbPaul Eggleton
Parsing a recipe is such a common task for tinfoil-using scripts, and is a little awkward to do properly, so add an API function to do it. This should also isolate scripts a little from future changes to the internal code. The first user of this will be the OpenEmbedded layer index update script. Part of the fix for [YOCTO #10192]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2016-08-31cache: allow parsing a recipe with a custom config datastorePaul Eggleton
To accommodate the OpenEmbedded layer index recipe parsing, we have to have the ability to pass in a custom config datastore since it constructs a synthetic one. To make this possible after the multi-config changes, rename the internal _load_bbfile() function to parse_recipe(), make it a function at the module level (since it doesn't actually need to access any members of the class or instance) and move setting __BBMULTICONFIG inside it since other code will expect that to be set. Part of the fix for [YOCTO #10192]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2016-08-30Ensure tinfoil is shut down correctly in utilities that use itPaul Eggleton
We should always shut down tinfoil when we're finished with it, either by explicitly calling the shutdown() method or by using it as a context manager ("with ..."). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2016-08-30tinfoil: add context manager functionsPaul Eggleton
Since calling the shutdown() function is highly recommended, make tinfoil objects a little easier to deal with by adding context manager support - so you can do the following: with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(True) ... Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2016-08-24fetch2: clean up remaining cwd saves/changesMatt Madison
Now that the fetchers all preserve the current working directory, the cwd changes in the try_mirror_url, download, and checkstatus methods are no longer needed. Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-20siggen: Fix file variable typo in compare_sigfilesJonathan Liu
Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19fetch2: preserve current working directoryMatt Madison
Fix the methods in all fetchers so they don't change the current working directory of the calling process, which could lead to "changed cwd" warnings from bitbake. Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19dump_cache.py: use python3 as interpreterRobert Yang
Fixed: File "bitbake/contrib/dump_cache.py", line 39 print("Error, need one argument!", file=sys.stderr) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19toasterui, knotty: don't print taskid followed by taskstring which are now ↵Martin Jansa
in most cases identical * unify the format how the task is described * don't show taskid followed by taskstring as the taskstring is different only for setscene tasks (by _setscene suffix) * the duplicated output was introduced by: 2c88afb taskdata/runqueue: Rewrite without use of ID indirection as reported and confirmed as a bug here: http://lists.openembedded.org/pipermail/openembedded-core/2016-June/123148.html * show: NOTE: Running task 541 of 548 (/OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_package) instead of much longer: NOTE: Running task 541 of 548 (ID: /OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_package, /OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_package) and similarly for failed tasks: ERROR: Task (virtual:native:/OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_install) failed with exit code '1' instead of much longer: ERROR: Task virtual:native:/OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_install (virtual:native:/OE/build/oe-core/openembedded-core/meta/recipes-core/zlib/zlib_1.2.8.bb:do_install) failed with exit code '1' Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19tests: add unit tests for the usehead url parameterMarkus Lehtonen
[YOCTO #9351] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19git: Allow local repos to use HEADRichard Purdie
Introduce a new 'usehead' url parameter for git repositories. Specifying usehead=1 causes bitbake to use whatever commit the repository HEAD is pointing to. Usage of usehead=1 is only allowed for local git repositories, i.e. it must always be accompanied with protocol=file url parameter. [YOCTO #9351] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19bitbake-selftest: enable bitbake logging to stdoutMarkus Lehtonen
Now you get the bb logger output for failed tests. This helps debugging problems. Also, all stdout/stderr data for successful tests is silenced which makes for less cluttered console output. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19bitbake-selftest: introduce BB_TMPDIR_NOCLEANMarkus Lehtonen
Set this env variable to 'yes' to preserve temporary directories used by the fetcher tests. Useful for debugging tests. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19bitbake-selftest: add help text for env variable(s)Markus Lehtonen
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-19bitbake-selftest: utilize unittest.main betterMarkus Lehtonen
This simplifies the script, and, gives new features. It is now possible to run single test functions, for example. This is nice when writing new test cases. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-18bitbake: Update version to 1.31.1Richard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake: Initial multi-config supportRichard Purdie
This patch adds the notion of supporting multiple configurations within a single build. To enable it, set a line in local.conf like: BBMULTICONFIG = "configA configB configC" This would tell bitbake that before it parses the base configuration, it should load conf/configA.conf and so on for each different configuration. These would contain lines like: MACHINE = "A" or other variables which can be set which can be built in the same build directory (or change TMPDIR not to conflict). One downside I've already discovered is that if we want to inherit this file right at the start of parsing, the only place you can put the configurations is in "cwd", since BBPATH isn't constructed until the layers are parsed and therefore using it as a preconf file isn't possible unless its located there. Execution of these targets takes the form "bitbake multiconfig:configA:core-image-minimal core-image-sato" so similar to our virtclass approach for native/nativesdk/multilib using BBCLASSEXTEND. Implementation wise, the implication is that instead of tasks being uniquely referenced with "recipename/fn:task" it now needs to be "configuration:recipename:task". We already started using "virtual" filenames for recipes when we implemented BBCLASSEXTEND and this patch adds a new prefix to these, "multiconfig:<configname>:" and hence avoid changes to a large part of the codebase thanks to this. databuilder has an internal array of data stores and uses the right one depending on the supplied virtual filename. That trick allows us to use the existing parsing code including the multithreading mostly unchanged as well as most of the cache code. For recipecache, we end up with a dict of these accessed by multiconfig (mc). taskdata and runqueue can only cope with one recipecache so for taskdata, we pass in each recipecache and have it compute the result and end up with an array of taskdatas. We can only have one runqueue so there extensive changes there. This initial implementation has some drawbacks: a) There are no inter-multi-configuration dependencies as yet b) There are no sstate optimisations. This means if the build uses the same object twice in say two different TMPDIRs, it will either load from an existing sstate cache at the start or build it twice. We can then in due course look at ways in which it would only build it once and then reuse it. This will likely need significant changes to the way sstate currently works to make that possible. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17siggen: properly close files rather than opening them inlinePaul Eggleton
If you don't do this, with Python 3 you get a warning on exit under some circumstances. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17ast/ConfHandler: Add a syntax to clear variableJérémy Rosen
unset VAR will clear variable VAR unset VAR[flag] will clear flag "flag" from var VAR Signed-off-by: Jérémy Rosen <jeremy.rosen@openwide.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cache: Build datastores from databuilder objectRichard Purdie
Rather than passing in a datastore to build on top of, use the data builder object in the cache and base the parsed recipe from this. This turns things into proper objects building from one another rather than messy mixes of static and class functions. This sets things up so we can support parsing and building multiple configurations. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cache: Split Cache() into a NoCache() parent objectRichard Purdie
There are some cases we want to parse recipes without any cache setup or involvement. Split out the standalone functions into a NoCache variant which the Cache is based upon, setting the scene for further cleanup and restructuring. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cache/cooker: Pass databuilder into bb.cache.Cache()Richard Purdie
Rather that the current mix of static and class methods, refactor so that the cache has the databuilder object internally. This becomes useful for the following patches for multi config support. It effectively completes some of the object oriented work we've been working towards in the bitbake core for a while. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cache: Make virtualfn2realfn/realfn2virtual standalone functionsRichard Purdie
Needing to access these static methods through a class doesn't make sense. Move these to become module level standalone functions. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cache/ast: Move __VARIANTS handling to parse cache functionRichard Purdie
Simple refactoring to allow for multiconfig support. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17runqueue: Abstract worker functionality to an object/arrayRichard Purdie
With the introduction of multi-config and the possibility of distributed builds we need arrays of workers rather than the existing two. This refactors the code to have a dict() of workers and a dict of fakeworkers, represented by objects. The code can iterate over these. This is separated out from the multi-config changes since its separable and clearer this way. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17cookerdata: Simplify prefiles/postfilesRichard Purdie
The current codepaths are rather confusing. Stop passing these as parameters and use the ones from when the object is created. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake-user-manual: Re-write "Dependencies Internal to the .bb File"Scott Rifenbark
Fixes [YOCTO #10117] Applied a re-write to better clarify the behavior of dependencies. Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake-user-manual: Added setting variable for a single taskScott Rifenbark
Fixes [YOCTO #10095] I added a third case to the "Conditional Metadata" section to describe setting a variable for a single task. Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake-user-manual: Added more detail to anonymous Python functions.Scott Rifenbark
Fixes [YOCTO #10093] Provided much more detail on how these functions work. Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake-user-manual: Formatted all "flags" to be consistentScott Rifenbark
Fixes [YOCTO #10071] The use of any flags throughout the manual was very inconsistent. I changed all references to any named flag in the text to be formatted as code and to be enclosed in square brackets. Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bitbake-user-manual: Added detail to [dirs] and [cleardirs] flagsScott Rifenbark
Fixes [YOCTO #10071] Provided more clear descriptions for these two flags. Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17bb/utils.py: export_proxies add GIT_PROXY_COMMANDFrancisco Pedraza
This was added to enable the usage of git through proxies. Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17knotty: don't show number of running tasks in quiet modePaul Eggleton
There's not a whole lot of point showing how many tasks are running when we're in quiet mode, it just looks a bit strange particularly when it's not running any tasks. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17knotty: fix task progress bar not starting at 0%Paul Eggleton
If we have the task number here we need to subtract 1 to get the number of tasks completed. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-17runqueue: fix two minor issues with the initialising tasks progressPaul Eggleton
A couple of fixes for the "Initialising tasks" progress bar behaviour: * Properly finish the progress bar when using bitbake -S * Finish the progress bar before calling BB_HASHCHECK_FUNCTION (so that in OE when that shows its own "Checking sstate mirror object availability" progress bar it gets shown on the next line as it should). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-16lib/bb/tests/fetch: remove URL that doesn't exist anymoreRoss Burton
The CUPS ipptool URL we were checking now redirects to github where the tarball isn't present, so remove it from the test suite. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-16toaster: update web urls for openembedded-core's special caseDavid Reyna
The layer index update command has a special case for the updating 'openembedded-core' layer, and it was missing reading and updating the git web URL fields. [YOCTO #8037] Signed-off-by: David Reyna <david.reyna@windriver.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-11toaster: buildinfohelper Add handling local layers (i.e. non-git) layersMichael Wood
Adds handling of the non-git layers to create and update the corresponding layer objects in Toaster. Signed-off-by: Michael Wood <michael.g.wood@intel.com>
2016-08-11toaster: bldcontrol model BRLayer Add corresponding local_source_dirMichael Wood
Sync the BRLayer object with the new field added to the Layer object. The BRLayer (BuildRequest Layers) are snapshots of the layers in the project at build time and therefore need to mirror the required fields of the layer object. Signed-off-by: Michael Wood <michael.g.wood@intel.com>
2016-08-11toaster: adapt xhr_import_layer test locally imported layerSujith H
Update xhr_import_layer test to use locally imported layer in local_source_dir. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: update build configuration pageSujith H
Update layer branch and layer commit section in the build configuration page for locally imported layers. For locally imported layers this secion goes as "Not applicable". [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: update recipe details pageSujith H
Update Layer branch and Layer commit in recipe details page. For local layer imported from toaster these fields are not applicable. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: update package detail pageSujith H
Update package details pages layer branch and layer commit section for locally imported layers. We add Not applicable to them along with a helper text, which helps user understand why its not applicable to those layers. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: updte build tables for locally imported layersSujith H
Update the build tables section for locally imported layers. Here we do not provide informations such as branch or commit. Because those are locally imported layer(s). [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: update the tables informationSujith H
Update table informations for pages: 1) Compatible layers 2) Compatible image recipes Added Not Applicable to the fields of locally imported layers because they are not git version. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: collect details for local dir imported from uiSujith H
Collect the dir path imported from UI and make sure that its getting added to bblayers.conf. This patch exactly does the same job. Any layer which is imported locally need not be cloned again to _toaster_clones dir. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: add local_source_dir field to modelSujith H
Add a new field local_source_dir to model. This will clearly differentiate us from the vcs_url which is for git path. Adding migration file 0010_layer_local_source_dir_path.py along with this patch. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: add local directory to the dbSujith H
Adding local directory to the database. The local directory is added to vcs_url, field of db. [YOCO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: improve the display when local dir is addedSujith H
The helper text gets displayed accordingly when mouse is hovered above the layers. If its a local directory then no more branch is mentioned. Only directory path is mentioned. [YOCTO #9911] Signed-off-by: Sujith H <sujith.h@gmail.com>
2016-08-11toaster: update css file for layer importBelen Barros Pena
Update the css file for the layer import. This changes will improve the UI for the task. [YOCO #9911] Signed-off-by: Belen Barros Pena <belen.barros.pena@linux.intel.com>