system/qemu: Updated for version 1.4.0.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Edward Koenig 2013-04-14 12:56:35 -05:00 committed by Robby Workman
parent 3e22552182
commit 7192accaa7
4 changed files with 82 additions and 32 deletions

2
system/qemu/65-kvm.rules Normal file
View file

@ -0,0 +1,2 @@
KERNEL=="kvm", GROUP="@GROUP@", MODE="0660"
KERNEL=="vhost-net", GROUP="@GROUP@", MODE="0660"

View file

@ -4,15 +4,24 @@ When used as a machine emulator, QEMU can run OSes and programs made for
one machine (e.g. an ARM board) on a different machine (e.g. your own PC).
By using dynamic translation, it achieves very good performances.
When used as a virtualizer, QEMU achieves near native performances by
executing the guest code directly on the host CPU. A host driver called
the QEMU accelerator (also known as KQEMU) is needed in this case
(contained in the optional dependency kqemu). The virtualizer mode
requires that both the host and guest machine use x86 compatible
processors.
qemu-kvm achieves near native performances by leveraging the kvm-kmod
modules and executing the guest code directly on the host CPU.
Slackware provides pre-built 32/64 bit x86 kvm-kmod modules or you can
build different versions with the kvm-kmod package.
qemu-kvm code has been merged back into qemu since version 1.3.0.
NOTE:
qemu builds man-pages at compile-time; to do so, /sbin must be in the
current $PATH. Be sure to run the script as root ( "su -" ).
By default, this script builds only the x86 and arm emulation targets
for qemu; if you prefer to build all supported targets, do this:
spice is an optional dependency.
TARGETS=all ./qemu.SlackBuild
We patch the installed udev rules to require membership in "users"
group instead of a custom "kvm" group to uses /dev/kvm. If you prefer
something different, then run the build script like this:
KVMGROUP=group ./qemu.SlackBuild
Don't forget to load the 'kvm-intel' or 'kvm-amd' module (depending on
your processor) prior to launching qemu-system-x86_64 with kvm enabled.
spice and usbredir are optional dependencies.

View file

@ -3,6 +3,7 @@
# Slackware build script for qemu
# Copyright 2009, 2010 Andrew Brouwers <abrouwers@gmail.com>
# Copyright 2013 Edward Koenig, Vancouver, USA <kingbeowulf@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -22,10 +23,15 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Modified by the SlackBuilds.org project
# Changelog
# 1.0 27-FEB-2013 New SBo maintainer
# 1.0 07-MAR-2013 updated to 1.4, includes qemu-kvm; thanks to
# rworkman and ponce for script ideas.
# 1.1 28-MAR-2013 fix missing docs per C. Willing and
# add missing --libdir (patched in qemu-trivial upstream)
PRGNAM=qemu
VERSION=${VERSION:-1.2.0}
VERSION=${VERSION:-1.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@ -45,17 +51,33 @@ OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
KVMARCH="i386"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
KVMARCH="i386"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
KVMARCH="x86_64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
# Enable only x86* and arm emulation for qemu: if you want to build
# all the targets available use TARGETS=all
if [ "${TARGETS:-}" = "all" ]; then
targets=""
else
targets="--target-list=i386-softmmu,x86_64-softmmu,i386-linux-user,x86_64-linux-user,arm-softmmu,arm-linux-user,armeb-linux-user"
fi
KVMGROUP=${KVMGROUP:-users}
# Needed to build man pages if built after plain "su"
export PATH=$PATH:/usr/share/texmf/bin
set -e
rm -rf $PKG
@ -67,38 +89,55 @@ cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
# To get the stable-1.0 patches, do this in git checkout of qemu:
# git format-patch v1.0.1..origin/stable-1.0
#for i in $CWD/patches/*.patch ; do patch -p1 < $i ; done
# Remove double CFLAGS
sed -i "s|^\ \ CFLAGS=\"-O2\ | CFLAGS=\"|" configure || exit 1
# Disable debug (hardcoded) and remove double CFLAGS
sed -i "s|^CFLAGS=\"-g\ |CFLAGS=\"|" configure
sed -i "s|^LDFLAGS=\"-g\ |LDFLAGS=\"|" configure
sed -i "s|^\ \ CFLAGS=\"-O2\ | CFLAGS=\"|" configure
# check if spice support is enabled
# check if spice is there
if pkg-config --exists spice-server ; then
with_spice="--enable-spice"
else
with_spice="--disable-spice"
fi
# --libdir isn't recognized and isn't needed anyway
# check if usbredir is there
if pkg-config --exists libusbredirhost ; then
with_usbredir="--enable-usb-redir"
else
with_usbredir="--disable-usb-redir"
fi
# --libdir is recognized but not advertised in --help
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--enable-system \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--enable-system \
--enable-kvm \
--enable-mixemu \
--disable-debug-info \
--audio-drv-list=alsa,oss,sdl,esd \
$with_spice
--audio-card-list=ac97,es1370,sb16,cs4231a,adlib,gus,hda \
$targets \
$with_spice \
$with_usbredir
make V=1 OS_CFLAGS="$SLKCFLAGS"
make OS_CFLAGS="$SLKCFLAGS"
make install DESTDIR=$PKG
# install some udev rules for /dev/kvm
mkdir -p $PKG/lib/udev/rules.d/
sed "s/@GROUP@/$KVMGROUP/" $CWD/65-kvm.rules \
> $PKG/lib/udev/rules.d/65-kvm.rules
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# create a symlink for qemu-kvm to support aqemu and such frontends
[ ! -z $KVMARCH ] && ln -s qemu-system-$KVMARCH $PKG/usr/bin/qemu-kvm
# move any generated man pages to their proper location
if [ -d $PKG/usr/share/man ]; then
mv $PKG/usr/share/man $PKG/usr
@ -107,8 +146,8 @@ fi
# Add docs, and if present, built documentation to the proper location
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a TODO README LICENSE COPYING COPYING.LIB MAINTAINERS \
$PKG/usr/doc/$PRGNAM-$VERSION
cp -a TODO README LICENSE COPYING COPYING.LIB MAINTAINERS $PKG/usr/doc/$PRGNAM-$VERSION
cp -a docs/* $PKG/usr/doc/$PRGNAM-$VERSION
if [ -d $PKG/usr/share/doc ]; then
mv $PKG/usr/share/doc/qemu/* $PKG/usr/doc/$PRGNAM-$VERSION/
rm -rf $PKG/usr/share/doc

View file

@ -1,10 +1,10 @@
PRGNAM="qemu"
VERSION="1.2.0"
VERSION="1.4.0"
HOMEPAGE="http://wiki.qemu.org/Main_Page"
DOWNLOAD="http://wiki.qemu.org/download/qemu-1.2.0.tar.bz2"
MD5SUM="78eb1e984f4532aa9f2bdd3c127b5b61"
DOWNLOAD="http://wiki.qemu.org/download/qemu-1.4.0.tar.bz2"
MD5SUM="78f13b774814b6b7ebcaf4f9b9204318"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Andrew Brouwers"
EMAIL="abrouwers@gmail.com"
MAINTAINER="Edward Koenig"
EMAIL="kingbeowulf@gmail.com"