From 4e0faecb13eb5e0dfb3a71dd5bf61d7ca1fa0ba1 Mon Sep 17 00:00:00 2001 From: Edward W. Koenig Date: Sun, 29 Jan 2017 15:30:33 +0700 Subject: system/qemu: Added qemu-bridge-helper setuid. Signed-off-by: Willy Sudiarto Raharjo --- system/qemu/README | 16 +++++++++++----- system/qemu/qemu.SlackBuild | 9 ++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/system/qemu/README b/system/qemu/README index cdefb92ffa..18c9543e9e 100644 --- a/system/qemu/README +++ b/system/qemu/README @@ -1,7 +1,7 @@ QEMU is a generic and open source machine emulator and virtualizer. 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). +one machine (e.g. an ARM board) on a different machine (e.g. your PC). By using dynamic translation, it achieves very good performances. qemu (with kvm enabled) achieves near native performances by leveraging @@ -18,9 +18,10 @@ Disable vnc support via: VNC_ENABLE=no ./qemu.SlackBuild -Audio drivers support defaults to "pa,alsa,oss,sdl" and can be adusted e.g. +Audio drivers support defaults to "pa,alsa,oss,sdl" and can be adusted +by running the build script like this: -AUDIODRIVERS="pa,alsa,oss" ./qemu.SlackBuild + AUDIODRIVERS="pa,alsa,oss" ./qemu.SlackBuild We patch the installed udev rules to require membership in "users" group instead of a custom "kvm" group to use /dev/kvm. If you prefer @@ -28,13 +29,18 @@ something different, then run the build script like this: KVMGROUP=group ./qemu.SlackBuild +To have the qemu-bridge-helper installed setuid root, allowing regular +users for using extended networking capabilities, do this: + + BRIDGE_HELPER_SETUID=yes ./qemu.SlackBuild + Don't forget to load the 'kvm-intel' or 'kvm-amd' module (depending on your processor) prior to launching qemu-system-ARCH with kvm enabled. For older/unmaintained qemu frontends, this build also creates a symlink to qemu-system-ARCH at /usr/bin/qemu-kvm. -libcacard, spice, usbredir, virglrenderer and device-tree-compiler are -optional dependencies. +libcacard, spice, usbredir, virglrenderer, device-tree-compiler, +libnfs, snappy, glusterfs and vde2 are optional dependencies. If you wish to emulate ARM, you will want device-tree-compiler. NOTES: diff --git a/system/qemu/qemu.SlackBuild b/system/qemu/qemu.SlackBuild index fb191a82e3..85d2d19b96 100644 --- a/system/qemu/qemu.SlackBuild +++ b/system/qemu/qemu.SlackBuild @@ -47,16 +47,18 @@ # 3.1 02-SEP-2016 upgraded. # 3.2 15-OCT-2016 upgraded to 2.7 release # 3.3 26-JAN-2017 upgraded to 2.8 release +# 4.0 28-JAN-2017 add bridge-helper option, README additions/cosmetics (thanks to Andrzej T.) PRGNAM=qemu VERSION=${VERSION:-2.8.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} KVMGROUP=${KVMGROUP:-users} TARGETS=${TARGETS:-some} VNC_ENABLE=${VNC_ENABLE:-yes} AUDIODRIVERS=${AUDIODRIVERS:-pa,alsa,oss,sdl} +BRIDGE_HELPER_SETUID=${BRIDGE_HELPER_SETUID:-no} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -165,6 +167,11 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr # even though qemu now has a gtk gui. [ ! -z $KVMARCH ] && ln -s qemu-system-$KVMARCH $PKG/usr/bin/qemu-kvm +# set qemu-bridge-helper setuid if requested +if [ "$BRIDGE_HELPER_SETUID" = "yes" ]; then + chmod u+s $PKG/usr/libexec/qemu-bridge-helper +fi + # move any generated man pages to their proper location if [ -d $PKG/usr/share/man ]; then mv $PKG/usr/share/man $PKG/usr -- cgit v1.2.3