summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2010-12-27 18:37:21 -0600
committerWilliam Pitcock <nenolod@dereferenced.org>2010-12-28 21:15:44 -0600
commit6bb05082baccd776b01adae1768c010220c8a9aa (patch)
treeefb295686334d0b5533fc965919241ce35a35a71
parentd16919042d04958d058eb71a618a8d0c4836789c (diff)
downloadaports-6bb05082baccd776b01adae1768c010220c8a9aa.tar.bz2
aports-6bb05082baccd776b01adae1768c010220c8a9aa.tar.xz
testing/xen: add initscripts for xend and xendomains.
-rw-r--r--testing/xen/APKBUILD15
-rw-r--r--testing/xen/xend.initd38
-rw-r--r--testing/xen/xendomains.initd63
3 files changed, 112 insertions, 4 deletions
diff --git a/testing/xen/APKBUILD b/testing/xen/APKBUILD
index 094f42abd..86eb06770 100644
--- a/testing/xen/APKBUILD
+++ b/testing/xen/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: William Pitcock <nenolod@dereferenced.org>
pkgname=xen
pkgver=4.0.1
-pkgrel=0
+pkgrel=1
pkgdesc="Xen hypervisor"
url="http://www.xen.org/"
license="GPL"
depends=
-makedepends="coreutils python sed gawk libgcrypt-dev gnutls-dev pciutils-dev texinfo git wget"
+makedepends="coreutils python sed gawk libgcrypt-dev gnutls-dev pciutils-dev texinfo git wget mesa-dev sdl-dev"
install=
subpackages="$pkgname-doc"
source="http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.gz
@@ -16,7 +16,9 @@ source="http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.g
xen-disable-firmware.patch
xen-disable-fsback.patch
xen-disable-werror.patch
- xen-dont-use-lib64.patch"
+ xen-dont-use-lib64.patch
+ xend.initd
+ xendomains.initd"
arch="x86 x86_64"
_builddir="$srcdir"/$pkgname-$pkgver
@@ -58,6 +60,9 @@ package() {
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
@@ -66,4 +71,6 @@ edb5c3e7fba8214702fac709f0e53124 xen-blktap-uclibc.patch
a569f16a7e3c832ba3fab6154f657244 xen-disable-firmware.patch
03d1fff892e627b812bba4e6c56d696a xen-disable-fsback.patch
949d0d3bc1e8f300a849279b60760c6a xen-disable-werror.patch
-b6599060e22b61dabee0fe460b4a0c9d xen-dont-use-lib64.patch"
+b6599060e22b61dabee0fe460b4a0c9d xen-dont-use-lib64.patch
+1d81b04f8c8b919879a73f0e3d2fe80f xend.initd
+a2b5234483f1b5892d22e9315d9c307f xendomains.initd"
diff --git a/testing/xen/xend.initd b/testing/xen/xend.initd
new file mode 100644
index 000000000..6958c0479
--- /dev/null
+++ b/testing/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/testing/xen/xendomains.initd b/testing/xen/xendomains.initd
new file mode 100644
index 000000000..d12577c2b
--- /dev/null
+++ b/testing/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
+}