diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/xen/APKBUILD | 77 | ||||
-rw-r--r-- | main/xen/xen-blktap-uclibc.patch | 11 | ||||
-rw-r--r-- | main/xen/xen-blktap2-uclibc.patch | 22 | ||||
-rw-r--r-- | main/xen/xen-disable-firmware.patch | 10 | ||||
-rw-r--r-- | main/xen/xen-disable-fsback.patch | 10 | ||||
-rw-r--r-- | main/xen/xen-disable-werror.patch | 33 | ||||
-rw-r--r-- | main/xen/xen-dont-use-lib64.patch | 11 | ||||
-rw-r--r-- | main/xen/xend.initd | 38 | ||||
-rw-r--r-- | main/xen/xendomains.initd | 63 |
9 files changed, 275 insertions, 0 deletions
diff --git a/main/xen/APKBUILD b/main/xen/APKBUILD new file mode 100644 index 000000000..c3ff291ae --- /dev/null +++ b/main/xen/APKBUILD @@ -0,0 +1,77 @@ +# Contributor: William Pitcock <nenolod@dereferenced.org> +# Maintainer: William Pitcock <nenolod@dereferenced.org> +pkgname=xen +pkgver=4.0.1 +pkgrel=2 +pkgdesc="Xen hypervisor" +url="http://www.xen.org/" +license="GPL" +depends="coreutils python sed gawk" +makedepends="libgcrypt-dev gnutls-dev pciutils-dev texinfo wget mesa-dev sdl-dev zlib-dev openssl-dev util-linux-ng-dev python-dev gettext-dev ncurses-dev" +install= +subpackages="$pkgname-doc" +source="http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.gz + xen-blktap-uclibc.patch + xen-blktap2-uclibc.patch + xen-disable-firmware.patch + xen-disable-fsback.patch + xen-disable-werror.patch + xen-dont-use-lib64.patch + xend.initd + xendomains.initd" +arch="x86_64" + +_builddir="$srcdir"/$pkgname-$pkgver + +prepare() { + cd "$_builddir" + + for i in $source; do + case $i in + *.patch) + msg "Applying $i..." + patch -s -p1 -N -i "$srcdir"/$i || return 1 + ;; + esac + done +} + +build() { + cd "$_builddir" + + # We unset $CFLAGS and $LDFLAGS because Xen's buildsystem does not + # like these values being set. Arguably this is a bug but I can't be + # bothered to track it down. --nenolod + unset CFLAGS + unset LDFLAGS + + # If we provide no parameters it tries to build a kernel image. We + # definitely don't want that. + (cd tools/check; ./chk build) || return 1 + make -j1 xen tools stubdom || return 1 +} + +package() { + cd "$_builddir" + + # We unset $CFLAGS and $LDFLAGS because Xen's buildsystem does not + # like these values being set. Arguably this is a bug but I can't be + # bothered to track it down. --nenolod + unset CFLAGS + unset LDFLAGS + + make DESTDIR="$pkgdir" install-xen install-tools install-stubdom + + install -m755 -D "$srcdir"/xend.initd "$pkgdir"/etc/init.d/xend + install -m755 -D "$srcdir"/xendomains.initd "$pkgdir"/etc/init.d/xendomains +} + +md5sums="d197afad975ab2396a67323d57388c27 xen-4.0.1.tar.gz +edb5c3e7fba8214702fac709f0e53124 xen-blktap-uclibc.patch +1f7f847ae0baa915c7b52d0ed5869fe6 xen-blktap2-uclibc.patch +a569f16a7e3c832ba3fab6154f657244 xen-disable-firmware.patch +03d1fff892e627b812bba4e6c56d696a xen-disable-fsback.patch +949d0d3bc1e8f300a849279b60760c6a xen-disable-werror.patch +b6599060e22b61dabee0fe460b4a0c9d xen-dont-use-lib64.patch +1d81b04f8c8b919879a73f0e3d2fe80f xend.initd +a2b5234483f1b5892d22e9315d9c307f xendomains.initd" diff --git a/main/xen/xen-blktap-uclibc.patch b/main/xen/xen-blktap-uclibc.patch new file mode 100644 index 000000000..d8668ec19 --- /dev/null +++ b/main/xen/xen-blktap-uclibc.patch @@ -0,0 +1,11 @@ +--- xen-4.0.1/tools/blktap/drivers/bswap.h ++++ xen-4.0.1.mod/tools/blktap/drivers/bswap.h +@@ -15,6 +15,8 @@ + #define bswap_64(x) swap64(x) + #else + ++#define HAVE_BYTESWAP_H ++ + #ifdef HAVE_BYTESWAP_H + #include <byteswap.h> + #else diff --git a/main/xen/xen-blktap2-uclibc.patch b/main/xen/xen-blktap2-uclibc.patch new file mode 100644 index 000000000..7ce1dc0cf --- /dev/null +++ b/main/xen/xen-blktap2-uclibc.patch @@ -0,0 +1,22 @@ +--- xen-4.0.1/tools/blktap2/drivers/bswap.h ++++ xen-4.0.1.mod/tools/blktap2/drivers/bswap.h +@@ -15,6 +15,8 @@ + #define bswap_64(x) swap64(x) + #else + ++#define HAVE_BYTESWAP_H ++ + #ifdef HAVE_BYTESWAP_H + #include <byteswap.h> + #else +--- xen-4.0.1/tools/blktap2/vhd/lib/Makefile ++++ xen-4.0.1.mod/tools/blktap2/vhd/lib/Makefile +@@ -23,6 +23,8 @@ + LIBS := -luuid + endif + ++LIBS += -liconv ++ + # Get gcc to generate the dependencies for us. + CFLAGS += -Wp,-MD,.$(@F).d + DEPS = .*.d diff --git a/main/xen/xen-disable-firmware.patch b/main/xen/xen-disable-firmware.patch new file mode 100644 index 000000000..06e43d41c --- /dev/null +++ b/main/xen/xen-disable-firmware.patch @@ -0,0 +1,10 @@ +--- xen-4.0.1/tools/Makefile ++++ xen-4.0.1.mod/tools/Makefile +@@ -13,7 +13,6 @@ + SUBDIRS-y += hotplug + SUBDIRS-y += xentrace + SUBDIRS-$(CONFIG_XCUTILS) += xcutils +-SUBDIRS-$(CONFIG_X86) += firmware + SUBDIRS-$(ACM_SECURITY) += security + SUBDIRS-y += console + SUBDIRS-y += xenmon diff --git a/main/xen/xen-disable-fsback.patch b/main/xen/xen-disable-fsback.patch new file mode 100644 index 000000000..d0ae91b12 --- /dev/null +++ b/main/xen/xen-disable-fsback.patch @@ -0,0 +1,10 @@ +--- xen-4.0.1/tools/Makefile ++++ xen-4.0.1.mod/tools/Makefile +@@ -29,7 +28,6 @@ + SUBDIRS-$(CONFIG_NetBSD) += xenbackendd + SUBDIRS-y += libfsimage + SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen +-SUBDIRS-$(CONFIG_Linux) += fs-back + SUBDIRS-$(CONFIG_NetBSD) += fs-back + SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir + SUBDIRS-y += xenpmd diff --git a/main/xen/xen-disable-werror.patch b/main/xen/xen-disable-werror.patch new file mode 100644 index 000000000..c2c551245 --- /dev/null +++ b/main/xen/xen-disable-werror.patch @@ -0,0 +1,33 @@ +--- xen-4.0.1/Config.mk ++++ xen-4.0.1.mod/Config.mk +@@ -14,7 +14,7 @@ + + # Tools to run on system hosting the build + HOSTCC = gcc +-HOSTCFLAGS = -Wall -Werror -Wstrict-prototypes -O2 -fomit-frame-pointer ++HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer + HOSTCFLAGS += -fno-strict-aliasing + + DISTDIR ?= $(XEN_ROOT)/dist +--- xen-4.0.1/extras/mini-os/minios.mk ++++ xen-4.0.1.mod/extras/mini-os/minios.mk +@@ -6,7 +6,7 @@ + + # Define some default flags. + # NB. '-Wcast-qual' is nasty, so I omitted it. +-DEF_CFLAGS += -fno-builtin -Wall -Werror -Wredundant-decls -Wno-format -Wno-redundant-decls ++DEF_CFLAGS += -fno-builtin -Wall -Wredundant-decls -Wno-format -Wno-redundant-decls + DEF_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) + DEF_CFLAGS += $(call cc-option,$(CC),-fgnu89-inline) + DEF_CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Winline +--- xen-4.0.1/tools/libxc/Makefile ++++ xen-4.0.1.mod/tools/libxc/Makefile +@@ -57,7 +57,7 @@ + + -include $(XEN_TARGET_ARCH)/Makefile + +-CFLAGS += -Werror -Wmissing-prototypes ++CFLAGS += -Wmissing-prototypes + CFLAGS += $(INCLUDES) -I. -I../xenstore -I../include + + # Needed for posix_fadvise64() in xc_linux.c diff --git a/main/xen/xen-dont-use-lib64.patch b/main/xen/xen-dont-use-lib64.patch new file mode 100644 index 000000000..a22f13902 --- /dev/null +++ b/main/xen/xen-dont-use-lib64.patch @@ -0,0 +1,11 @@ +--- xen-4.0.1/config/StdGNU.mk ++++ xen-4.0.1.mod/config/StdGNU.mk +@@ -28,7 +28,7 @@ + INCLUDEDIR = $(PREFIX)/include + LIBLEAFDIR = lib + LIBLEAFDIR_x86_32 = lib +-LIBLEAFDIR_x86_64 = lib64 ++LIBLEAFDIR_x86_64 = lib + LIBDIR = $(PREFIX)/$(LIBLEAFDIR) + LIBDIR_x86_32 = $(PREFIX)/$(LIBLEAFDIR_x86_32) + LIBDIR_x86_64 = $(PREFIX)/$(LIBLEAFDIR_x86_64) diff --git a/main/xen/xend.initd b/main/xen/xend.initd new file mode 100644 index 000000000..6958c0479 --- /dev/null +++ b/main/xen/xend.initd @@ -0,0 +1,38 @@ +#!/sbin/runscript + +depend() { + need net + before xendomains sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp +} + +is_privileged_domain() { + grep -qsE '^control_d$' /proc/xen/capabilities + return $? +} + +start() { + if is_privileged_domain ; then + ebegin "Starting Xen daemons" + /usr/sbin/xend start + eend $? + else + eerror "Can't start xend - not a privileged domain" + return 1 + fi +} + +stop() { + ebegin "Stopping Xen control daemon" + /usr/sbin/xend stop + eend $? +} + +restart() { + ebegin "Restarting Xen control daemon" + /usr/sbin/xend restart + eend $? +} + +status() { + is_privileged_domain && /usr/sbin/xend status +} diff --git a/main/xen/xendomains.initd b/main/xen/xendomains.initd new file mode 100644 index 000000000..d12577c2b --- /dev/null +++ b/main/xen/xendomains.initd @@ -0,0 +1,63 @@ +#!/sbin/runscript + +depend() { + need xend + after dhcp +} + +get_domname() { + local name_from_file=$(sed -rn 's/^name\W*=\W*\"?([[:alnum:]_\.-]+)\"?\W*;?/\1/p' "${1}" | tail -n 1) + + if [[ -z ${name_from_file} ]] ; then + basename "${1}" + else + echo ${name_from_file} + fi +} + +is_running() { + /usr/sbin/xm list "${1}" >/dev/null 2>&1 +} + +start() { + einfo "Starting Xen domains in ${AUTODIR:=/etc/xen/auto}" + + for dom in $(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort); do + name=$(get_domname ${dom}) + if ! is_running ${name} ; then + ebegin " Starting domain ${name}" + xm create --quiet ${dom} + eend $? + else + einfo " Not starting ${name} - already running." + fi + done +} + +stop() { + einfo "Stopping Xen domains in ${AUTODIR:=/etc/xen/auto}" + + for dom in $(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort); do + name=$(get_domname ${dom}) + if is_running ${name} ; then + ebegin " Sending shutdown signal to ${name}" + xm shutdown ${name} >/dev/null + eend $? + fi + done + + for dom in $(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort); do + name=$(get_domname ${dom}) + if is_running ${name} ; then + ebegin " Waiting for domain ${name} to shutdown" + xm shutdown --wait ${name} + eend $? + else + einfo " Not stopping ${name} - not running." + fi + done +} + +status() { + /usr/sbin/xm list +} |