layerindex-web/README
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

3.6 KiB

OE Layer Index web interface

This is a small Django-based web application that provides a way to manage an index of OpenEmbedded metadata layers for use on top of OE-Core.

Setup

In order to make use of this application you will need:

  • A web server set up to host Django applications
  • A database supported by Django (SQLite, MySQL, etc.). Django takes care of creating the database itself, you just need to ensure that the database server (if not using SQLite) is configured and running.
  • On the machine that will run the backend update script (which does not have to be the same machine as the web server, however it does still have to have Django installed, have the same or similar configuration in settings.py and have access to the database used by the web application):
    • Python 2.6 or Python 2.7
    • GitPython (python-git) version 0.3.1 or later
  • django-registration
  • django-reversion
  • django-reversion-compare
  • django-simple-captcha

Setup instructions:

  1. Edit settings.py to specify a database, EMAIL_HOST, SECRET_KEY and other settings specific to your installation. Ensure you set LAYER_FETCH_DIR to a location with sufficient space for fetching layer repositories.

  2. Run the following command within the layerindex-web directory to initialise the database:

    python manage.py syncdb

    You should answer "yes" when asked to create an admin account.

  3. You can test the web application locally by setting DEBUG = True in settings.py and running the following:

    python manage.py runserver

    Then visit http://127.0.0.1:8000/layerindex/ with your browser. As with all Django applications there is an admin interface available at http://127.0.0.1:8000/admin/ also.

    NOTE: This local server should only be used for testing - for production you need to use a proper web server and have DEBUG set to False.

  4. You'll need to add at least the openembedded-core layer to the database (or some equivalent for use in basic BitBake configuration; if it's not called "openembedded-core" then you'll need to set CORE_LAYER_NAME in settings.py to match.) You can use the "Submit Layer" feature within the interface itself (easiest) or the admin interface to do this.

  5. You may wish to customise layerindex/about.html to suit your installation.

Usage

On a regular basis you need to run the update script:

path/to/layerindex/update.py

This will fetch all of the layer repositories, analyse their contents and update the database with the results. Note that if you set up more than just the master branch in the database, you will need to run the script once for each branch using -b (or --branch) to specify the branch name. Run the script with --help for further information on available options.

Maintenance

The code for this application is maintained by the Yocto Project.

The latest version of the code can always be found here:

http://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/

Contributions are welcome. Please send patches / pull requests to yocto@yoctoproject.org with '[layerindex-web]' in the subject.

License

This application is based upon the Django project template, whose files are covered by the BSD license and are copyright (c) Django Software Foundation and individual contributors.

Bundled Twitter Bootstrap is redistributed under the Apache License 2.0.

Bundled jQuery is redistributed under the MIT license.

Bundled uitablefilter.js is redistributed under the MIT license.

All other content is copyright (C) 2013 Intel Corporation and licensed under the MIT license (unless otherwise noted) - see COPYING.MIT for details.