public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/kvm-tools:master commit in: app-emulation/kvm-init-script/files/, app-emulation/qemu-init-scripts/, ...
@ 2012-04-14  6:26 Brian Harring
  0 siblings, 0 replies; only message in thread
From: Brian Harring @ 2012-04-14  6:26 UTC (permalink / raw
  To: gentoo-commits

commit:     0a60bac03f0757a2714f8b1dbf40975759aa3ad4
Author:     Brian Harring <ferringb <AT> chromium <DOT> org>
AuthorDate: Sat Apr 14 05:52:40 2012 +0000
Commit:     Brian Harring <ferringb <AT> gentoo <DOT> org>
CommitDate: Sat Apr 14 06:23:28 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/kvm-tools.git;a=commit;h=0a60bac0

Generalize to support qemu and kvm in parallel.

Specifically, do so via pulling VMSOFTWARE configuration option.  Always
was a hack, no need for it with this setup.

---
 .../files/qemu-conf.example}                       |    0
 .../files/qemu-init-script}                        |   44 +++++++++++++------
 .../files/qtap-manipulate                          |    0
 .../qemu-init-scripts-0.1.ebuild}                  |    5 +-
 profiles/repo_name                                 |    2 +-
 5 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/app-emulation/kvm-init-script/files/kvm-conf.example b/app-emulation/qemu-init-scripts/files/qemu-conf.example
similarity index 100%
rename from app-emulation/kvm-init-script/files/kvm-conf.example
rename to app-emulation/qemu-init-scripts/files/qemu-conf.example

diff --git a/app-emulation/kvm-init-script/files/kvm-init-script b/app-emulation/qemu-init-scripts/files/qemu-init-script
similarity index 78%
rename from app-emulation/kvm-init-script/files/kvm-init-script
rename to app-emulation/qemu-init-scripts/files/qemu-init-script
index 9db1757..ba9aae3 100644
--- a/app-emulation/kvm-init-script/files/kvm-init-script
+++ b/app-emulation/qemu-init-scripts/files/qemu-init-script
@@ -3,20 +3,35 @@
 # Distributed under the terms of the GNU General Public License v2
 
 # To use this, symlink a target kvm instance to this script.
-# Literally, ln -s kvm /etc/init.d/kvm.<vmname>
-# then have a config named /etc/conf.d/kvm.<vmname>
+# Literally, ln -s qemu /etc/init.d/<vm-type>.<vmname>
+# then have a config named /etc/conf.d/<vm-type>.<vmname>
+#
+# Allowed vm-types are currently qemu and kvm.
 
 
 VMNAME=${SVCNAME#*.}
-PIDFILE=/var/run/vm/${VMNAME}.pid
-MONITOR=/var/run/vm/${VMNAME}.monitor
-QTAP_FILE=/var/run/vm/${VMNAME}.qtap
+VMTYPE=${SVCNAME%.*}
+VM_BINARY=
+PIDFILE=/var/run/vm/${SVCNAME}.pid
+MONITOR=/var/run/vm/${SVCNAME}.monitor
+QTAP_FILE=/var/run/vm/${SVCNAME}.qtap
+
+discern_vm_binary() {
+	case "$VMTYPE" in
+		kvm)
+			VM_BINARY=`type -p qemu-kvm`
+			[ -z "$VM_BINARY" ] && VM_BINARY=`type -p kvm`
+			;;
+		qemu)
+			VM_BINARY=`type -p qemu`
+			;;
+		*)
+			eerror "Failed to discern the binary for $VMTYPE"
+			;;
+	esac
+	return 0
+}
 
-# Default to qemu-kvm in the absense of a setting, failing back
-# to kvm if no binary is found, finally, back to qemu.
-[ -z "$VMSOFTWARE" ] && VMSOFTWARE=$(type -p qemu-kvm)
-[ -z "$VMSOFTWARE" ] && VMSOFTWARE=$(type -p kvm)
-[ -z "$VMSOFTWARE" ] && VMSOFTWARE=$(type -p qemu)
 
 DROP_USER=${DROP_USER:-nobody}
 MEMORY=${MEMORY:-512M}
@@ -45,6 +60,7 @@ sanity_check() {
 		eerror "couldn't find \$DISKIMAGE '$DISKIMAGE'"
 		return 1;
 	fi
+	discern_vm_binary
 }
 
 start() {
@@ -70,8 +86,8 @@ start() {
 	echo "${QTAP}" > ${QTAP_FILE}
 	eend $?
 
-	ebegin "Starting ${VMSOFTWARE##*/} for ${VMNAME} at VNC port${VNC}"
-	start-stop-daemon --start "${VMSOFTWARE}" \
+	ebegin "Starting ${VM_BINARY##*/} for ${VMNAME} at VNC port${VNC}"
+	start-stop-daemon --start "${VM_BINARY}" \
 		--pidfile ${PIDFILE} \
 		-- -daemonize -pidfile ${PIDFILE} -monitor unix:${MONITOR},server,nowait \
 		-runas ${DROP_USER} -name ${VMNAME} \
@@ -125,8 +141,8 @@ stop() {
 		eend $ret
 	fi
 
-	ebegin "Stopping ${VMSOFTWARE##*/} for ${VMNAME}"
-	start-stop-daemon --stop "${VMSOFTWARE}" \
+	ebegin "Stopping ${VM_BINARY##*/} for ${VMNAME}"
+	start-stop-daemon --stop "${VM_BINARY}" \
 		--user "${DROP_USER}" \
 		--pidfile "${PIDFILE}" \
 		--quiet

diff --git a/app-emulation/kvm-init-script/files/qtap-manipulate b/app-emulation/qemu-init-scripts/files/qtap-manipulate
similarity index 100%
rename from app-emulation/kvm-init-script/files/qtap-manipulate
rename to app-emulation/qemu-init-scripts/files/qtap-manipulate

diff --git a/app-emulation/kvm-init-script/kvm-init-script-0.1.ebuild b/app-emulation/qemu-init-scripts/qemu-init-scripts-0.1.ebuild
similarity index 74%
rename from app-emulation/kvm-init-script/kvm-init-script-0.1.ebuild
rename to app-emulation/qemu-init-scripts/qemu-init-scripts-0.1.ebuild
index 685ec69..209d7ba 100644
--- a/app-emulation/kvm-init-script/kvm-init-script-0.1.ebuild
+++ b/app-emulation/qemu-init-scripts/qemu-init-scripts-0.1.ebuild
@@ -13,7 +13,8 @@ KEYWORDS="amd64 x86"
 PDEPEND="|| ( app-emulation/qemu-kvm app-emulation/qemu )"
 
 src_install() {
-	newinitd "${FILESDIR}"/kvm-init-script kvm
-	newconfd "${FILESDIR}"/kvm-conf.example kvm.conf.example
+	newinitd "${FILESDIR}"/qemu-init-script qemu
+	newconfd "${FILESDIR}"/qemu-conf.example qemu.conf.example
 	newsbin "${FILESDIR}"/qtap-manipulate qtap-manipulate
+	dosym qemu /etc/init.d/kvm
 }

diff --git a/profiles/repo_name b/profiles/repo_name
index 68ebe70..503c1d2 100644
--- a/profiles/repo_name
+++ b/profiles/repo_name
@@ -1 +1 @@
-kvm-tools
+qemu-init



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-04-14  6:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-14  6:26 [gentoo-commits] proj/kvm-tools:master commit in: app-emulation/kvm-init-script/files/, app-emulation/qemu-init-scripts/, Brian Harring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox