Xen API (or xapi) is a management stack that configures and controls Xen-enabled hosts and resource pools, and coordinates resources within the pool. Xapi exposes the Xen API interface for many languages and is a component of the XenServer project. Xen API is written mostly in OCaml 4.07.
Xapi is the main component produced by the Linux Foundation's Xapi Project.
To build xen-api from source, we recommend using opam with the xs-opam repository (further explanation in its readme).
- 
Install opamandgitwith your package manager.
- 
Clone this repo and work from its root. git clone https://github.com/xapi-project/xen-api && cd xen-api 
- 
Figure out which version of ocaml-base-compiler to use. - 
Go to this xs-opam file, and look for OCAML_VERSION_FULL.
- 
Run that line, e.g.: export OCAML_VERSION_FULL="4.14.2" 
 
- 
- 
Setup opam with your environment (i.e. switch). opam init opam switch create xen-api ocaml-base-compiler.$OCAML_VERSION_FULL # This basically "jumps you into" the environment you just created: eval $(opam env --switch=xen-api --set-switch) 
- 
Get the Recommended Packages. # Add the xs-opam library as the main repo to check for versions at: opam repo add xs-opam https://github.com/xapi-project/xs-opam.git # Remove the default, because how it handles version conflicts is different: opam repo remove default # (NOT needed with opam>=2.1.0) Have opam now figure out what versions of each package to use: opam pin --yes add . --no-action 
- 
Install all the Packages. opam install xs-toolstack # Update the current switch. (You're already on the correct one, just refresh it). eval $(opam env) 
- 
Build xen-api../configure make make test
The binaries should now be in ./_build/install/default/bin!
If you are working from within a clone of a fork of this repository, you will need tags from the upstream repository in order to produce a build with the correct versioning string.
To fetch these tags, you must ensure that this repository is known to git (as a
remote, often called upstream) and then you can fetch the tags as follows:
git remote add upstream https://github.com/xapi-project/xen-api
git fetch upstream --tagsYou can check if this has been successful by invoking git describe.
You can then push these tags to your remote repository to ensure they are cloned in future:
git push origin --tagsTo contribute changes to xen-api, please fork the repository on GitHub, and then submit a pull request.
It is required to add a Signed-off-by: as a
Developers Certificate of Origin.
It certifies the patch's origin and is licensed under an
appropriate open-source licence to include it in Xapi:
https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---signoff
For more detailed guidelines on what makes a good contribution, see CONTRIBUTING.
Discussions can be started at https://github.com/xapi-project/xen-api/discussions
Issues can be raised at https://github.com/xapi-project/xen-api/issues
This software is licensed under the GNU LGPLv2 license. Please see the LICENSE file for more information.