Skip to content

Commit

Permalink
Qemu-0.15 is here ;)
Browse files Browse the repository at this point in the history
  • Loading branch information
adessemond committed Aug 26, 2011
1 parent 949d9d6 commit 65cce14
Show file tree
Hide file tree
Showing 9 changed files with 834 additions and 0 deletions.
11 changes: 11 additions & 0 deletions app-emulation/qemu/Manifest
@@ -0,0 +1,11 @@
AUX qemu-0.11.0-mips64-user-fix.patch 313 RMD160 db016e0a48990a435dd6cf6e807145b33ada4908 SHA1 2ea913b1bcd29734a6d4011794bdb4aa3599a184 SHA256 b4173fc177bd0d0ba67f5551a3512047a19a9b2c0a122f968e32fbd834848d2f
AUX qemu-ifdown 478 RMD160 2187fbf352e6b84686f0cf0e9e9ebe5d26359858 SHA1 1daccb4785fe503687562798f90be1414267e27d SHA256 7d90c39184fd7531d9b8ae787122b68ac768b41afeb0ef2b3baa6461f77af03d
AUX qemu-ifup 554 RMD160 9769d79ab6456bdd7e3e689005f629e2a67b858d SHA1 dde2b27acabe6fe23ca40f90ff6950bb12a4b506 SHA256 eae9b50680442acc29c65a245a2d26a63756ad4cb894e08cb5ea249686801f1d
DIST qemu-0.11.1.tar.gz 3830070 RMD160 4da00fa6c01d7ff6af0ee781bc9260da577ea7d3 SHA1 7b983cd18f44c6e7627532b662f010389d3bcdff SHA256 2ecd2fc0af2ce5d96067ae82cc98a08275c596de53fc929484bedee1d6e7893a
DIST qemu-0.14.0.tar.gz 5439695 RMD160 1409264387e4cfe45143e10dd77b2574935e2d78 SHA1 cf8d916436d4b8775289399648e1f0ca9d867d18 SHA256 ba21e84d7853217830e167dae9999cdbff481189c6a0bb600ac7fb7201453108
DIST qemu-0.15.0.tar.gz 9577243 RMD160 f33048765e48e1dc6413ef079df99944b2329211 SHA1 57a7269b58544054a90b158225fce05fe1d04a85 SHA256 0197e52dba07aeb6dfe0343b0c2ae08ed374d2cb0af3bb9ec73fed5baa0cb74d
EBUILD qemu-0.11.1.ebuild 4908 RMD160 1662fa8fe1b4d4571b5ae00a5e3be7fcd8af77e4 SHA1 dcdee575c6aa2a79835d7776b6d687c4d9e13b5b SHA256 e3e9eaa84bbe061bb7966e0bb3b1f371cb177ec9982ef658aab378f5b5ff4fd1
EBUILD qemu-0.14.0.ebuild 6013 RMD160 12e4d03a3547eb852095f808e226e74cc2f34435 SHA1 f4d0999ac782a3b8d86cd71673efd0ad878f9160 SHA256 266e6dad0cf244a707e38a70bc583cc8d0412990b3b3c694d6c23f0b5d1f3355
EBUILD qemu-0.15.0.ebuild 6055 RMD160 f473d5a1bf2d90b1497cfc0b031b43cf13d8210f SHA1 9224ff3ce61f6ffae849e863c504ce61c0d09394 SHA256 fcc59a8f9f89814d18e489a6eece4ccf5283236869883efb48b13b8b19a6711f
EBUILD qemu-9999.ebuild 6011 RMD160 2fd36aaa4fb1fc7d50bf65980e2a5f31ad381094 SHA1 9700590e860b0b5addf85f48083ba0d542d1f504 SHA256 6a34ab18c7a985b61bb5d27ff6ddbf7e45c9cf5eabe4201283aa738f9c98e90c
MISC metadata.xml 1309 RMD160 c4d9c673a1afb3aaf558d3c45afe4f1d8f13e60d SHA1 9897fae7eff6ba5bf82579669751c5c60422b259 SHA256 097421ad2ed0435cdf6bb30c966eaac35a48c7ff085f94d83690eb1e77285366
11 changes: 11 additions & 0 deletions app-emulation/qemu/files/qemu-0.11.0-mips64-user-fix.patch
@@ -0,0 +1,11 @@
--- qemu-0.11.0.orig/linux-user/main.c 2009-10-23 02:19:57.000000000 +0200
+++ qemu-0.11.0/linux-user/main.c 2009-10-23 02:47:09.000000000 +0200
@@ -1469,6 +1469,8 @@

#ifdef TARGET_MIPS

+#define TARGET_QEMU_ESIGRETURN 255
+
#define MIPS_SYS(name, args) args,

static const uint8_t mips_syscall_args[] = {
20 changes: 20 additions & 0 deletions app-emulation/qemu/files/qemu-ifdown
@@ -0,0 +1,20 @@
#!/bin/sh

if [ -x /sbin/brctl ]; then
BRCTL="/sbin/brctl"
elif [ -x /usr/sbin/brctl ]; then
BRCTL="/usr/sbin/brctl"
else
echo "no bridge utils installed"
exit 1
fi

if [ -x /sbin/ip ]; then
switch=( $(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }') )
${BRCTL} delif ${switch} $1
/sbin/ip link set $1 down
else
switch=( $(/bin/netstat -rn | awk '/^0\.0\.0\.0/ { print $NF }') )
${BRCTL} delif ${switch} $1
/sbin/ifconfig $1 down
fi
22 changes: 22 additions & 0 deletions app-emulation/qemu/files/qemu-ifup
@@ -0,0 +1,22 @@
#!/bin/sh

if [ -x /sbin/brctl ]; then
BRCTL="/sbin/brctl"
elif [ -x /usr/sbin/brctl ]; then
BRCTL="/usr/sbin/brctl"
else
echo "no bridge utils installed"
exit 1
fi

if [ -x /sbin/ip ]; then
switch=( $(/sbin/ip route list | awk '/^default / { sub(/.* dev /, ""); print $1 }') )
/sbin/ip link set $1 up
else
switch=( $(/bin/netstat -rn | awk '/^0\.0\.0\.0/ { print $NF }') )
/sbin/ifconfig $1 0.0.0.0 up
fi

[[ ${switch#} -ne "1" ]] && logger -t qemu "$0 found more than one bridge connecting $1 to ${switch}"
${BRCTL} addif ${switch} $1

26 changes: 26 additions & 0 deletions app-emulation/qemu/metadata.xml
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>qemu</herd>
<maintainer>
<email>lu_zero@gentoo.org</email>
</maintainer>
<use>
<flag name='aio'>Enables support for Linux's Async IO</flag>
<flag name='brltty'>Adds support for braille displays using brltty</flag>
<flag name='fdt'>Enables firmware device tree support</flag>
<flag name='kqemu'>Enables the kernel acceleration module on a x86/x86-64 cpu</flag>
<flag name='kvm'>Use the KVM (Kernel Virtual Machine) infrastructure on compatible hardware</flag>
<flag name='alsa'>Enable alsa output for sound emulation</flag>
<flag name='esd'>Enable esound output for sound emulation</flag>
<flag name='gnutls'>Enable TLS support for the VNC console server</flag>
<flag name='ncurses'>Enable the ncurses-based console</flag>
<flag name='pulseaudio'>Enable pulseaudio output for sound emulation</flag>
<flag name='qemu-ifup'>Provides the qemu-ifup script for use with
QEMU's built in bridging</flag>
<flag name='sdl'>Enable the SDL-based console</flag>
<flag name='static'>Enable static build, useful to chroot in user-mode
emulation</flag>
<flag name='vde'>Enable Virtual Distributed Ethernet (VDE) based networking</flag>
</use>
</pkgmetadata>
150 changes: 150 additions & 0 deletions app-emulation/qemu/qemu-0.11.1.ebuild
@@ -0,0 +1,150 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu/qemu-0.11.1.ebuild,v 1.5 2011/03/24 19:50:14 angelos Exp $

EAPI="2"

inherit eutils flag-o-matic toolchain-funcs linux-info

DESCRIPTION="QEMU emulator and ABI wrapper"
HOMEPAGE="http://www.qemu.org"
SRC_URI="http://download.savannah.gnu.org/releases/qemu/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc ~ppc64 x86"
IUSE="alsa bluetooth esd gnutls ncurses pulseaudio sasl +sdl vde kqemu kvm"

COMMON_TARGETS="i386 x86_64 arm cris m68k mips mipsel mips64 mips64el ppc ppc64 sh4 sh4eb sparc"

IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} ppcemb"
IUSE_USER_TARGETS="${COMMON_TARGETS} alpha armeb ppc64abi32 sparc64 sparc32plus"

for target in ${IUSE_SOFTMMU_TARGETS}; do
IUSE="${IUSE} +qemu_softmmu_targets_${target}"
done

for target in ${IUSE_USER_TARGETS}; do
IUSE="${IUSE} +qemu_user_targets_${target}"
done

RDEPEND="!app-emulation/qemu-softmmu
!app-emulation/qemu-user
!<app-emulation/qemu-0.10.3
sys-libs/zlib
alsa? ( >=media-libs/alsa-lib-1.0.13 )
esd? ( media-sound/esound )
pulseaudio? ( media-sound/pulseaudio )
gnutls? ( net-libs/gnutls )
ncurses? ( sys-libs/ncurses )
sasl? ( dev-libs/cyrus-sasl )
sdl? ( >=media-libs/libsdl-1.2.11 )
vde? ( net-misc/vde )
kvm? ( >=sys-kernel/linux-headers-2.6.29 )
bluetooth? ( net-wireless/bluez )
kqemu? ( >=app-emulation/kqemu-1.4.0_pre1 )"
# fdt? ( sys-apps/dtc )

DEPEND="${RDEPEND}
gnutls? ( dev-util/pkgconfig )
app-text/texi2html"

src_prepare() {
# avoid fdt till an updated release appears
sed -i -e 's:fdt="yes":fdt="no":' configure
# prevent docs to get automatically installed
sed -i '/$(DESTDIR)$(docdir)/d' Makefile
# Alter target makefiles to accept CFLAGS set via flag-o
sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \
Makefile Makefile.target tests/Makefile
[[ -x /sbin/paxctl ]] && \
sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \
Makefile.target
# Append CFLAGS while linking
sed -i 's/$(LDFLAGS)/$(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS)/' rules.mak
epatch "${FILESDIR}/qemu-0.11.0-mips64-user-fix.patch"
}

src_configure() {
local mycc conf_opts audio_opts softmmu_targets user_targets target_list

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

conf_opts="--disable-darwin-user --disable-bsd-user --disable-strip"

if test ! -z "${softmmu_targets}" ; then
einfo "Building following softmmu targets: ${softmmu_targets}"
use gnutls || conf_opts="$conf_opts --disable-vnc-tls"
use ncurses || conf_opts="$conf_opts --disable-curses"
use sasl || conf_opts="$conf_opts --disable-vnc-sasl"
use sdl || conf_opts="$conf_opts --disable-sdl"
use vde || conf_opts="$conf_opts --disable-vde"
use bluetooth || conf_opts="$conf_opts --disable-bluez"
use kqemu || conf_opts="$conf_opts --disable-kqemu"
use kvm || conf_opts="$conf_opts --disable-kvm"

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"
else
einfo "Disabling softmmu emulation (no softmmu targets specified)"
conf_opts="$conf_opts --disable-system --disable-vnc-tls \
--disable-curses --disable-sdl --disable-vde \
--disable-kqemu --disable-kvm"
fi

if test ! -z "${user_targets}" ; then
einfo "Building following user targets: ${user_targets}"
conf_opts="$conf_opts --enable-linux-user"
else
einfo "Disabling usermode emulation (no usermode targets specified)"
conf_opts="$conf_opts --disable-linux-user"
fi

# use fdt || conf_opts="$conf_opts --disable-fdt"

conf_opts="$conf_opts --prefix=/usr"

target_list="${softmmu_targets} ${user_targets}"

filter-flags -fPIE

./configure ${conf_opts} \
--audio-drv-list="$audio_opts" \
--cc="$(tc-getCC)" --host-cc="$(tc-getCC)" \
--target-list="${target_list}" \
|| die "configure failed"
}

src_install() {
emake DESTDIR="${D}" install || die "make install failed"

exeinto /etc/qemu
doexe \
"${FILESDIR}/qemu-ifup" \
"${FILESDIR}/qemu-ifdown" \
|| die "qemu interface scripts failed"

dodoc Changelog MAINTAINERS TODO pci-ids.txt || die
newdoc pc-bios/README README.pc-bios || die
dohtml qemu-doc.html qemu-tech.html || die
}

pkg_postinst() {
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 "qemu-ifup script from /etc/qemu."
echo
}

0 comments on commit 65cce14

Please sign in to comment.