Commit e86eb0b2 authored by Leonardo Arena's avatar Leonardo Arena
Browse files

testing/libvirt: new aport

parent 7dcde688
# Maintainer: Leonardo Arena <rnalrd@gmail.com>
pkgname=libvirt
pkgver=0.8.4
pkgrel=0
pkgdesc="A virtualization API for several hypervisor and container systems"
url="http://libvirt.org/"
license="LGPL"
depends="python"
makedepends="libxml2-dev gnutls-dev lvm2-dev"
install=
subpackages="$pkgname-dev $pkgname-doc"
source="http://libvirt.org/sources/$pkgname-$pkgver.tar.gz
libvirt.confd
libvirt.initd"
_builddir="$srcdir"/$pkgname-$pkgver
#prepare() {
# cd "$_builddir"
# # apply patches here
#}
build() {
cd "$_builddir"
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--libexec=/usr/lib/"$pkgname"
make || return 1
}
package() {
cd "$_builddir"
make DESTDIR="$pkgdir" install
install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd
install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd
}
md5sums="a9300a068a07bcd72f86e4967d7f4d69 libvirt-0.8.4.tar.gz
1c84a7baeafe0a7f4e9d7ae5180311b7 libvirt.confd
3d32c12642cb9a84baf019c7b0971755 libvirt.initd"
# /etc/conf.d/libvirtd
# You may want to add '--listen' to have libvirtd listen for tcp/ip connections
# if you want to use libvirt for remote control
# Please consult 'libvirtd --help' for more options
#LIBVIRTD_OPTS="--listen"
# Valid options:
# * shutdown - Sends an ACPI shutdown (think when you tap the power button
# on your machine and it begins a graceful shutdown). If your
# VM ignores this, it will have the power yanked out from under
# it in LIBVIRTD_KVM_SHUTDOWN_MAXWAIT seconds.
# * managedsave - Performs a state save external to the VM. qemu-kvm will stop
# stop the CPU and save off all state to a separate file. When
# the machine is started again, it will resume like nothing ever
# happened. This is guarenteed to always successfully stop your
# machine and restart it. However it may take some time to finish.
# * none - No attempts will be made to stop any VMs. If you are restarting your
# machine the qemu-kvm process will be simply killed, which may result
# in your VMs having disk corruption.
LIBVIRTD_KVM_SHUTDOWN="managedsave"
# Timeout in seconds until stopping libvirtd and "pulling the plug" on the
# remaining VM's still in a running state
#LIBVIRTD_KVM_SHUTDOWN_MAXWAIT="500"
#!/sbin/runscript
opts="start stop status reload restart"
depend() {
need net
after firewall
}
libvirtd_virsh() {
# Silence errors because virsh always throws an error about
# not finding the hypervisor version when connecting to libvirtd
LC_ALL=C virsh -c qemu:///system "$@" 2>/dev/null
}
libvirtd_dom_list() {
# Make sure that it wouldn't be confused if the domain name
# contains the word running.
libvirtd_virsh list | awk '$3 == "running" { print $1 }'
}
libvirtd_dom_count() {
# Make sure that it wouldn't be confused if the domain name
# contains the word running.
libvirtd_virsh list | awk 'BEGIN { count = 0 } \
$3 == "running" { count++ } \
END { print count }'
}
start() {
ebegin "Starting libvirtd"
start-stop-daemon --start \
--env KRB5_KTNAME=/etc/libvirt/krb5.tab \
--exec /usr/sbin/libvirtd -- -d ${LIBVIRTD_OPTS}
eend $?
}
stop() {
ebegin "Stopping libvirtd"
# try to shutdown all (KVM/Qemu) domains
DOM_COUNT="$(libvirtd_dom_count)"
if [ "${LIBVIRTD_KVM_SHUTDOWN}" != "none" ] \
&& [ "${DOM_COUNT}" != "0" ] ; then
einfo " Shutting down domain(s):"
for DOM_ID in $(libvirtd_dom_list) ; do
NAME="$(libvirtd_virsh domname ${DOM_ID} | head -n 1)"
einfo " ${NAME}"
libvirtd_virsh ${LIBVIRTD_KVM_SHUTDOWN} ${DOM_ID} > /dev/null
done
if [ -n "${LIBVIRTD_KVM_SHUTDOWN_MAXWAIT}" ] ; then
COUNTER="${LIBVIRTD_KVM_SHUTDOWN_MAXWAIT}"
else
COUNTER=500
fi
if [ "${LIBVIRTD_KVM_SHUTDOWN}" = "shutdown" ]; then
einfo " Waiting ${COUNTER} seconds while domains shutdown ..."
DOM_COUNT="$(libvirtd_dom_count)"
while [ ${DOM_COUNT} -gt 0 ] && [ ${COUNTER} -gt 0 ] ; do
DOM_COUNT="$(libvirtd_dom_count)"
sleep 1
COUNTER=$((${COUNTER} - 1))
echo -n "."
done
fi
DOM_COUNT="$(libvirtd_dom_count)"
if [ "${DOM_COUNT}" != "0" ] ; then
eerror " !!! Some guests are still running, stopping anyways"
fi
fi
start-stop-daemon --stop --quiet --exec /usr/sbin/libvirtd --pidfile=/var/run/libvirtd.pid
eend $?
}
reload() {
ebegin "Reloading libvirtd without shutting down your VMs"
start-stop-daemon --stop --quiet --exec /usr/sbin/libvirtd --pidfile=/var/run/libvirtd.pid
if [ $? -ne 0 ]; then
eend $?
fi
start-stop-daemon --start --quiet --exec /usr/sbin/libvirtd -- -d ${LIBVIRTD_OPTS}
eend $?
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment