Commit Graph

66 Commits

Author SHA1 Message Date
Paul Eggleton
3cc0b78935 update.py: create dependency/maintainer records when creating LayerBranch
If we're creating a LayerBranch record, it's helpful to copy the
maintainer and dependency records in from master as they're usually
going to be the same; if they're not the user can always change them
afterwards.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
0a1215e59e Move repo subdirectory to layerbranch
So it turns out that one or two layers have changed in structure between
branches, so we need to be able to specify this on a per-branch basis.
Good times...

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-20 15:41:58 +00:00
Paul Eggleton
94ff843006 update.py: ensure script can be run from any directory
Don't assume the current directory contains our conf/local.conf,
explicitly use the directory above where the script is located.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 18:08:05 +00:00
Paul Eggleton
df76a64d95 update.py: avoid writing bitbake.lock/cache to current directory
Create a temporary directory for these files.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-06 18:07:56 +00:00
Paul Eggleton
354e368aa2 Add support for handling multiple branches
Change the data structure to support multiple branches. At the top level
there is a set list of Branch objects, and then a LayerBranch object
between each layer and the maintainers, dependencies, recipes and
machines, so that the set of each can be different per branch. The
branch is a session option, and can be selected via a drop-down that is
shown for all pages.

Additionally, with this change we avoid the need to run the update
script within a build environment set up with oe-init-build-env - since
we need a specific version of BitBake per branch we now use our own copy
of BitBake which is fetched by the script itself. The update script will
need to be called multiple times however - once per branch.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-03-05 20:37:48 +00:00
Paul Eggleton
d56d280be7 Use top commit for subdirectory instead of repository in update script
If there is more than one layer in a repository, we want the latest
commit in the subdirectory not the entire repository (since we use it
to determine the last commit date which should show how "fresh" the
layer is).

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:26:00 +00:00
Paul Eggleton
e0f8a05423 Handle updating of inc files/classes within same layer
If we aren't doing a full refresh, when changes to an included/required
file or an inherited class occur we need to update all of the files that
depend on them. BitBake records these dependencies, so read them and
record them against each recipe.

At the moment this only handles dependencies within the same layer; that
is probably sufficient to handle most changes for the purposes of
extracting the data this application cares about. A future improved
solution will probably involve making use of BitBake's cache rather than
and parsing all layers and their dependencies rather than individual
recipes.

This change also adds -x/--nofetch and -n/--dry-run options for
debugging as well as some further debug messages.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:05:43 +00:00
Paul Eggleton
b47400c38d Don't stop parsing layer on fatal error in update script
"Fatal" errors during parsing a single recipe (such as finding legacy
staging) shouldn't stop us from parsing the rest of the layer. To do
this we need to catch BaseException instead of Exception as fatal errors
end up calling sys.exit.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-26 11:04:43 +00:00
Paul Eggleton
b3003840e6 Fix update script to handle layers which include/inherit files from other layers
Parse layer.conf files so that BBPATH is set correctly as well as any
other custom variables. This required the repository fetching to be
split out of the update process and done first so that we're sure we
have the data for the other layers.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-25 16:14:50 +00:00
Paul Eggleton
e4eb8213cf Collect machine information from layers
Look for conf/machine/*.conf and add a record for each file found. These
are displayed in the layer detail page if any are present.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 23:14:53 +00:00
Paul Eggleton
3b5c7ad825 Add ability to update specific layers by name
Add a -l / --layers option to the update script.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 21:22:49 +00:00
Paul Eggleton
f3174e16f6 Fix update script to handle includes from other directories
Set BBPATH so that files from the layer can be found when recipes use
include/require pointing to files with a specific path, or use
inherit to inherit a class in the layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 21:10:37 +00:00
Paul Eggleton
6c12135117 Don't fail with an error due to unset LICENSE
meta-ti has a recipe in it that causes parsing to fail with a fatal
error due to LICENSE not being set; for the purposes of the layer index
just set a default value for LICENSE so that this doesn't break parsing.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-24 20:50:52 +00:00
Paul Eggleton
df6a33967e Clear default value of DESCRIPTION before parsing recipes
By default, if DESCRIPTION is not set it takes the value of SUMMARY.
However, within this tool it is useful for us to be able to tell when
DESCRIPTION has not been set so we want it to be blank if that is the
case.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 16:29:01 +00:00
Paul Eggleton
873093d2e4 Clear default value of HOMEPAGE before parsing recipes
The default value of HOMEPAGE ('unknown', set from bitbake.conf) is not
particularly helpful - we want it to be blank if it's not set, so just
set it to blank before parsing each recipe.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-18 16:23:37 +00:00
Paul Eggleton
2eb5f38b21 Initial commit of layerindex-web
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-13 12:09:57 +00:00