meta-virtualization/recipes-extended/xen/xen.inc
Mihai Prica d697439211 xen: Added fix to work on all architectures
Signed-off-by: Mihai Prica <mihai.prica@intel.com>
Signed-off-by: Raymond Danks <ray.danks@se-eng.com>
2012-11-26 16:21:16 -07:00

307 lines
9.5 KiB
PHP

DESCRIPTION = "Xen is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently."
HOMEPAGE = "http://xen.org"
LICENSE = "GPLv2"
SECTION = "console/tools"
PR = "r0"
# Disable xend and python support
XEN_DISABLE_XEND = "1"
DEPENDS = "util-linux util-linux-native file-native zlib ncurses openssl bison-native flex-native gettext dev86-native iasl-native pciutils virtual/libgl virtual/libsdl bridge-utils iproute2 procps"
# RDEPENDS_xen = "libgcc pciutils bridge-utils iproute2 util-linux udev procps bash"
RDEPENDS_xen-minimal = "libgcc xen-keymaps-base xen-xenstore xen-xenconsole xen-xenlight xen-hvmloader xen-qemu-dm"
RDEPENDS_xen = "libgcc xen-keymaps-base xen-xenstore xen-xenconsole xen-xenlight xen-hvmloader xen-qemu-dm xen-keymaps"
RDEPENDS_xen-networking = "bridge-utils"
RDEPENDS_xen-domains = "bash procps coreutils"
RDEPENDS_xen-commons = "bash procps coreutils"
RDEPENDS_xen-watchdog = "bash procps coreutils"
COMPATIBLE_HOST = '(x86_64.*|i.86.*).*-linux'
ALLOW_EMPTY_${PN} = "1"
PACKAGES = "\
${PN}-boot ${PN}-watchdog ${PN}-examples ${PN}-debugging ${PN}-tools ${PN}-pm ${PN}-domains ${PN}-commons \
${PN}-bios-ppc ${PN}-bios-sparc ${PN}-networking \
${PN}-doc ${PN}-dbg ${PN}-staticdev ${PN}-minimal ${PN}-keymaps-base ${PN}-keymaps \
${PN}-xenstore ${PN}-xenconsole ${PN}-xenlight ${PN}-hvmloader ${PN}-qemu-dm \
libxenlight libfsimage libflask libxenguest libblktap libblktapctl libvhd libxlutil libxenstore libxenctrl \
libxenlight-dev libfsimage-dev libflask-dev libxenguest-dev libblktap-dev libblktapctl-dev libvhd-dev libxlutil-dev libxenstore-dev libxenctrl-dev \
${PN}-dev ${PN} \
"
FILES_${PN} += "\
${libdir}/xen \
${libdir}/fs \
/usr/lib64 \
"
FILES_${PN}-minimal = "\
${sysconfdir}/init.d/xenminiinit \
"
FILES_${PN}-qemu-dm = "\
${libdir}/xen/bin/qemu-dm \
/var/lib/xen \
"
FILES_${PN}-keymaps-base = "\
/usr/share/xen/qemu/keymaps/common \
/usr/share/xen/qemu/keymaps/modifiers \
/usr/share/xen/qemu/keymaps/en-us \
"
FILES_${PN}-keymaps = "\
/usr/share/xen/qemu/keymaps \
"
FILES_${PN}-xenlight = "\
${sbindir}/xl \
${sysconfdir}/xen/xl.conf \
${sysconfdir}/bash_completion.d/xl.sh \
"
FILES_${PN}-xenconsole = "\
${sbindir}/xenconsoled \
${libdir}/xen/bin/xc_restore \
${libdir}/xen/bin/xc_save \
${libdir}/xen/bin/xenconsole \
"
FILES_${PN}-xenstore = "\
${bindir}/xenstore \
${bindir}/xenstore-* \
${sbindir}/xenstored \
/var/run/xenstored \
"
FILES_${PN}-hvmloader = "\
${libdir}/xen/boot/hvmloader \
"
FILES_libxenlight = "${libdir}/libxenlight.so.*"
FILES_libxenlight-dev = "${libdir}/libxenlight.so {libdir}/libxenlight.a"
FILES_libfsimage = "${libdir}/libfsimage.so.*"
FILES_libfsimage-dev = "${libdir}/libfsimage.so {libdir}/libfsimage.a"
FILES_libflask = "${libdir}/libflask.so.*"
FILES_libflask-dev = "${libdir}/libflask.so ${libdir}/libflask.a"
FILES_libxenguest = "${libdir}/libxenguest.so.*"
FILES_libxenguest-dev = "${libdir}/libxenguest.so ${libdir}/libxenguest.a"
FILES_libblktap = "${libdir}/libblktap.so.*"
FILES_libblktap-dev = "${libdir}/libblktap.so ${libdir}/libblktap.a"
FILES_libblktapctl = "${libdir}/libblktapctl.so.*"
FILES_libblktapctl-dev = "${libdir}/libblktapctl.so ${libdir}/libblktapctl.a"
FILES_libxlutil = "${libdir}/libxlutil.so.*"
FILES_libxlutil-dev = "${libdir}/libxlutil.so ${libdir}/libxlutil.a"
FILES_libvhd = "${libdir}/libvhd.so.*"
FILES_libvhd-dev = "${libdir}/libvhd.so ${libdir}/libvhd.a"
FILES_libxenstore = "${libdir}/libxenstore.so.*"
FILES_libxenstore-dev = "${libdir}/libxenstore.so ${libdir}/libxenstore.a"
FILES_libxenctrl = "${libdir}/libxenctrl.so.*"
FILES_libxenctrl-dev = "${libdir}/libxenctrl.so ${libdir}/libxenctrl.a"
FILES_${PN}-doc += "\
/usr/share/xen/man \
${sysconfdir}/xen/README* \
"
FILES_${PN}-dbg += "\
${libdir}/xen/bin/.debug \
${libdir}/fs/ufs/.debug \
${libdir}/fs/zfs/.debug \
${libdir}/fs/ext2fs-lib/.debug \
${libdir}/fs/fat/.debug \
${libdir}/fs/iso9660/.debug \
${libdir}/fs/reiserfs/.debug \
"
FILES_${PN}-boot = "/boot"
FILES_${PN}-domains = "\
${sysconfdir}/default/xendomains \
${sysconfdir}/init.d/xendomains \
"
FILES_${PN}-commons = "\
${sysconfdir}/default/xencommons \
${sysconfdir}/init.d/xencommons \
"
FILES_${PN}-bios-sparc = "\
/usr/share/xen/qemu/openbios-sparc32 \
/usr/share/xen/qemu/openbios-sparc64 \
"
FILES_${PN}-bios-ppc = "\
/usr/share/xen/qemu/openbios-ppc \
/usr/share/xen/qemu/ppc_rom.bin \
"
FILES_${PN}-networking = "\
${sysconfdir}/xen/scripts/network-nat \
${sysconfdir}/xen/scripts/network-route \
${sysconfdir}/xen/scripts/qemu-ifup \
${sysconfdir}/xen/scripts/vif2 \
${sysconfdir}/xen/scripts/vif-bridge \
${sysconfdir}/xen/scripts/vif-route \
${sysconfdir}/xen/scripts/vif-setup \
${sysconfdir}/xen/scripts/vif-common \
${sysconfdir}/xen/scripts/vif-nat \
${sysconfdir}/xen/scripts/xen-network-common \
/usr/share/xen/qemu/pxe-e1000.bin \
/usr/share/xen/qemu/pxe-ne2k_pci.bin \
/usr/share/xen/qemu/pxe-pcnet.bin \
/usr/share/xen/qemu/pxe-rtl8139.bin \
"
FILES_${PN}-pm = "\
${sbindir}/xenpmd \
${sbindir}/xenpm \
"
FILES_${PN}-watchdog = "\
${sysconfdir}/init.d/xen-watchdog \
${sbindir}/xenwatchdogd \
"
FILES_${PN}-examples = "\
${sysconfdir}/xen/xmexample* \
"
FILES_${PN}-debugging = "\
${sbindir}/gdbsx \
${sbindir}/kdd \
${sbindir}/xen-hvmcrash \
${sbindir}/gtraceview \
${sbindir}/gtracestat \
"
FILES_${PN}-tools = "\
${bindir}/xen-detect \
${bindir}/xentrace \
${bindir}/xentrace_* \
${bindir}/qemu-img-xen \
${sbindir}/tap-ctl \
${sbindir}/xentrace_* \
${sbindir}/tapdisk \
${sbindir}/tapdisk2 \
${sbindir}/tapdisk-* \
${sbindir}/flask-genenforce \
${sbindir}/qcow-create \
${sbindir}/qcow2raw \
${sbindir}/xen-hptool \
${sbindir}/blktapctrl \
${sbindir}/xsview \
${sbindir}/xen-hvmctx \
${sbindir}/lock-util \
${sbindir}/tapdisk-stream \
${sbindir}/vhd-update \
${sbindir}/xenpaging \
${sbindir}/xenperf \
${sbindir}/xenlockprof \
${sbindir}/td-util \
${sbindir}/flask-loadpolicy \
${sbindir}/xentop \
${sbindir}/img2qcow \
${sbindir}/flask-setenforce \
${sbindir}/xen-tmem-list-parse \
${sbindir}/vhd-util \
${sbindir}/xenbaked \
"
# Don't run architecture tests on xen packages
QAPATHTEST[arch]=""
inherit update-rc.d
INITSCRIPT_PACKAGES = "${PN}-commons ${PN}-watchdog ${PN}-domains"
INITSCRIPT_NAME_${PN}-commons = "xencommons"
INITSCRIPT_PARAMS_${PN}-commons = "defaults 62"
INITSCRIPT_NAME_${PN}-watchdog = "xen-watchdog"
INITSCRIPT_PARAMS_${PN}-watchdog = "defaults 66"
INITSCRIPT_NAME_${PN}-domains = "xendomains"
INITSCRIPT_PARAMS_${PN}-domains = "defaults 68"
NITSCRIPT_NAME_${PN}-minimal = "xenminiinit"
INITSCRIPT_PARAMS_${PN}-minimal = "defaults 69"
do_compile() {
# Hack to get around missing/failed multilib support
export LIBLEAFDIR_x86_64=lib
test -d ${S}/tools/firmware/rombios/gnu || mkdir ${S}/tools/firmware/rombios/gnu
test -e ${S}/tools/firmware/rombios/32bit/gnu || ln -s ../gnu ${S}/tools/firmware/rombios/32bit/gnu
test -e ${S}/tools/firmware/hvmloader/gnu || ln -s ../rombios/gnu ${S}/tools/firmware/hvmloader/gnu
test -e ${S}/tools/firmware/hvmloader/acpi/gnu || ln -s ../../rombios/gnu ${S}/tools/firmware/hvmloader/acpi/gnu
test -d ${S}/tools/include || mkdir -p ${S}/tools/include
test -e ${S}/tools/include/gnu || ln -s ../firmware/rombios/gnu ${S}/tools/include/gnu
if ! test -f ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-32.h ; then
cat ${STAGING_DIR_TARGET}/usr/include/gnu/stubs-64.h | grep -v stub_bdflush | grep -v stub_getmsg | grep -v stub_putmsg > ${S}/tools/firmware/rombios/gnu/stubs-32.h
echo \#define __stub___kernel_cosl >> ${S}/tools/firmware/rombios/gnu/stubs-32.h
echo \#define __stub___kernel_sinl >> ${S}/tools/firmware/rombios/gnu/stubs-32.h
echo \#define __stub___kernel_tanl >> ${S}/tools/firmware/rombios/gnu/stubs-32.h
fi
# End multilib hack
export CONFIG_QEMU=${WORKDIR}/git
export XEN_TARGET_ARCH=`echo ${TARGET_ARCH} | sed -e s/i.86/x86_32/ \
-e s/i86pc/x86_32/ -e s/amd64/x86_64/`
export XEN_OS=Linux
export XEN_DISABLE_XEND=${XEN_DISABLE_XEND}
export EXTRA_PREFIX=${STAGING_DIR_TARGET}
export CROSS_COMPILE=${TARGET_PREFIX}
export CROSS_BIN_PATH=${STAGING_DIR_NATIVE}/usr/bin
export CROSS_SYS_ROOT=${STAGING_DIR_TARGET}
# These are needed by sysconfig.py
export BUILD_SYS=${BUILD_SYS}
export HOST_SYS=${HOST_SYS}
export STAGING_INCDIR=${STAGING_INCDIR}
export STAGING_LIBDIR=${STAGING_LIBDIR}
export CFLAGS=
export LDFLAGS=
# These two checks are for binaries that are not installed yet
rm -f ${S}/tools/check/check_python_devel
rm -f ${S}/tools/check/check_xgettext
# These checks are for libraries utilizing ldconfig
rm -f ${S}/tools/check/check_zlib_lib
rm -f ${S}/tools/check/check_crypto_lib
#stubdom image builds are being a pain
oe_runmake dist-xen dist-tools dist-kernels dist-docs
}
do_install() {
for foo in `find ${S}/dist/install -type f` ; do
if file $foo | grep text 2>&1 ; then
echo Fixing paths in $foo
sed -e "s%${STAGING_DIR_NATIVE}%%g" -i $foo
sed -e "s%${STAGING_DIR_TARGET}%%g" -i $foo
fi
done
cp -av ${S}/dist/install/* ${D}/
install -d ${D}/etc/xen
install -d ${D}/etc/init.d
install -m 0755 ${WORKDIR}/xenminiinit.sh ${D}/etc/init.d/xenminiinit
install -m 0644 ${WORKDIR}/xend-config.sxp ${D}/etc/xen/xend-config.sxp
test -e ${D}/usr/lib64 || ln -s lib ${D}/usr/lib64
}
sysroot_stage_all_append() {
sysroot_stage_dir ${D}/boot ${SYSROOT_DESTDIR}/kernel
install -d ${DEPLOY_DIR_IMAGE}
install -m 0644 ${D}/boot/xen.gz ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.gz
}