xpds13: xenserver-core: what it is, how it is built and how to get involved - euan harris, citrix
DESCRIPTION
XenServer is open source and freely available, but it is packaged as an appliance image which must be installed on dedicated hardware. xenserver-core repackages the core components of XenServer so they can easily be built and installed on a standard Linux distribution. Its main goals are: * to make it easy to download, modify and build XenServer components, or just learn how they work; * to help upstream distributions to include up-to-date XenServer packages; * to provide an environment for experimentation. This talk will explain the motivations behind xenserver-core and how it relates to the open-sourcing of XenServer. For developers, it will cover how to get the code, how to build it and how to contribute back to the project. For packagers, it will explain the project's development and release processes and what an upstream maintainer can expect from it.TRANSCRIPT
Citrix
xenserver-core What it is, how it is built and how to get involved
Euan Harris
What is xenserver-core?
DOM0
QEMU
Drivers
XAPI
Third party
components
HA
Storage
Manager
xenserver-core
(Xapi and friends)
Virtualization
base packages
(Xen, Qemu, libvirt)
Base Linux distribution
xenserver-core
(Xapi and friends)
“Xen4CentOS”
extra packages
CentOS 6.4
xenserver-core
general model
xenserver-core
on CentOS
How can I get it?
yum install xenserver-core
apt-get install xenserver-core
Why?
How can I build it?
git clone xenserver-core
$ git clone https://github.com/ \
xapi-project/xenserver-core.git
$ cd xenserver-core
$ ./configure.sh
$ ./makemake.py > Makefile
$ make
...
[CURL] SOURCES/libvhd-0.9.1.tar.gz
[RPMBUILD] SRPMS/ocaml-libvhd-0.9.1-1.src.rpm
[MOCK] RPMS/x86_64/ocaml-libvhd-0.9.1-1.x86_64.rpm
[CREATEREPO] RPMS/x86_64/ocaml-libvhd-0.9.1-1.x86_64.rpm
...
foo.spec
foo-1.patch
rpmbuild foo.srpm foo.tgz
foo.rpm foo.rpm
mock foo.rpm foo.srpm
Name: ocaml-qmp
Version: 0.9.1
Release: 1
...
BuildRequires: ocaml ocaml-findlib ocaml-obuild
ocaml-yojson-devel cmdliner-devel ocaml-ounit-devel
./SRPMS/ocaml-qmp-0.9.1-1.src.rpm: ./SPECS/ocaml-qmp.spec
./SOURCES/ocaml-qmp-0.9.1.tar.gz
./SOURCES/ocaml-qmp-0.9.1.tar.gz: ./SPECS/ocaml-qmp.spec
@curl -o $@ https://github.com/xapi-project/ocaml-
qmp/archive/0.9.1/ocaml-qmp-0.9.1.tar.gz
./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm: ./SRPMS/ocaml-
qmp-0.9.1-1.src.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm:
./SRPMS/ocaml-qmp-0.9.1-1.src.rpm
./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-obuild-0.0.2-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-yojson-devel-1.1.6-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/cmdliner-devel-0.9.3-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-ounit-devel-1.1.2-3.el6.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-obuild-0.0.2-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-yojson-devel-1.1.6-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/cmdliner-devel-0.9.3-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm:
./RPMS/x86_64/ocaml-ounit-devel-1.1.2-3.el6.x86_64.rpm
ocaml-qmp: ./RPMS/x86_64/ocaml-qmp-0.9.1-1.x86_64.rpm
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
./RPMS/x86_64/xenopsd-0.9.27-1.x86_64.rpm:
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
./RPMS/x86_64/xenopsd-libvirt-0.9.27-1.x86_64.rpm:
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
./RPMS/x86_64/xenopsd-xc-0.9.27-1.x86_64.rpm:
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
./RPMS/x86_64/xenopsd-simulator-0.9.27-1.x86_64.rpm:
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
./RPMS/x86_64/xenopsd-xenlight-0.9.27-1.x86_64.rpm:
./RPMS/x86_64/ocaml-qmp-devel-0.9.1-1.x86_64.rpm
makemake.py
Debian (experimental!)
Why?
foo.spec
foo-1.patch
makedeb.py foo.tgz foo.dsc
(and some tarballs)
foo.rpm foo.rpm
cowbuilder foo.deb foo.dsc
How can I get involved?
What’s next?