From 741134de863bb3ad7094488633edc95e150ee779 Mon Sep 17 00:00:00 2001 From: grimmlin Date: Fri, 21 Jan 2011 16:23:16 +0000 Subject: [PATCH] qemu-charm: an easy arm chroot setup for x86 qemu-kvm: cleaned up --- app-emulation/qemu-charm/Manifest | 4 + app-emulation/qemu-charm/files/charm | 30 +++ app-emulation/qemu-charm/files/qemu-wrapper.c | 16 ++ .../qemu-charm/qemu-charm-0.13.0.ebuild | 148 ++++++++++ app-emulation/qemu-kvm/Manifest | 8 - .../files/qemu-0.11.0-mips64-user-fix.patch | 11 - app-emulation/qemu-kvm/files/qemu-kvm | 2 - .../qemu-kvm-0.12.3-fix-crash-with-sdl.patch | 145 ---------- ...u-kvm-0.12.3-include-madvise-defines.patch | 12 - .../qemu-kvm/qemu-kvm-0.12.5-r1.ebuild | 255 ------------------ app-emulation/qemu-kvm/qemu-kvm-9999.ebuild | 252 ----------------- 11 files changed, 198 insertions(+), 685 deletions(-) create mode 100644 app-emulation/qemu-charm/Manifest create mode 100644 app-emulation/qemu-charm/files/charm create mode 100644 app-emulation/qemu-charm/files/qemu-wrapper.c create mode 100644 app-emulation/qemu-charm/qemu-charm-0.13.0.ebuild delete mode 100644 app-emulation/qemu-kvm/Manifest delete mode 100644 app-emulation/qemu-kvm/files/qemu-0.11.0-mips64-user-fix.patch delete mode 100644 app-emulation/qemu-kvm/files/qemu-kvm delete mode 100644 app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-fix-crash-with-sdl.patch delete mode 100644 app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-include-madvise-defines.patch delete mode 100644 app-emulation/qemu-kvm/qemu-kvm-0.12.5-r1.ebuild delete mode 100644 app-emulation/qemu-kvm/qemu-kvm-9999.ebuild diff --git a/app-emulation/qemu-charm/Manifest b/app-emulation/qemu-charm/Manifest new file mode 100644 index 000000000..e3d8ba36c --- /dev/null +++ b/app-emulation/qemu-charm/Manifest @@ -0,0 +1,4 @@ +AUX charm 2640 RMD160 bd8d75bf02c8ae626768ef0acab6cf4b64a6e9e0 SHA1 6a41598896d5c476d3192b715e35367a9b2f8827 SHA256 dbd898abf8be5564abfa6d80eddfe55ec9ef374b98ad768c89d9d363ed56a5e0 +AUX qemu-wrapper.c 406 RMD160 60add959b4970cfaa8a81cac9acf3f5936f2b79a SHA1 75e73c07e71af7773be26301d5767408357680fe SHA256 1caba8996cdd24a3e8584963f6a8df844a208a329478f88bc8b863b4df822453 +DIST qemu-0.13.0.tar.gz 5184531 RMD160 4a6faaf38d5616fb7bedc1a6408de1dbb3ec360c SHA1 250bba1fdb505a787c48331b6b02f54282edfc76 SHA256 1e6f5851b05cea6e377c835f4668408d4124cfb845f9948d922808743c5fd877 +EBUILD qemu-charm-0.13.0.ebuild 4725 RMD160 a0ae5f22e2f9ea1ae2e629928be985b27e03a9f4 SHA1 bf5036a2027a5431103925f1842ffff14383b61b SHA256 e7ae7daeafc74c485940564d8ed48485ec0ab8ff69bda2d84482800cd2528877 diff --git a/app-emulation/qemu-charm/files/charm b/app-emulation/qemu-charm/files/charm new file mode 100644 index 000000000..9481545f5 --- /dev/null +++ b/app-emulation/qemu-charm/files/charm @@ -0,0 +1,30 @@ +#!/bin/sh + +[ -z $1 ] && exit 1 + +[ -d /proc/sys/fs/binfmt_misc ] || modprobe binfmt_misc +[ -f /proc/sys/fs/binfmt_misc/register ] || mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc +echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu-wrapper:' > /proc/sys/fs/binfmt_misc/register +#echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register +#echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register +#echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register +#echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register +#echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register +#echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff:/usr/bin/qemu-sh4:' >/proc/sys/fs/binfmt_misc/register +#echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb:' >/proc/sys/fs/binfmt_misc/register +#echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register + +mount --bind /usr/portage $1/usr/portage +[ -d /usr/local/portage ] && mount --bind /usr/local/portage $1/usr/local/portage +mount --bind /proc $1/proc +mount --bind /sys $1/sys +#mount -t tmpfs tmpfs $1/var/tmp/portage +chroot $1 /bin/busybox mdev -s +chroot $1 /bin/bash --login +# (Unmount stuff when not in use) +umount $1/usr/local/portage +#umount $1/var/tmp/portage +umount $1/usr/portage +umount $1/sys +umount $1/proc + diff --git a/app-emulation/qemu-charm/files/qemu-wrapper.c b/app-emulation/qemu-charm/files/qemu-wrapper.c new file mode 100644 index 000000000..4e5d46335 --- /dev/null +++ b/app-emulation/qemu-charm/files/qemu-wrapper.c @@ -0,0 +1,16 @@ +#include +#include +#include + +int main(int argc, char **argv, char **envp) { + char *newargv[argc + 3]; + + newargv[0] = argv[0]; + newargv[1] = "-cpu"; + newargv[2] = "ARMCPU"; + + memcpy(&newargv[3], &argv[1], sizeof(*argv) * (argc - 1)); + newargv[argc + 2] = NULL; + return execve("/usr/bin/qemu-arm", newargv, envp); +} + diff --git a/app-emulation/qemu-charm/qemu-charm-0.13.0.ebuild b/app-emulation/qemu-charm/qemu-charm-0.13.0.ebuild new file mode 100644 index 000000000..f9c51c167 --- /dev/null +++ b/app-emulation/qemu-charm/qemu-charm-0.13.0.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2010 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.2 2010/01/05 23:58:40 flameeyes Exp $ + +EAPI="2" + +inherit eutils flag-o-matic toolchain-funcs + +DESCRIPTION="QEMU arm user-land emulation for CHroot ARM setup on x86*" +HOMEPAGE="http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=5" +SRC_URI="http://wiki.qemu.org/download/${P/-charm/}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-*" +IUSE="+static +cortex-a8 -cortex-a9" +S=${WORKDIR}/${P/-charm/} +# See the content of the configure script of QEmu +# Those in IUSE_USER_TARGETS are Linux specific + +COMMON_TARGETS="arm" +IUSE_SOFTMMU_TARGETS="" +IUSE_USER_TARGETS="${COMMON_TARGETS}" + +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-kvm[qemu_user_targets_arm]" +DEPEND="${RDEPEND} + sys-libs/zlib + app-text/texi2html" + +src_prepare() { + cp "${FILESDIR}/qemu-wrapper.c" "${S}" + if use cortex-a8; then + if use cortex-a9; then + die "You must chose either cortex-a8 or a9 implementation" + fi + sed -e 's/ARMCPU/cortex-a8/' -i "${S}/qemu-wrapper.c" + elif use cortex-a9; then + sed -e 's/ARMCPU/cortex-a9/' -i "${S}/qemu-wrapper.c" + else + die "You must chose either cortex-a8 or a9 implementation" + fi + + # 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 +} + +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 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-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 + + + conf_opts="$conf_opts --prefix=/usr" + + target_list="${softmmu_targets} ${user_targets}" + + use static && conf_opts="${conf_opts} --static" + + 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" + gcc -static qemu-wrapper.c -o qemu-wrapper +} + +src_install() { + cd "${S}" + dobin arm-linux-user/qemu-arm + insinto / + insopts -m755 + doins qemu-wrapper +# dodoc Changelog MAINTAINERS TODO pci-ids.txt || die +} + +pkg_postinst() { + elog "It is strongly encouraged to read" + elog "http://www.gentoo.org/proj/en/base/embedded/handbook/?part=1&chap=5" + elog "This package takes care of section 1.1 and 1.4" + elog "" + elog "Now you can download an arm stage3 and uncompress it somewhere." + elog "Build a binpkg from this one: quickpkg ${P}" + elog "And emerg eit to the unpacked arm stage3:" + elog "ROOT=path_to_arm_stage3/ emerge -K ${P}" + elog "There is a chroot script in ${FILESDIR}/charm to help chroot everytime" + elog "The chroot script takes care of 1.2 and part of 1.3" + echo +} diff --git a/app-emulation/qemu-kvm/Manifest b/app-emulation/qemu-kvm/Manifest deleted file mode 100644 index bc82d6b4e..000000000 --- a/app-emulation/qemu-kvm/Manifest +++ /dev/null @@ -1,8 +0,0 @@ -AUX qemu-0.11.0-mips64-user-fix.patch 313 RMD160 db016e0a48990a435dd6cf6e807145b33ada4908 SHA1 2ea913b1bcd29734a6d4011794bdb4aa3599a184 SHA256 b4173fc177bd0d0ba67f5551a3512047a19a9b2c0a122f968e32fbd834848d2f -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 -DIST qemu-kvm-0.12.5-backports-1.tar.bz2 3668 RMD160 59e1d7e3d64377e2b77faf26c45206fbde4ee847 SHA1 5a4eb644243d11a96c2430546f7335c780ec9243 SHA256 c822969f0a86106d5cba97fae33c76eeea0bcc3ea13d617647474557ed0e4dbf -DIST qemu-kvm-0.12.5.tar.gz 4722351 RMD160 dc2686e70384a40601589cac2f2665254240710a SHA1 c316ac8a1b040e28275bf34911fbce14209c1563 SHA256 24c085aecbc784ea8b4837ca02bfe5086c7f91c8a88a0f607826692234af583f -EBUILD qemu-kvm-0.12.5-r1.ebuild 7911 RMD160 f78f0cf82f7d0f308d51150a83a6bba5daea851d SHA1 02b4a3ddda4d11a4e2893d403a7b6e2ec5b0713d SHA256 f3c8a721f106a28f679cd0bd920fd2920458dffe1d431dfb408537ced0182ec4 -EBUILD qemu-kvm-9999.ebuild 7954 RMD160 4637e692e9df562f5db88b3c2561ca8a2ce9361f SHA1 76eaa4e457dc83602582c710cf86e8022edd1835 SHA256 80090bf54711b22278380ebe5a043583caa4a2db1676210020fe7e1b3098baa1 diff --git a/app-emulation/qemu-kvm/files/qemu-0.11.0-mips64-user-fix.patch b/app-emulation/qemu-kvm/files/qemu-0.11.0-mips64-user-fix.patch deleted file mode 100644 index c069f898c..000000000 --- a/app-emulation/qemu-kvm/files/qemu-0.11.0-mips64-user-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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[] = { diff --git a/app-emulation/qemu-kvm/files/qemu-kvm b/app-emulation/qemu-kvm/files/qemu-kvm deleted file mode 100644 index 844147d56..000000000 --- a/app-emulation/qemu-kvm/files/qemu-kvm +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec /usr/bin/qemu-system-x86_64 --enable-kvm "$@" diff --git a/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-fix-crash-with-sdl.patch b/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-fix-crash-with-sdl.patch deleted file mode 100644 index 909deadf4..000000000 --- a/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-fix-crash-with-sdl.patch +++ /dev/null @@ -1,145 +0,0 @@ -From ff5414990645653bf43bf64adfc1ca77ffb9edcb Mon Sep 17 00:00:00 2001 -From: malc -Date: Sun, 17 Jan 2010 00:25:29 +0300 -Subject: [PATCH] Revert "sdlaudio: make it suck less" - -This reverts commit 4839abe78fd466a3cf06faa7c362154afd5404f1. - -The commit was badly broken, Gentoo has sdl as the default driver, -consequently 5 gentoo users have hit the breakage and were kind enough -to report, so thank you: - -Claes Gyllenswrd -vekin -Chris - -But above all thanks to Toralf Foerster who actually provied enough -information to pinpoint the breakage to sdlaudio. - -http://bugs.gentoo.org/show_bug.cgi?id=294269 ---- - audio/sdlaudio.c | 80 +++++++++++++++++++++++++++++++++-------------------- - 1 files changed, 50 insertions(+), 30 deletions(-) - -diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c -index aa39c33..8e7e5cb 100644 ---- a/audio/sdlaudio.c -+++ b/audio/sdlaudio.c -@@ -41,8 +41,8 @@ - typedef struct SDLVoiceOut { - HWVoiceOut hw; - int live; -+ int rpos; - int decr; -- int pending; - } SDLVoiceOut; - - static struct { -@@ -225,10 +225,6 @@ static void sdl_callback (void *opaque, Uint8 *buf, int len) - HWVoiceOut *hw = &sdl->hw; - int samples = len >> hw->info.shift; - -- if (sdl_lock (s, "sdl_callback")) { -- return; -- } -- - if (s->exit) { - return; - } -@@ -236,34 +232,49 @@ static void sdl_callback (void *opaque, Uint8 *buf, int len) - while (samples) { - int to_mix, decr; - -- while (!sdl->pending) { -- if (sdl_unlock (s, "sdl_callback")) { -- return; -- } -- -- sdl_wait (s, "sdl_callback"); -- if (s->exit) { -- return; -- } -- -- if (sdl_lock (s, "sdl_callback")) { -- return; -- } -- sdl->pending += sdl->live; -- sdl->live = 0; -+ /* dolog ("in callback samples=%d\n", samples); */ -+ sdl_wait (s, "sdl_callback"); -+ if (s->exit) { -+ return; -+ } -+ -+ if (sdl_lock (s, "sdl_callback")) { -+ return; -+ } -+ -+ if (audio_bug (AUDIO_FUNC, sdl->live < 0 || sdl->live > hw->samples)) { -+ dolog ("sdl->live=%d hw->samples=%d\n", -+ sdl->live, hw->samples); -+ return; -+ } -+ -+ if (!sdl->live) { -+ goto again; - } - -- to_mix = audio_MIN (samples, sdl->pending); -- decr = audio_pcm_hw_clip_out (hw, buf, to_mix, 0); -- buf += decr << hw->info.shift; -+ /* dolog ("in callback live=%d\n", live); */ -+ to_mix = audio_MIN (samples, sdl->live); -+ decr = to_mix; -+ while (to_mix) { -+ int chunk = audio_MIN (to_mix, hw->samples - hw->rpos); -+ struct st_sample *src = hw->mix_buf + hw->rpos; -+ -+ /* dolog ("in callback to_mix %d, chunk %d\n", to_mix, chunk); */ -+ hw->clip (buf, src, chunk); -+ sdl->rpos = (sdl->rpos + chunk) % hw->samples; -+ to_mix -= chunk; -+ buf += chunk << hw->info.shift; -+ } - samples -= decr; -+ sdl->live -= decr; - sdl->decr += decr; -- sdl->pending -= decr; -- } - -- if (sdl_unlock (s, "sdl_callback")) { -- return; -+ again: -+ if (sdl_unlock (s, "sdl_callback")) { -+ return; -+ } - } -+ /* dolog ("done len=%d\n", len); */ - } - - static int sdl_write_out (SWVoiceOut *sw, void *buf, int len) -@@ -281,9 +292,18 @@ static int sdl_run_out (HWVoiceOut *hw, int live) - return 0; - } - -- sdl->live = live; -- decr = sdl->decr; -- sdl->decr = 0; -+ if (sdl->decr > live) { -+ ldebug ("sdl->decr %d live %d sdl->live %d\n", -+ sdl->decr, -+ live, -+ sdl->live); -+ } -+ -+ decr = audio_MIN (sdl->decr, live); -+ sdl->decr -= decr; -+ -+ sdl->live = live - decr; -+ hw->rpos = sdl->rpos; - - if (sdl->live > 0) { - sdl_unlock_and_post (s, "sdl_run_out"); --- -1.7.0.4 - diff --git a/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-include-madvise-defines.patch b/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-include-madvise-defines.patch deleted file mode 100644 index c50c7172f..000000000 --- a/app-emulation/qemu-kvm/files/qemu-kvm-0.12.3-include-madvise-defines.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- exec.c 2010-02-26 03:34:00.000000000 +0100 -+++ exec.c.new 2010-04-03 15:31:53.000000000 +0200 -@@ -22,6 +22,9 @@ - #else - #include - #include -+#ifndef MADV_MERGEABLE -+#include -+#endif - #endif - #include - #include diff --git a/app-emulation/qemu-kvm/qemu-kvm-0.12.5-r1.ebuild b/app-emulation/qemu-kvm/qemu-kvm-0.12.5-r1.ebuild deleted file mode 100644 index cfc801ee9..000000000 --- a/app-emulation/qemu-kvm/qemu-kvm-0.12.5-r1.ebuild +++ /dev/null @@ -1,255 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/qemu-kvm-0.12.5-r1.ebuild,v 1.5 2010/09/06 10:56:40 jmbsvicetto Exp $ - -BACKPORTS=1 - -EAPI="2" - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git" - GIT_ECLASS="git" -fi - -inherit eutils flag-o-matic ${GIT_ECLASS} linux-info toolchain-funcs - -if [[ ${PV} = *9999* ]]; then - SRC_URI="" - KEYWORDS="" -else - SRC_URI="mirror://sourceforge/kvm/${PN}/${P}.tar.gz - ${BACKPORTS:+mirror://gentoo/${P}-backports-${BACKPORTS}.tar.bz2}" - KEYWORDS="~amd64 ~arm ~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 -# charm keeps only static-bins -IUSE="+aio alsa bluetooth brltty charm curl esd fdt hardened kvm-trace \ -ncurses pulseaudio qemu-ifup sasl sdl ssl static vde" - -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" - -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 - -RESTRICT="test" - -RDEPEND=" - !app-emulation/kqemu - !arm? ( !app-emulation/qemu ) - !app-emulation/qemu-softmmu - !app-emulation/qemu-user - !app-emulation/qemu-kvm-spice - sys-apps/pciutils - >=sys-apps/util-linux-2.16.0 - sys-libs/zlib - aio? ( dev-libs/libaio ) - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - bluetooth? ( net-wireless/bluez ) - brltty? ( app-accessibility/brltty ) - curl? ( net-misc/curl ) - esd? ( media-sound/esound ) - fdt? ( sys-apps/dtc ) - ncurses? ( sys-libs/ncurses ) - pulseaudio? ( media-sound/pulseaudio ) - qemu-ifup? ( sys-apps/iproute2 net-misc/bridge-utils ) - sasl? ( dev-libs/cyrus-sasl ) - sdl? ( >=media-libs/libsdl-1.2.11[X] ) - ssl? ( net-libs/gnutls ) - vde? ( net-misc/vde ) -" - -DEPEND="${RDEPEND} - app-text/texi2html - >=sys-kernel/linux-headers-2.6.29 - ssl? ( dev-util/pkgconfig ) -" - -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_setup() { - - local counter="0" check - use qemu_softmmu_targets_x86_64 || ewarn "You disabled default target QEMU_SOFTMMU_TARGETS=x86_64" - for check in ${IUSE_SOFTMMU_TARGETS} ; do - use "qemu_softmmu_targets_${check}" && counter="1" - done -# [[ ${counter} == 0 ]] && die "You need to set at least 1 target in QEMU_SOFTMMU_TARGETS" - - 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 - fi - - 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 - - epatch "${FILESDIR}"/qemu-0.11.0-mips64-user-fix.patch \ - "${FILESDIR}"/${PN}-0.12.3-fix-crash-with-sdl.patch \ - "${FILESDIR}"/${PN}-0.12.3-include-madvise-defines.patch - - [[ -n ${BACKPORTS} ]] && \ - EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \ - epatch -} - -src_configure() { - local conf_opts audio_opts softmmu_targets 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 - 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" - - #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 user-pie)" - use kvm-trace && conf_opts="${conf_opts} --with-kvm-trace" - conf_opts="${conf_opts} $(use_enable ncurses curses)" - conf_opts="${conf_opts} $(use_enable sasl vnc-sasl)" - conf_opts="${conf_opts} $(use_enable sdl)" - conf_opts="${conf_opts} $(use_enable ssl vnc-tls)" - conf_opts="${conf_opts} $(use_enable vde)" -# conf_opts="${conf_opts} $(use_enable xen)" - conf_opts="${conf_opts} --disable-xen" - 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 \ - --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" - -# --enable-kvm \ - - # 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() { - if use charm; then - dobin arm-linux-user/qemu-arm - return - else - emake DESTDIR="${D}" install || die "make install failed" - fi - - insinto /etc/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 - - dodoc Changelog MAINTAINERS TODO pci-ids.txt || die - newdoc pc-bios/README README.pc-bios || die - dohtml qemu-doc.html qemu-tech.html || die - - 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 -} - -pkg_postinst() { - 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 kvm', then have 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." - echo -} diff --git a/app-emulation/qemu-kvm/qemu-kvm-9999.ebuild b/app-emulation/qemu-kvm/qemu-kvm-9999.ebuild deleted file mode 100644 index 82d981713..000000000 --- a/app-emulation/qemu-kvm/qemu-kvm-9999.ebuild +++ /dev/null @@ -1,252 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/qemu-kvm/qemu-kvm-9999.ebuild,v 1.12 2010/09/06 11:07:09 jmbsvicetto Exp $ - -EAPI="2" - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git" - GIT_ECLASS="git" -fi - -inherit eutils flag-o-matic ${GIT_ECLASS} linux-info toolchain-funcs - -if [[ ${PV} = *9999* ]]; then - SRC_URI="" - KEYWORDS="" -else - SRC_URI="mirror://sourceforge/kvm/${PN}/${P}.tar.gz - ${BACKPORTS:+mirror://gentoo/${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 esd fdt hardened jpeg ncurses \ -png pulseaudio qemu-ifup sasl sdl ssl static vde xen" - -# Updated targets to use the only supported upstream target - x86_64-softmmu -COMMON_TARGETS="" -IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} x86_64" -IUSE_USER_TARGETS="" -#COMMON_TARGETS="i386 arm cris m68k microblaze mips mipsel ppc ppc64 sh4 sh4eb sparc sparc64" -#IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} x86_64 mips64 mips64el ppcemb" -#IUSE_USER_TARGETS="${COMMON_TARGETS} alpha armeb ppc64abi32 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 - -RESTRICT="test" - -RDEPEND=" - !app-emulation/kqemu - !app-emulation/qemu - !app-emulation/qemu-softmmu - !app-emulation/qemu-user - !app-emulation/qemu-kvm-spice - sys-apps/pciutils - >=sys-apps/util-linux-2.16.0 - sys-libs/zlib - aio? ( dev-libs/libaio ) - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - bluetooth? ( net-wireless/bluez ) - brltty? ( app-accessibility/brltty ) - curl? ( net-misc/curl ) - esd? ( media-sound/esound ) - fdt? ( sys-apps/dtc ) - jpeg? ( media-libs/jpeg ) - ncurses? ( sys-libs/ncurses ) - png? ( media-libs/libpng ) - pulseaudio? ( media-sound/pulseaudio ) - qemu-ifup? ( sys-apps/iproute2 net-misc/bridge-utils ) - sasl? ( dev-libs/cyrus-sasl ) - sdl? ( >=media-libs/libsdl-1.2.11[X] ) - ssl? ( net-libs/gnutls ) - vde? ( net-misc/vde ) - xen? ( app-emulation/xen ) -" - -DEPEND="${RDEPEND} - app-text/texi2html - >=sys-kernel/linux-headers-2.6.29 - ssl? ( dev-util/pkgconfig ) -" - -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_setup() { - - local counter="0" check - use qemu_softmmu_targets_x86_64 || ewarn "You disabled default target QEMU_SOFTMMU_TARGETS=x86_64" - for check in ${IUSE_SOFTMMU_TARGETS} ; do - use "qemu_softmmu_targets_${check}" && counter="1" - done - [[ ${counter} == 0 ]] && die "You need to set at least 1 target in QEMU_SOFTMMU_TARGETS" - - 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" - die "qemu-kvm version not compatible" - 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 - fi - - 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 - - epatch "${FILESDIR}/qemu-0.11.0-mips64-user-fix.patch" -} - -src_configure() { - local conf_opts audio_opts softmmu_targets 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 - 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" - - # 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 user-pie)" - conf_opts="${conf_opts} $(use_enable jpeg vnc-jpeg)" - conf_opts="${conf_opts} $(use_enable ncurses curses)" - conf_opts="${conf_opts} $(use_enable png vnc-png)" - conf_opts="${conf_opts} $(use_enable sasl vnc-sasl)" - conf_opts="${conf_opts} $(use_enable sdl)" - conf_opts="${conf_opts} $(use_enable ssl vnc-tls)" - conf_opts="${conf_opts} $(use_enable vde)" - conf_opts="${conf_opts} $(use_enable xen)" -# conf_opts="${conf_opts} --disable-xen" - 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 \ - --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" - - insinto /etc/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 - - dodoc Changelog MAINTAINERS TODO pci-ids.txt || die - newdoc pc-bios/README README.pc-bios || die - dohtml qemu-doc.html qemu-tech.html || die - - 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 -} - -pkg_postinst() { - 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 kvm', then have 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." - echo -}