meta-webserver
==============

This layer provides support for building web servers, web-based
applications and related software.



Dependencies
------------

This layer depends on:

URI: git://github.com/openembedded/oe-core.git
subdirectory: meta
branch: thud
revision: HEAD

For some recipes, the meta-oe layer is required:

URI: git://github.com/openembedded/meta-oe.git
subdirectory: meta-oe
branch: thud
revision: HEAD



Layout
------

recipes-httpd/      Web servers
recipes-php/        PHP applications
recipes-support/    Miscellaneous support recipes
recipes-webadmin/   Standalone web administration interfaces


Notes
-----

* This layer used to provide a modphp recipe that built mod_php, but
  this is now built as part of the php recipe in meta-oe. However, since
  apache2 is required to build mod_php, and apache2 recipe is in this
  layer and recipes in meta-oe can't depend on it, mod_php is not built
  by default. If you do wish to use mod_php, you need to add "apache2"
  to the PACKAGECONFIG value for the php recipe in order to enable it.
  See here for info on how to do that:

  http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGECONFIG


Maintenance
-----------

Send patches / pull requests to openembedded-devel@lists.openembedded.org
with '[meta-webserver][thud]' in the subject.

Thud Maintainer: Armin Kuster <akuster808@gmail.com>


License
-------

All metadata is MIT licensed unless otherwise stated. Source code included
in tree for individual recipes is under the LICENSE stated in each recipe
(.bb file) unless otherwise stated.

This README document is Copyright (C) 2012 Intel Corporation.

