--- qemu-2.0.0-r1.ebuild 2014-06-06 05:01:05.000000000 +0300 +++ qemu-2.0.0-r2.ebuild 2014-07-05 18:04:46.893039544 +0300 @@ -33,7 +33,7 @@ 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 \ +static-user binfmt-wrapper systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net \ virtfs +vnc xattr xen xfs" COMMON_TARGETS="aarch64 alpha arm cris i386 m68k microblaze microblazeel mips @@ -58,6 +58,7 @@ qemu_softmmu_targets_ppc64? ( fdt ) static? ( static-softmmu static-user ) static-softmmu? ( !alsa !pulseaudio !bluetooth !opengl !gtk ) + binfmt-wrapper? ( static-user ) virtfs? ( xattr )" # Yep, you need both libcap and libcap-ng since virtfs only uses libcap. @@ -142,27 +143,49 @@ usr/share/qemu/s390-ccw.img" QA_WX_LOAD="usr/bin/qemu-i386 + usr/bin/qemu-i386-binfmt-wrapper usr/bin/qemu-x86_64 + usr/bin/qemu-x86_64-binfmt-wrapper usr/bin/qemu-alpha + usr/bin/qemu-alpha-binfmt-wrapper usr/bin/qemu-arm + usr/bin/qemu-arm-binfmt-wrapper usr/bin/qemu-cris + usr/bin/qemu-cris-binfmt-wrapper usr/bin/qemu-m68k + usr/bin/qemu-m68k-binfmt-wrapper usr/bin/qemu-microblaze + usr/bin/qemu-microblaze-binfmt-wrapper usr/bin/qemu-microblazeel + usr/bin/qemu-microblazeel-binfmt-wrapper usr/bin/qemu-mips + usr/bin/qemu-mips-binfmt-wrapper usr/bin/qemu-mipsel + usr/bin/qemu-mipsel-binfmt-wrapper usr/bin/qemu-or32 + usr/bin/qemu-or32-binfmt-wrapper usr/bin/qemu-ppc + usr/bin/qemu-ppc-binfmt-wrapper usr/bin/qemu-ppc64 + usr/bin/qemu-ppc64-binfmt-wrapper usr/bin/qemu-ppc64abi32 + usr/bin/qemu-ppc64abi32-binfmt-wrapper usr/bin/qemu-sh4 + usr/bin/qemu-sh4-binfmt-wrapper usr/bin/qemu-sh4eb + usr/bin/qemu-sh4eb-binfmt-wrapper usr/bin/qemu-sparc + usr/bin/qemu-sparc-binfmt-wrapper usr/bin/qemu-sparc64 + usr/bin/qemu-sparc64-binfmt-wrapper usr/bin/qemu-armeb + usr/bin/qemu-armeb-binfmt-wrapper usr/bin/qemu-sparc32plus + usr/bin/qemu-sparc32plus-binfmt-wrapper usr/bin/qemu-s390x - usr/bin/qemu-unicore32" + usr/bin/qemu-s390x-binfmt-wrapper + usr/bin/qemu-unicore32 + usr/bin/qemu-unicore32-binfmt-wrapper" DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the kernel module loaded before running kvm. The easiest way to @@ -243,6 +266,11 @@ 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 + + if use binfmt-wrapper; then + epatch "${FILESDIR}"/${PN}-9999-binfmt-wrapper.patch + fi + [[ -n ${BACKPORTS} ]] && \ EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \ epatch @@ -400,6 +428,10 @@ if use "qemu_user_targets_${target}"; then user_targets+=",${target}-linux-user" user_bins+=( "qemu-${target}" ) + + if use binfmt-wrapper; then + user_bins+=( "qemu-${target}-binfmt-wrapper" ) + fi fi done @@ -456,6 +488,10 @@ # Install binfmt handler init script for user targets newinitd "${FILESDIR}/qemu-binfmt.initd-r1" qemu-binfmt + + if use binfmt-wrapper; then + newinitd "${FILESDIR}/qemu-binfmt-wrapper.initd-r1" qemu-binfmt-wrapper + fi fi if [[ -n ${softmmu_targets} ]]; then