Xen
---

For any issues with the Xen recipes please make sure you CC:
 christopher.w.clark@gmail.com
 cardoe@gentoo.org

configuring the hypervisor
--------------------------

Since 4.7.0 Xen supports using Kconfig to configure the hypervisor. Similarly
to how the recipe for busybox works, you can provide a .config as a defconfig
to override the default configuration of the hypervisor. The easiest way
for you to take advantage of this is to create a .config for Xen and then
copy it to your Yocto layer as 'defconfig' inside of
'recipes-extended/xen/files/' and then create a bbappend adding
'file://defconfig' to your SRC_URI.

To generate your own .config file for Xen, you can use the interactive
menuconfig via bitbake:

    bitbake xen -c menuconfig

Select the config settings that you want and Save the file. If you save it to
the default ".config" file when prompted by menuconfig, you can find it in the
'xen' subdirectory of the build tree.

Configuration fragments are also supported. To use them you need to list the
.cfg files in the SRC_URI.

security patches
----------------

The base recipe does not include security fixes that the Xen community releases
as XSAs (http://xenbits.xen.org/xsa/). The easiest way to include those is to
drop patches in 'recipes-extened/xen/files' and create a bbappend adding those
patches to SRC_URI and they will be applied. Alternatively, you can override
the SRC_URI to a git repo you provide that contains the patches.

recipe maintenance
------------------

# Xen version update

The following rules shall be followed to define which versions of Xen have
recipes in meta-virtualization:

- Before a Yocto release meta-virtualization shall have recipes for:
    - the latest stable major version of Xen, and

    - the current version of the Xen master branch (known as the git recipes)

    - In addition, there may also be recipes included for the previous stable
      major version of Xen, in the case where the latest stable major version
      is new and the prior stable major version of Xen is to be the preferred
      version for the Yocto release

- On Yocto LTS and the latest stable Yocto release branch, the preferred Xen
  major version that is present when the Yocto release is issued must stay
  supported and the recipes shall be regularly updated to follow updates
  available in the Xen stable branch for that Xen major release.

- On Yocto LTS and the latest stable Yocto release branch, the recipes for the
  latest Xen major version shall also be regularly updated to follow updates
  available in the Xen stable branch for that Xen major release.

- On the master / in-development Yocto branch, new Xen recipes shall be added
  when there is a new Xen major release.

    - depending on the timing of the next Yocto release, the new recipes may
      be preferred, or the prior major version recipes may remain preferred
      until after the Yocto release

    - the recipes for the previous Xen stable major version shall be removed
      from the branch when it is no longer the preferred Xen version

- On Yocto LTS and the latest stable Yocto release branch, new Xen recipes
  shall be added when there is a new Xen major release.

    - The preferred version of the Xen recipes shall always stay at the same
      Xen major version once a Yocto release has been issued, and shall receive
      regular updates to track the stable Xen branch of that Xen release.

    - When new Xen recipes are added to a Yocto branch for a new Xen major
      version, then any older Xen recipes present, except for the original
      preferred version recipes, shall be marked as not updated anymore by
      adding a comment inside the recipes. The older recipes will not receive
      any build tests or be updated to follow the Xen branch.
