diff options
Diffstat (limited to 'app-emulation/kvm/kvm-44.ebuild')
-rw-r--r-- | app-emulation/kvm/kvm-44.ebuild | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/app-emulation/kvm/kvm-44.ebuild b/app-emulation/kvm/kvm-44.ebuild new file mode 100644 index 0000000..792b7c4 --- /dev/null +++ b/app-emulation/kvm/kvm-44.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="~amd64 ~x86" +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" +} |