summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@gentoo.org>2012-01-25 06:29:42 +0000
committerDoug Goldstein <cardoe@gentoo.org>2012-01-25 06:29:42 +0000
commitf0e67d4450a2107368127816d29c7be4e4be3091 (patch)
tree85ec50fe5df6c2c9afe7d8a54a6bb7d3bec12944 /app-emulation
parentversion bump (diff)
downloadhistorical-f0e67d4450a2107368127816d29c7be4e4be3091.tar.gz
historical-f0e67d4450a2107368127816d29c7be4e4be3091.tar.bz2
historical-f0e67d4450a2107368127816d29c7be4e4be3091.zip
Fix for bug #400595 / CVE-2012-0029.
Package-Manager: portage-2.1.10.44/cvs/Linux x86_64
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/qemu-kvm/ChangeLog9
-rw-r--r--app-emulation/qemu-kvm/Manifest6
-rw-r--r--app-emulation/qemu-kvm/files/qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch37
-rw-r--r--app-emulation/qemu-kvm/qemu-kvm-1.0-r2.ebuild (renamed from app-emulation/qemu-kvm/qemu-kvm-1.0-r1.ebuild)5
-rw-r--r--app-emulation/qemu-kvm/qemu-kvm-1.0.ebuild340
5 files changed, 52 insertions, 345 deletions
diff --git a/app-emulation/qemu-kvm/ChangeLog b/app-emulation/qemu-kvm/ChangeLog
index 863afc05d541..8ef64e15b14c 100644
--- a/app-emulation/qemu-kvm/ChangeLog
+++ b/app-emulation/qemu-kvm/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-emulation/qemu-kvm
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/ChangeLog,v 1.92 2012/01/25 06:04:47 cardoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/ChangeLog,v 1.93 2012/01/25 06:29:42 cardoe Exp $
+
+*qemu-kvm-1.0-r2 (25 Jan 2012)
+
+ 25 Jan 2012; Doug Goldstein <cardoe@gentoo.org> -qemu-kvm-1.0.ebuild,
+ -qemu-kvm-1.0-r1.ebuild, +qemu-kvm-1.0-r2.ebuild,
+ +files/qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch:
+ Fix for bug #400595 / CVE-2012-0029.
25 Jan 2012; Doug Goldstein <cardoe@gentoo.org> -qemu-kvm-0.15.0.ebuild:
Drop 0.15.0 since we favor 0.15.1 over it.
diff --git a/app-emulation/qemu-kvm/Manifest b/app-emulation/qemu-kvm/Manifest
index 519f87f80360..ef4f8d9befa8 100644
--- a/app-emulation/qemu-kvm/Manifest
+++ b/app-emulation/qemu-kvm/Manifest
@@ -4,6 +4,7 @@ AUX qemu-ifup 138 RMD160 1bdeae49d84b1c4ddad0294ebc790dba2836d6cf SHA1 5c84fa7bd
AUX qemu-kvm 61 RMD160 83882e881a067065258f562ad1e60440666c85d3 SHA1 a965f19031e303d583bd541c9d8fff2214262e6b SHA256 211d51f0a7d3d2ba8c53016c75e2b483feadbb65e383b1eec81d9cebf6a22c29
AUX qemu-kvm-0.12.3-fix-crash-with-sdl.patch 4003 RMD160 1e8965e94537e24d0903a7a096c91e35f7013118 SHA1 a6a36da9613d90d45148aa133392bd342b83d1cd SHA256 aeca9f133c021726c0e3ce2a58843ee12d592669143d0b75e46b8e301b5cf102
AUX qemu-kvm-0.12.3-include-madvise-defines.patch 274 RMD160 2b2b454fabc3b5362c0479d581e5fb038e02aa97 SHA1 c34b51b9c0b5a69ab2ab7a8a64c804f7cbbbebf5 SHA256 0d33d22a853e9b1d19786c9ac53a515587a9753ff69a2f53e61c4764590e7821
+AUX qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch 1412 RMD160 53749555d464e56cfab39b0fa2e8120ab2c024db SHA1 9046e72b8c7496840e340f6fc351434b8830f191 SHA256 9a06665c47b76b2501f148713c46f8ce0b14ed03da5e6cb03c0d141f5d91900a
AUX qemu-kvm-1.0-fix-nonkvm-arches.patch 742 RMD160 112937dafa2847d6d388ed33e539502d238ad098 SHA1 3f0a72d5441606b142907c41d47ec356483588e7 SHA256 3f2bf2def429453a8a9adbc2adf9d4f2e1d4c1f505ce0ade8f3810b74c281f02
AUX qemu-kvm-1.0-fix-qemu-system-ppc.patch 1071 RMD160 113a121abf72c9378f0c231e2e7739db3f2d5126 SHA1 64d55f9a7b56a523caa597c77b699eb02acbb81e SHA256 22a9e989806477e943a09a3ada01c9a6a739d3fdcf6226275c064db1037cb02f
AUX qemu-kvm-1.0-per-target-i8259.patch 2765 RMD160 53208c75291cf9d16eab990bacdc18e28ec44a13 SHA1 c347ff7fc737af004245d3671ae87c7869b95198 SHA256 42b5905f4e2f0bb5bcdca1e14a669941c2d70ffb1e0b6969b69fc4435772abb2
@@ -15,8 +16,7 @@ DIST qemu-kvm-0.15.1.tar.gz 5915998 RMD160 dba914ca40d6c63e9f3abce409d7daee1d333
DIST qemu-kvm-1.0.tar.gz 6210473 RMD160 6503b6ec9c8d89b785d644f5c4b47b4716e2fab7 SHA1 c16be4924c30747d93d609b7909e9e9239150c9a SHA256 b711ead5a0a28bf43e7e51ce2082e37120a3527ab012c609bc30fb94d37e116e
EBUILD qemu-kvm-0.14.1-r2.ebuild 9077 RMD160 7d9801a9213e1f28e7f8a4124231fc090917cfa6 SHA1 abcdb49577ce3d900493f55685b02ffe376f24e1 SHA256 d9906fbabb4ba264d5e011db8236e81cafe0e1126e9564550a7a4d1e69c9daba
EBUILD qemu-kvm-0.15.1-r1.ebuild 9645 RMD160 e3524ee32ab3eeca04aab58152277d48704213e7 SHA1 9f8f8e31950fd8d736ec4b7dbc666f1f3717b62f SHA256 92f90d761adaf317eeed54c1cdd8672e354ca92aa4fb65b1bb270284ad4a235d
-EBUILD qemu-kvm-1.0-r1.ebuild 11259 RMD160 0d04427a0b13217c46183c21143f32c90a84f81b SHA1 f2ed5fbf77b3229efa0653a8257130dd6f4a70ee SHA256 49ee93f1bc77f3c55a2baedd018630ab2015e29d58f323f5afd94e5b730c6f18
-EBUILD qemu-kvm-1.0.ebuild 10590 RMD160 514a2002aefeb31f86f1df437708444dff515604 SHA1 6c883f087c01889d77d687137eb79d4457198e87 SHA256 d912c8e2d54a83474160349e37cd6a1b1e6482ee093ea311f9309590b4caab67
+EBUILD qemu-kvm-1.0-r2.ebuild 11369 RMD160 9d258c343ea0e82993bd497e047925ac7c46b53d SHA1 e35973305add07591820981a1fbe6aa342c7fe22 SHA256 aef1aee37f4abb7c27298d7a218249564436fa0d09dfcced0e3beda244e8a061
EBUILD qemu-kvm-9999.ebuild 10720 RMD160 a694119758d8e1a39c2194698895cd125eec5b7b SHA1 70ef918efdf750af27c37cd98c348817b036ef6a SHA256 4c97df054a2e2a64a45b850f5deb435e5e294f1d17e003d0c39f6ca72b623d2f
-MISC ChangeLog 19364 RMD160 72f109314d5e793ac518d233f00f7bdce5e8aff8 SHA1 5f7439bfb91da8468f5dd4607b8e0d864e62afa2 SHA256 cade0f6acef37d0c1a122b2b8ab05adef270b04e4c4d672fb92302eb596a0207
+MISC ChangeLog 19634 RMD160 f61111e3da098f4f45a228f5968cc1e55b61e2a7 SHA1 211d885bf7ff61ee7bb6ce97ab31a0e88f2384ee SHA256 d6c4b0ac2cb1c741157fb573e1318dbf03ac9ecfa5d40bc45d6909bb4ff3bc73
MISC metadata.xml 1918 RMD160 9aeb9149cd322870ce6948a06def34c1d00418fa SHA1 c5f5a1921552afcad74d263920baac136b2d066f SHA256 5fdbde62a8fa400e9b7a9b0a5d5b5c8c398543dccb0ff6837bed23bf37887741
diff --git a/app-emulation/qemu-kvm/files/qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch b/app-emulation/qemu-kvm/files/qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch
new file mode 100644
index 000000000000..bd2bdc7425df
--- /dev/null
+++ b/app-emulation/qemu-kvm/files/qemu-kvm-1.0-e1000-bounds-packet-size-against-buffer-size.patch
@@ -0,0 +1,37 @@
+From d0ed2d2e8e863a9a64c9fc9c08fa68bee546ad00 Mon Sep 17 00:00:00 2001
+From: Anthony Liguori <aliguori@us.ibm.com>
+Date: Mon, 23 Jan 2012 07:30:43 -0600
+Subject: [PATCH 26/26] e1000: bounds packet size against buffer size
+
+Otherwise we can write beyond the buffer and corrupt memory. This is tracked
+as CVE-2012-0029.
+
+Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
+---
+ hw/e1000.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/hw/e1000.c b/hw/e1000.c
+index 986ed9c..e164d79 100644
+--- a/hw/e1000.c
++++ b/hw/e1000.c
+@@ -466,6 +466,8 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
+ bytes = split_size;
+ if (tp->size + bytes > msh)
+ bytes = msh - tp->size;
++
++ bytes = MIN(sizeof(tp->data) - tp->size, bytes);
+ pci_dma_read(&s->dev, addr, tp->data + tp->size, bytes);
+ if ((sz = tp->size + bytes) >= hdr && tp->size < hdr)
+ memmove(tp->header, tp->data, hdr);
+@@ -481,6 +483,7 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
+ // context descriptor TSE is not set, while data descriptor TSE is set
+ DBGOUT(TXERR, "TCP segmentaion Error\n");
+ } else {
++ split_size = MIN(sizeof(tp->data) - tp->size, split_size);
+ pci_dma_read(&s->dev, addr, tp->data + tp->size, split_size);
+ tp->size += split_size;
+ }
+--
+1.7.7.6
+
diff --git a/app-emulation/qemu-kvm/qemu-kvm-1.0-r1.ebuild b/app-emulation/qemu-kvm/qemu-kvm-1.0-r2.ebuild
index 6488ba7cd620..d35b6afdd125 100644
--- a/app-emulation/qemu-kvm/qemu-kvm-1.0-r1.ebuild
+++ b/app-emulation/qemu-kvm/qemu-kvm-1.0-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/qemu-kvm-1.0-r1.ebuild,v 1.2 2012/01/25 06:02:34 cardoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/qemu-kvm-1.0-r2.ebuild,v 1.1 2012/01/25 06:29:42 cardoe Exp $
#BACKPORTS=1
@@ -190,6 +190,9 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-1.0-fix-nonkvm-arches.patch
epatch "${FILESDIR}"/${PN}-1.0-fix-qemu-system-ppc.patch
+ # bug #400595 / CVE-2012-0029
+ epatch "${FILESDIR}"/${P}-e1000-bounds-packet-size-against-buffer-size.patch
+
[[ -n ${BACKPORTS} ]] && \
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
epatch
diff --git a/app-emulation/qemu-kvm/qemu-kvm-1.0.ebuild b/app-emulation/qemu-kvm/qemu-kvm-1.0.ebuild
deleted file mode 100644
index a7fc640d9af2..000000000000
--- a/app-emulation/qemu-kvm/qemu-kvm-1.0.ebuild
+++ /dev/null
@@ -1,340 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/qemu-kvm-1.0.ebuild,v 1.7 2012/01/24 20:59:56 slyfox Exp $
-
-#BACKPORTS=1
-
-EAPI="3"
-
-if [[ ${PV} = *9999* ]]; then
-# EGIT_REPO_URI="git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git"
- EGIT_REPO_URI="git://github.com/avikivity/kvm.git"
- GIT_ECLASS="git-2"
-fi
-
-inherit eutils flag-o-matic ${GIT_ECLASS} linux-info toolchain-funcs multilib python
-
-if [[ ${PV} = *9999* ]]; then
- SRC_URI=""
- KEYWORDS=""
-else
- SRC_URI="mirror://sourceforge/kvm/${PN}/${P}.tar.gz
- ${BACKPORTS:+
- http://dev.gentoo.org/~flameeyes/${PN}/${P}-backports-${BACKPORTS}.tar.bz2
- http://dev.gentoo.org/~cardoe/distfiles/${P}-backports-${BACKPORTS}.tar.bz2}"
- KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-fi
-
-DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
-HOMEPAGE="http://www.linux-kvm.org"
-
-LICENSE="GPL-2"
-SLOT="0"
-# xen is disabled until the deps are fixed
-IUSE="+aio alsa bluetooth brltty curl debug esd fdt hardened jpeg ncurses nss \
-opengl png pulseaudio qemu-ifup rbd sasl sdl spice ssl threads vde \
-+vhost-net xattr xen"
-# static, depends on libsdl being built with USE=static-libs, which can not
-# be expressed in current EAPI's
-
-COMMON_TARGETS="i386 x86_64 arm cris m68k microblaze mips mipsel ppc ppc64 sh4 sh4eb sparc sparc64"
-IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} mips64 mips64el ppcemb"
-IUSE_USER_TARGETS="${COMMON_TARGETS} alpha armeb ppc64abi32 sparc32plus"
-
-# Setup the default SoftMMU targets, while using the loops
-# below to setup the other targets. x86_64 should be the only
-# defaults on for qemu-kvm
-IUSE="${IUSE} +qemu_softmmu_targets_x86_64"
-
-for target in ${IUSE_SOFTMMU_TARGETS}; do
- if [ "x${target}" = "xx86_64" ]; then
- continue
- fi
- IUSE="${IUSE} qemu_softmmu_targets_${target}"
-done
-
-for target in ${IUSE_USER_TARGETS}; do
- IUSE="${IUSE} qemu_user_targets_${target}"
-done
-
-RESTRICT="test"
-
-RDEPEND="
- !app-emulation/kqemu
- !app-emulation/qemu
- !app-emulation/qemu-user
- >=dev-libs/glib-2.0
- sys-apps/pciutils
- >=sys-apps/util-linux-2.16.0
- sys-libs/zlib
- amd64? ( sys-apps/seabios )
- x86? ( sys-apps/seabios )
- aio? ( dev-libs/libaio )
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- bluetooth? ( net-wireless/bluez )
- brltty? ( app-accessibility/brltty )
- curl? ( >=net-misc/curl-7.15.4 )
- esd? ( media-sound/esound )
- fdt? ( >=sys-apps/dtc-1.2.0 )
- jpeg? ( virtual/jpeg )
- ncurses? ( sys-libs/ncurses )
- nss? ( dev-libs/nss )
- opengl? ( virtual/opengl )
- png? ( media-libs/libpng )
- pulseaudio? ( media-sound/pulseaudio )
- qemu-ifup? ( sys-apps/iproute2 net-misc/bridge-utils )
- rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
- sdl? ( >=media-libs/libsdl-1.2.11[X] )
- spice? ( >=app-emulation/spice-0.9.0
- >=app-emulation/spice-protocol-0.8.1 )
- ssl? ( net-libs/gnutls )
- vde? ( net-misc/vde )
- xattr? ( sys-apps/attr )
- xen? ( app-emulation/xen-tools )
-"
-
-DEPEND="${RDEPEND}
- app-text/texi2html
- dev-util/pkgconfig
- >=sys-kernel/linux-headers-2.6.35"
-
-STRIP_MASK="/usr/share/qemu/palcode-clipper"
-
-QA_PRESTRIPPED="
- usr/share/qemu/openbios-ppc
- usr/share/qemu/openbios-sparc64
- usr/share/qemu/openbios-sparc32
- usr/share/qemu/palcode-clipper"
-
-QA_WX_LOAD="${QA_PRESTRIPPED}
- usr/bin/qemu-i386
- usr/bin/qemu-x86_64
- usr/bin/qemu-alpha
- usr/bin/qemu-arm
- usr/bin/qemu-cris
- usr/bin/qemu-m68k
- usr/bin/qemu-microblaze
- usr/bin/qemu-mips
- usr/bin/qemu-mipsel
- usr/bin/qemu-ppc
- usr/bin/qemu-ppc64
- usr/bin/qemu-ppc64abi32
- usr/bin/qemu-sh4
- usr/bin/qemu-sh4eb
- usr/bin/qemu-sparc
- usr/bin/qemu-sparc64
- usr/bin/qemu-armeb
- usr/bin/qemu-sparc32plus"
-
-kvm_kern_warn() {
- eerror "Please enable KVM support in your kernel, found at:"
- eerror
- eerror " Virtualization"
- eerror " Kernel-based Virtual Machine (KVM) support"
- eerror
-}
-
-pkg_pretend() {
- if ! use qemu_softmmu_targets_x86_64 && use amd64 ; then
- eerror "You disabled default target QEMU_SOFTMMU_TARGETS=x86_64"
- fi
-
- if ! use qemu_softmmu_targets_x86_64 && use x86 ; then
- eerror "You disabled default target QEMU_SOFTMMU_TARGETS=x86_64"
- fi
-
- if kernel_is lt 2 6 25; then
- eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
- eerror "Either upgrade your kernel"
- else
- if ! linux_config_exists; then
- eerror "Unable to check your kernel for KVM support"
- kvm_kern_warn
- elif ! linux_chkconfig_present KVM; then
- kvm_kern_warn
- fi
- if use vhost-net && ! linux_chkconfig_present VHOST_NET ; then
- ewarn "You have to enable CONFIG_VHOST_NET in the kernel"
- ewarn "to have vhost-net support."
- fi
- fi
-}
-
-pkg_setup() {
-
- python_set_active_version 2
-
- enewgroup kvm
-}
-
-src_prepare() {
- # prevent docs to get automatically installed
- sed -i '/$(DESTDIR)$(docdir)/d' Makefile || die
- # Alter target makefiles to accept CFLAGS set via flag-o
- sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \
- Makefile Makefile.target || die
- # append CFLAGS while linking
- sed -i 's/$(LDFLAGS)/$(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS)/' rules.mak || die
-
- # remove part to make udev happy
- sed -e 's~NAME="%k", ~~' -i kvm/scripts/65-kvm.rules || die
-
- # ${PN}-guest-hang-on-usb-add.patch was sent by Timothy Jones
- # to the qemu-devel ml - bug 337988
- epatch "${FILESDIR}/qemu-0.11.0-mips64-user-fix.patch"
-
- epatch "${FILESDIR}"/${PN}-1.0-per-target-i8259.patch #400597
- epatch "${FILESDIR}"/${PN}-1.0-fix-nonkvm-arches.patch
- epatch "${FILESDIR}"/${PN}-1.0-fix-qemu-system-ppc.patch
-
- [[ -n ${BACKPORTS} ]] && \
- EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
- epatch
-}
-
-src_configure() {
- local conf_opts audio_opts user_targets
-
- for target in ${IUSE_SOFTMMU_TARGETS} ; do
- use "qemu_softmmu_targets_${target}" && \
- softmmu_targets="${softmmu_targets} ${target}-softmmu"
- done
-
- for target in ${IUSE_USER_TARGETS} ; do
- use "qemu_user_targets_${target}" && \
- user_targets="${user_targets} ${target}-linux-user"
- done
-
- if [ -z "${softmmu_targets}" ]; then
- eerror "All SoftMMU targets are disabled. This is invalid for qemu-kvm"
- die "At least 1 SoftMMU target must be enabled"
- else
- einfo "Building the following softmmu targets: ${softmmu_targets}"
- fi
-
- if [ ! -z "${user_targets}" ]; then
- einfo "Building the following user targets: ${user_targets}"
- conf_opts="${conf_opts} --enable-linux-user"
- else
- conf_opts="${conf_opts} --disable-linux-user"
- fi
-
- # Fix QA issues. QEMU needs executable heaps and we need to mark it as such
- conf_opts="${conf_opts} --extra-ldflags=-Wl,-z,execheap"
-
- # Add support for static builds
- #use static && conf_opts="${conf_opts} --static"
-
- # Support debug USE flag
- use debug && conf_opts="${conf_opts} --enable-debug --disable-strip"
-
- # Fix the $(prefix)/etc issue
- conf_opts="${conf_opts} --sysconfdir=/etc"
-
- #config options
- conf_opts="${conf_opts} $(use_enable aio linux-aio)"
- conf_opts="${conf_opts} $(use_enable bluetooth bluez)"
- conf_opts="${conf_opts} $(use_enable brltty brlapi)"
- conf_opts="${conf_opts} $(use_enable curl)"
- conf_opts="${conf_opts} $(use_enable fdt)"
- conf_opts="${conf_opts} $(use_enable hardened pie)"
- conf_opts="${conf_opts} $(use_enable jpeg vnc-jpeg)"
- conf_opts="${conf_opts} $(use_enable ncurses curses)"
- conf_opts="${conf_opts} $(use_enable nss smartcard-nss)"
- conf_opts="${conf_opts} $(use_enable opengl)"
- conf_opts="${conf_opts} $(use_enable png vnc-png)"
- conf_opts="${conf_opts} $(use_enable rbd)"
- conf_opts="${conf_opts} $(use_enable sasl vnc-sasl)"
- conf_opts="${conf_opts} $(use_enable sdl)"
- conf_opts="${conf_opts} $(use_enable spice)"
- conf_opts="${conf_opts} $(use_enable ssl vnc-tls)"
- conf_opts="${conf_opts} $(use_enable threads vnc-thread)"
- conf_opts="${conf_opts} $(use_enable vde)"
- conf_opts="${conf_opts} $(use_enable vhost-net)"
- conf_opts="${conf_opts} $(use_enable xen)"
- conf_opts="${conf_opts} $(use_enable xattr attr)"
- conf_opts="${conf_opts} --disable-darwin-user --disable-bsd-user"
-
- # audio options
- audio_opts="oss"
- use alsa && audio_opts="alsa ${audio_opts}"
- use esd && audio_opts="esd ${audio_opts}"
- use pulseaudio && audio_opts="pa ${audio_opts}"
- use sdl && audio_opts="sdl ${audio_opts}"
- ./configure --prefix=/usr \
- --disable-strip \
- --disable-werror \
- --enable-kvm \
- --enable-nptl \
- --enable-uuid \
- ${conf_opts} \
- --audio-drv-list="${audio_opts}" \
- --target-list="${softmmu_targets} ${user_targets}" \
- --cc="$(tc-getCC)" \
- --host-cc="$(tc-getBUILD_CC)" \
- || die "configure failed"
-
- # this is for qemu upstream's threaded support which is
- # in development and broken
- # the kvm project has its own support for threaded IO
- # which is always on and works
- # --enable-io-thread \
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "make install failed"
-
- if [ ! -z "${softmmu_targets}" ]; then
- insinto /lib/udev/rules.d/
- doins kvm/scripts/65-kvm.rules || die
-
- if use qemu-ifup; then
- insinto /etc/qemu/
- insopts -m0755
- doins kvm/scripts/qemu-ifup || die
- fi
-
- if use qemu_softmmu_targets_x86_64 ; then
- dobin "${FILESDIR}"/qemu-kvm
- dosym /usr/bin/qemu-kvm /usr/bin/kvm
- else
- elog "You disabled QEMU_SOFTMMU_TARGETS=x86_64, this disables install"
- elog "of /usr/bin/qemu-kvm and /usr/bin/kvm"
- fi
- fi
-
- dodoc Changelog MAINTAINERS TODO pci-ids.txt || die
- newdoc pc-bios/README README.pc-bios || die
- dohtml qemu-doc.html qemu-tech.html || die
-
- # FIXME: Need to come up with a solution for non-x86 based systems
- if use x86 || use amd64; then
- # Remove SeaBIOS since we're using the SeaBIOS packaged one
- rm "${D}/usr/share/qemu/bios.bin"
- dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
- fi
-}
-
-pkg_postinst() {
-
- if [ ! -z "${softmmu_targets}" ]; then
- elog "If you don't have kvm compiled into the kernel, make sure you have"
- elog "the kernel module loaded before running kvm. The easiest way to"
- elog "ensure that the kernel module is loaded is to load it on boot."
- elog "For AMD CPUs the module is called 'kvm-amd'"
- elog "For Intel CPUs the module is called 'kvm-intel'"
- elog "Please review /etc/conf.d/modules for how to load these"
- elog
- elog "Make sure your user is in the 'kvm' group"
- elog "Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
- elog
- elog "You will need the Universal TUN/TAP driver compiled into your"
- elog "kernel or loaded as a module to use the virtual network device"
- elog "if using -net tap. You will also need support for 802.1d"
- elog "Ethernet Bridging and a configured bridge if using the provided"
- elog "kvm-ifup script from /etc/kvm."
- elog
- elog "The gnutls use flag was renamed to ssl, so adjust your use flags."
- fi
-}