summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/kvm/kvm-36-r1.ebuild')
-rw-r--r--app-emulation/kvm/kvm-36-r1.ebuild122
1 files changed, 122 insertions, 0 deletions
diff --git a/app-emulation/kvm/kvm-36-r1.ebuild b/app-emulation/kvm/kvm-36-r1.ebuild
new file mode 100644
index 0000000..c905751
--- /dev/null
+++ b/app-emulation/kvm/kvm-36-r1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit linux-mod eutils
+
+DESCRIPTION="KVM is a full virtualisation solution for Linux on hardware containing virtualization extensions (Intel VT or AMD-V)"
+HOMEPAGE="http://kvm.qumranet.com/kvmwiki"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE=""
+DEPEND=">=media-libs/libsdl-1.2.11
+ >=media-libs/alsa-lib-1.0.13
+ app-text/texi2html
+ !app-emulation/qemu
+ dev-lang/python
+ >=sys-fs/e2fsprogs-1.39"
+RDEPEND="${DEPEND}
+ sys-apps/usermode-utilities"
+
+RESTRICT="strip"
+
+BUILD_TARGETS="all"
+MODULE_NAMES="kvm(extra:"${S}"/kernel:"${S}"/kernel)
+ kvm-intel(extra:"${S}"/kernel:"${S}"/kernel)
+ kvm-amd(extra:"${S}"/kernel:"${S}"/kernel)"
+
+QA_TEXTRELS="usr/bin/qemu
+ usr/bin/qemu-system-sparc
+ usr/bin/qemu-system-arm
+ usr/bin/qemu-system-ppc
+ usr/bin/qemu-system-mips
+ usr/bin/qemu-system-x86_64"
+QA_EXECSTACK="usr/share/kvm/openbios-sparc32"
+QA_WX_LOAD="usr/share/kvm/openbios-sparc32"
+
+src_unpack() {
+ # Don't continue if the KVM modules that come with the kernel are compiled
+ if linux_chkconfig_present KVM ; then
+ eerror "${P} doesn't work with the kernel modules"
+ die "${PN} module is included in the kernel"
+ fi
+ unpack ${A}
+ cd "${S}"
+
+ # Change script to change some options.
+ epatch ${FILESDIR}/kvm-kvm.patch
+ # Improve the ifup script to allow for non-root use, etc.
+ epatch ${FILESDIR}/scripts-qemu-ifup.patch
+ # Change the path to the network stuff to /etc/kvm
+ epatch ${FILESDIR}/qemu-vl.c.patch
+ # Change the DATADIR to kvm instead of qemu
+ epatch ${FILESDIR}/qemu-configure.patch
+}
+
+src_compile() {
+ # fix make install to not install modules
+ sed -i -e '/$(kcmd)/d' ${WORKDIR}/${P}/Makefile
+
+ # The included qemu is not intended to run without kvm. Thus, we can use
+ # gcc4 as well and disable the gcc-check for gcc3.
+ conf_opts="--prefix=/usr --disable-gcc-check --qemu-cc=gcc"
+
+ linux-mod_pkg_setup
+
+ # Non-standard configure script. So econf doesn't work here.
+ ./configure ${conf_opts} || die "Configure failed"
+
+ linux-mod_src_compile
+
+ emake user qemu || die "make failed"
+}
+
+src_install() {
+ # fix make install to not install modules
+ sed -i -e '/$(kcmd)/d' ${WORKDIR}/${P}/Makefile
+
+ emake DESTDIR="${D}" install || die "make install failed"
+ linux-mod_src_install
+
+ exeinto /usr/bin/
+ doexe ${S}/kvm ${S}/kvm_stat
+
+ mv ${D}/usr/share/doc/qemu ${D}/usr/share/doc/kvm
+ mv ${D}/usr/share/man/man1/qemu.1 ${D}/usr/share/man/man1/kvm.1
+
+ insinto /etc/udev/rules.d/
+ doins ${WORKDIR}/${P}/scripts/65-kvm.rules
+
+ insinto /etc/kvm/
+ insopts -m0755
+ doins ${WORKDIR}/${P}/scripts/qemu-ifup
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+ enewgroup kvm
+
+ elog "Make sure you have the kernel module loaded before running kvm."
+ elog "The easiest way to ensure that the kernel module is loaded is to load it"
+ elog "on boot."
+ elog "For AMD CPUs:"
+ elog "echo kvm-amd >> /etc/modules.autoload.d/kernel-2.6"
+ elog "For Intel CPUs:"
+ elog "echo kvm-intel >> /etc/modules.autoload.d/kernel-2.6"
+ echo
+ elog "Make sure your user is in the 'kvm' group"
+ elog "Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
+ echo
+ elog "If qemu complains about not having a 1024 Hz timer, then run this:"
+ elog "echo dev.rtc.max-user-freq=1024 >> /etc/sysctl.conf"
+ echo
+ elog "If you want network support in the guest OS, you'll need to make"
+ elog "sure you compile in support for 802.1d Ethernet Bridging in the "
+ elog "kernel, set up a bridge network interface and make sure you"
+ elog "compile Universal TUN/TAP device driver support as a kernel module"
+ elog "and make it load on boot:"
+ elog "echo tun >> /etc/modules.autoload.d/kernel-2.6"
+}