|
|
|
@ -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() { |