|
|
|
@ -1,9 +1,11 @@
|
|
|
|
|
# Copyright 1999-2014 Gentoo Foundation
|
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-2.0.0-r1.ebuild,v 1.2 2014/05/31 16:14:44 vapier Exp $
|
|
|
|
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-2.1.0.ebuild,v 1.1 2014/08/04 06:45:21 vapier Exp $
|
|
|
|
|
|
|
|
|
|
EAPI=5
|
|
|
|
|
|
|
|
|
|
#MY_P="${P/_/-}"
|
|
|
|
|
|
|
|
|
|
PYTHON_COMPAT=( python{2_6,2_7} )
|
|
|
|
|
PYTHON_REQ_USE="ncurses,readline"
|
|
|
|
|
|
|
|
|
@ -31,10 +33,10 @@ LICENSE="GPL-2 LGPL-2 BSD-2"
|
|
|
|
|
SLOT="0"
|
|
|
|
|
IUSE="accessibility +aio alsa bluetooth +caps +curl debug +fdt glusterfs \
|
|
|
|
|
gtk iscsi +jpeg \
|
|
|
|
|
kernel_linux kernel_FreeBSD ncurses opengl +png pulseaudio python \
|
|
|
|
|
rbd sasl +seccomp sdl selinux smartcard spice ssh static static-softmmu \
|
|
|
|
|
static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \
|
|
|
|
|
virtfs +vnc xattr xen xfs"
|
|
|
|
|
kernel_linux kernel_FreeBSD lzo ncurses nls numa opengl +png pulseaudio python \
|
|
|
|
|
rbd sasl +seccomp sdl selinux smartcard snappy spice ssh static static-softmmu \
|
|
|
|
|
static-user systemtap tci test +threads tpm tls usb usbredir +uuid vde \
|
|
|
|
|
+vhost-net virtfs +vnc xattr xen xfs"
|
|
|
|
|
|
|
|
|
|
COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips
|
|
|
|
|
mips64 mips64el mipsel or32 ppc ppc64 s390x sh4 sh4eb sparc sparc64 unicore32
|
|
|
|
@ -71,12 +73,14 @@ SOFTMMU_LIB_DEPEND="${COMMON_LIB_DEPEND}
|
|
|
|
|
fdt? ( >=sys-apps/dtc-1.4.0[static-libs(+)] )
|
|
|
|
|
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
|
|
|
|
jpeg? ( virtual/jpeg[static-libs(+)] )
|
|
|
|
|
lzo? ( dev-libs/lzo[static-libs(+)] )
|
|
|
|
|
ncurses? ( sys-libs/ncurses[static-libs(+)] )
|
|
|
|
|
png? ( media-libs/libpng[static-libs(+)] )
|
|
|
|
|
rbd? ( sys-cluster/ceph[static-libs(+)] )
|
|
|
|
|
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
|
|
|
|
sdl? ( >=media-libs/libsdl-1.2.11[static-libs(+)] )
|
|
|
|
|
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
|
|
|
|
snappy? ( app-arch/snappy[static-libs(+)] )
|
|
|
|
|
spice? ( >=app-emulation/spice-0.12.0[static-libs(+)] )
|
|
|
|
|
ssh? ( >=net-libs/libssh2-1.2.8[static-libs(+)] )
|
|
|
|
|
tls? ( net-libs/gnutls[static-libs(+)] )
|
|
|
|
@ -123,6 +127,7 @@ DEPEND="${RDEPEND}
|
|
|
|
|
sys-apps/texinfo
|
|
|
|
|
virtual/pkgconfig
|
|
|
|
|
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
|
|
|
|
gtk? ( nls? ( sys-devel/gettext ) )
|
|
|
|
|
static-softmmu? ( ${SOFTMMU_LIB_DEPEND} )
|
|
|
|
|
static-user? ( ${USER_LIB_DEPEND} )
|
|
|
|
|
test? (
|
|
|
|
@ -228,19 +233,18 @@ pkg_setup() {
|
|
|
|
|
enewgroup kvm 78
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#S="${WORKDIR}/${MY_P}"
|
|
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
|
# Alter target makefiles to accept CFLAGS set via flag-o
|
|
|
|
|
sed -i -r \
|
|
|
|
|
-e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
|
|
|
|
|
Makefile Makefile.target || die
|
|
|
|
|
|
|
|
|
|
# Cheap hack to disable gettext .mo generation.
|
|
|
|
|
use nls || rm -f po/*.po
|
|
|
|
|
|
|
|
|
|
epatch "${FILESDIR}"/qemu-1.7.0-cflags.patch
|
|
|
|
|
epatch "${FILESDIR}"/qemu-9999-virtfs-proxy-helper-accept.patch #486714
|
|
|
|
|
epatch "${FILESDIR}"/${P}-CVE-2013-4541.patch #510208
|
|
|
|
|
epatch "${FILESDIR}"/${P}-usb-post-load-checks.patch #510208
|
|
|
|
|
epatch "${FILESDIR}"/${P}-qcow-check-max-sizes.patch #510234
|
|
|
|
|
epatch "${FILESDIR}"/${P}-CVE-2014-0222.patch #510234
|
|
|
|
|
epatch "${FILESDIR}"/${P}-CVE-2014-0223.patch #510234
|
|
|
|
|
[[ -n ${BACKPORTS} ]] && \
|
|
|
|
|
EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
|
|
|
|
|
epatch
|
|
|
|
@ -301,11 +305,15 @@ qemu_src_configure() {
|
|
|
|
|
--disable-curses
|
|
|
|
|
--disable-kvm
|
|
|
|
|
--disable-libiscsi
|
|
|
|
|
--disable-lzo
|
|
|
|
|
--disable-glusterfs
|
|
|
|
|
--disable-numa
|
|
|
|
|
--disable-snappy
|
|
|
|
|
--disable-seccomp
|
|
|
|
|
--disable-sdl
|
|
|
|
|
--disable-smartcard-nss
|
|
|
|
|
--disable-tools
|
|
|
|
|
--disable-tpm
|
|
|
|
|
--disable-vde
|
|
|
|
|
--disable-libssh2
|
|
|
|
|
--disable-libusb
|
|
|
|
@ -329,15 +337,19 @@ qemu_src_configure() {
|
|
|
|
|
$(use_enable iscsi libiscsi)
|
|
|
|
|
$(use_enable jpeg vnc-jpeg)
|
|
|
|
|
$(use_enable kernel_linux kvm)
|
|
|
|
|
$(use_enable lzo)
|
|
|
|
|
$(use_enable ncurses curses)
|
|
|
|
|
$(use_enable numa)
|
|
|
|
|
$(use_enable opengl glx)
|
|
|
|
|
$(use_enable png vnc-png)
|
|
|
|
|
$(use_enable rbd)
|
|
|
|
|
$(use_enable sasl vnc-sasl)
|
|
|
|
|
$(use_enable seccomp)
|
|
|
|
|
$(use_enable smartcard smartcard-nss)
|
|
|
|
|
$(use_enable snappy)
|
|
|
|
|
$(use_enable spice)
|
|
|
|
|
$(use_enable ssh libssh2)
|
|
|
|
|
$(use_enable tpm)
|
|
|
|
|
$(use_enable tls vnc-tls)
|
|
|
|
|
$(use_enable tls vnc-ws)
|
|
|
|
|
$(use_enable usb libusb)
|
|
|
|
@ -433,6 +445,7 @@ src_compile() {
|
|
|
|
|
src_test() {
|
|
|
|
|
if [[ -n ${softmmu_targets} ]]; then
|
|
|
|
|
cd "${S}/softmmu-build"
|
|
|
|
|
pax-mark m */qemu-system-* #515550
|
|
|
|
|
emake -j1 check
|
|
|
|
|
emake -j1 check-report.html
|
|
|
|
|
fi
|
|
|
|
@ -490,58 +503,58 @@ src_install() {
|
|
|
|
|
dodoc docs/qmp/*.txt
|
|
|
|
|
|
|
|
|
|
# Remove SeaBIOS since we're using the SeaBIOS packaged ones
|
|
|
|
|
rm "${ED}/usr/share/qemu/bios.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/bios-256k.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/kvmvapic.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/linuxboot.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/multiboot.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/acpi-dsdt.aml"
|
|
|
|
|
rm "${ED}/usr/share/qemu/q35-acpi-dsdt.aml"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
|
|
|
|
|
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
|
|
|
|
dosym ../seabios/kvmvapic.bin /usr/share/qemu/kvmvapic.bin
|
|
|
|
|
dosym ../seabios/linuxboot.bin /usr/share/qemu/linuxboot.bin
|
|
|
|
|
dosym ../seabios/multiboot.bin /usr/share/qemu/multiboot.bin
|
|
|
|
|
dosym ../seabios/acpi-dsdt.aml /usr/share/qemu/acpi-dsdt.aml
|
|
|
|
|
dosym ../seabios/q35-acpi-dsdt.aml /usr/share/qemu/q35-acpi-dsdt.aml
|
|
|
|
|
fi
|
|
|
|
|
if [[ -n ${softmmu_targets} ]]; then
|
|
|
|
|
rm "${ED}/usr/share/qemu/bios.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/bios-256k.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/kvmvapic.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/linuxboot.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/multiboot.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/acpi-dsdt.aml"
|
|
|
|
|
rm "${ED}/usr/share/qemu/q35-acpi-dsdt.aml"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
|
|
|
|
|
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
|
|
|
|
dosym ../seabios/kvmvapic.bin /usr/share/qemu/kvmvapic.bin
|
|
|
|
|
dosym ../seabios/linuxboot.bin /usr/share/qemu/linuxboot.bin
|
|
|
|
|
dosym ../seabios/multiboot.bin /usr/share/qemu/multiboot.bin
|
|
|
|
|
dosym ../seabios/acpi-dsdt.aml /usr/share/qemu/acpi-dsdt.aml
|
|
|
|
|
dosym ../seabios/q35-acpi-dsdt.aml /usr/share/qemu/q35-acpi-dsdt.aml
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Remove vgabios since we're using the seabios packaged one
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../seabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
|
|
|
|
dosym ../seabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
|
|
|
|
dosym ../seabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
|
|
|
|
dosym ../seabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
|
|
|
|
fi
|
|
|
|
|
# Remove vgabios since we're using the seabios packaged one
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
|
|
|
|
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../seabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
|
|
|
|
dosym ../seabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
|
|
|
|
dosym ../seabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
|
|
|
|
dosym ../seabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Remove sgabios since we're using the sgabios packaged one
|
|
|
|
|
rm "${ED}/usr/share/qemu/sgabios.bin"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
|
|
|
|
fi
|
|
|
|
|
# Remove sgabios since we're using the sgabios packaged one
|
|
|
|
|
rm "${ED}/usr/share/qemu/sgabios.bin"
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Remove iPXE since we're using the iPXE packaged one
|
|
|
|
|
rm "${ED}"/usr/share/qemu/pxe-*.rom
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
|
|
|
|
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
|
|
|
|
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
|
|
|
|
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
|
|
|
|
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
|
|
|
|
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
|
|
|
|
# Remove iPXE since we're using the iPXE packaged one
|
|
|
|
|
rm "${ED}"/usr/share/qemu/pxe-*.rom
|
|
|
|
|
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
|
|
|
|
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
|
|
|
|
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
|
|
|
|
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
|
|
|
|
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
|
|
|
|
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
|
|
|
|
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
qemu_support_kvm && readme.gentoo_create_doc
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pkg_postinst() {
|
|
|
|
|
local virtfs_caps=
|
|
|
|
|
|
|
|
|
|
if qemu_support_kvm; then
|
|
|
|
|
readme.gentoo_print_elog
|
|
|
|
|
ewarn "Migration from qemu-kvm instances and loading qemu-kvm created"
|
|
|
|
@ -561,11 +574,11 @@ pkg_postinst() {
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
virtfs_caps+="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,"
|
|
|
|
|
virtfs_caps+="cap_setgid,cap_mknod,cap_setuid"
|
|
|
|
|
|
|
|
|
|
fcaps cap_net_admin /usr/libexec/qemu-bridge-helper
|
|
|
|
|
use virtfs && fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
|
|
|
|
|
if use virtfs && [ -n "${softmmu_targets}" ]; then
|
|
|
|
|
local virtfs_caps="cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_setgid,cap_mknod,cap_setuid"
|
|
|
|
|
fcaps ${virtfs_caps} /usr/bin/virtfs-proxy-helper
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pkg_info() {
|