diff options
Diffstat (limited to 'community')
-rw-r--r-- | community/xe-guest-utilities/APKBUILD | 55 | ||||
-rw-r--r-- | community/xe-guest-utilities/identify_alpine.patch | 43 | ||||
-rw-r--r-- | community/xe-guest-utilities/xe-guest-utilities.initd | 50 |
3 files changed, 148 insertions, 0 deletions
diff --git a/community/xe-guest-utilities/APKBUILD b/community/xe-guest-utilities/APKBUILD new file mode 100644 index 0000000000..e344814dbb --- /dev/null +++ b/community/xe-guest-utilities/APKBUILD @@ -0,0 +1,55 @@ +# Contributor: Cedric Schieli <cschieli@gmail.com> +# Maintainer: Cedric Schieli <cschieli@gmail.com> +pkgname=xe-guest-utilities +pkgver=6.6.80 +pkgrel=0 +pkgdesc="XenServer guest tools" +url="https://github.com/xenserver/xe-guest-utilities" +arch="x86 x86_64" +license="BSD-2-Clause" +depends= +makedepends=go +install= +subpackages="${pkgname}-udev:udev:noarch" +options="!check" +source="${pkgname}-${pkgver}.tar.gz::https://github.com/xenserver/${pkgname}/archive/v${pkgver}.tar.gz + $pkgname.initd + identify_alpine.patch + " + +_builddir="$srcdir"/$pkgname-$pkgver + +prepare() { + cd "$_builddir/mk" + + for i in ../*.diff ../*.patch; do + [ -f $i ] || continue + msg "Applying $i..." + patch -s -p1 -N < $i || return 1 + done +} + +build() { + cd "$_builddir" + make +} + +package() { + mkdir -p "$pkgdir" + cp -ar "${_builddir}/build/stage/usr/" "$pkgdir/" + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname +} + +udev() { + pkgdesc="udev rules for CPU hotplugging when running as Xen DomU" + depends="udev" + + udev_dir="etc/udev/rules.d" + mkdir -p "${subpkgdir}/${udev_dir}" + filename="z10_xen-vcpu-hotplug.rules" + install -m644 -D "${_builddir}/build/stage/${udev_dir}/${filename}" "${subpkgdir}/${udev_dir}/${filename}" +} + +sha512sums="8b4519e5c23cb57b2ee86435cec8078912921d2c9c49f90eddba6f0f122d0dec0091690d5280bebb7af97c13095640b6cb77ea7e1a813d828dd31514096069aa xe-guest-utilities-6.6.80.tar.gz +3e898b473f6e71ecc5b820717df0a460b31756b68f4bb9bf454df39f430e64ca5e33582c03bfea044d93f49937883fe9b6807c31dee72307750de670bfca8bcd xe-guest-utilities.initd +94d0d3c6f082dc76e7a76b48d1ecfff7d38ba6da344d1fdfa94c7a8f6c23ca726bccc7b1c8934f41ab06bb9a6b8582aec7448a99d17598b19dc8f3a73f1cd08a identify_alpine.patch" diff --git a/community/xe-guest-utilities/identify_alpine.patch b/community/xe-guest-utilities/identify_alpine.patch new file mode 100644 index 0000000000..d645c139ab --- /dev/null +++ b/community/xe-guest-utilities/identify_alpine.patch @@ -0,0 +1,43 @@ +--- xe-guest-utilities-5.5.0.orig/xe-linux-distribution ++++ xe-guest-utilities-5.5.0/xe-linux-distribution +@@ -248,6 +248,32 @@ + write_to_output "${distro}" "${major}" "${minor}" "${description}" + } + ++identify_alpine() ++{ ++ alpine_release="$1" ++ local major ++ local minor ++ ++ if [ ! -f "${alpine_release}" ] ; then ++ return 1 ++ fi ++ ++ eval $(sed -n \ ++ -e 's/^.*-\([0-9]*\)\.\([0-9]*\)\.[0-9]* .*$/major=\1;minor=\2/gp;' \ ++ -e 's/^.*-\([0-9]*\) .*$/major=\1;minor=/gp;' \ ++ "${alpine_release}") ++ ++ if [ -z "${major}" ] ; then ++ return 1 ++ fi ++ ++ if [ -z "${minor}" ] ; then ++ minor=0 ++ fi ++ ++ write_to_output "alpine" "${major}" "${minor}" "Alpinelinux $(head -n 1 $alpine_release)" ++} ++ + if [ $# -eq 1 ] ; then + exec 1>"$1" + fi +@@ -257,6 +283,7 @@ + identify_sles /etc/SuSE-release && exit 0 + identify_lsb lsb_release && exit 0 + identify_debian /etc/debian_version && exit 0 ++ identify_alpine /etc/alpine-release && exit 0 + + if [ $# -eq 1 ] ; then + rm -f "$1" diff --git a/community/xe-guest-utilities/xe-guest-utilities.initd b/community/xe-guest-utilities/xe-guest-utilities.initd new file mode 100644 index 0000000000..59362ef453 --- /dev/null +++ b/community/xe-guest-utilities/xe-guest-utilities.initd @@ -0,0 +1,50 @@ +#!/sbin/openrc-run + +XE_LINUX_DISTRIBUTION=/usr/sbin/xe-linux-distribution +XE_LINUX_DISTRIBUTION_CACHE=/var/cache/xe-linux-distribution +XE_DAEMON=/usr/sbin/xe-daemon +XE_DAEMON_PIDFILE=/var/run/xe-daemon.pid + +name=xe-daemon +daemon=/usr/sbin/$name + +depend() { + need localmount + after bootmisc +} + +start() { + if [ ! -d /proc/xen ]; then + return + fi + + ebegin "Detecting Linux distribution version" + ${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE} + eend $? + + if [ ! -e /proc/xen/xenbus ] ; then + ebegin "Mounting xenfs on /proc/xen" + if [ ! -d /proc/xen ] ; then + /bin/false + else + mount -t xenfs none /proc/xen + fi + eend $? + fi + + ebegin "Starting ${name}" + mkdir -p $(dirname ${XE_DAEMON_PIDFILE}) + ( exec &>/dev/null ; ${XE_DAEMON} -p ${XE_DAEMON_PIDFILE} & ) + eend $? +} + +stop() { + if [ ! -d /proc/xen ]; then + return + fi + + ebegin "Stopping ${name}" + kill -TERM $(cat ${XE_DAEMON_PIDFILE}) + eend $? +} + |